summaryrefslogtreecommitdiff
path: root/keystore/java/android/security/Credentials.java
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2012-08-20 10:48:46 -0700
committerKenny Root <kroot@google.com>2012-08-22 08:52:55 -0700
commitdb026710ec0adcf7f72dfb24c65d38a882ee26d8 (patch)
treecff080fbecd17c5d6e6a60a7bc2adccbd6761b20 /keystore/java/android/security/Credentials.java
parente29df16cb57b69995df597e8a6d95d986c1c43fc (diff)
Add KeyPairGenerator for Android keystore
This allows end-users to generate keys in the keystore without the private part of the key ever needing to leave the device. The generation process also generates a self-signed certificate. Change-Id: I114ffb8e0cbe3b1edaae7e69e8aa578cb835efc9
Diffstat (limited to 'keystore/java/android/security/Credentials.java')
-rw-r--r--keystore/java/android/security/Credentials.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/keystore/java/android/security/Credentials.java b/keystore/java/android/security/Credentials.java
index 68ba2b11516e..72332ebd0273 100644
--- a/keystore/java/android/security/Credentials.java
+++ b/keystore/java/android/security/Credentials.java
@@ -185,4 +185,19 @@ public class Credentials {
Log.w(LOGTAG, e.toString());
}
}
+
+ /**
+ * Delete all types (private key, certificate, CA certificate) for a
+ * particular {@code alias}. All three can exist for any given alias.
+ * Returns {@code true} if there was at least one of those types.
+ */
+ static boolean deleteAllTypesForAlias(KeyStore keystore, String alias) {
+ /*
+ * Make sure every type is deleted. There can be all three types, so
+ * don't use a conditional here.
+ */
+ return keystore.delKey(Credentials.USER_PRIVATE_KEY + alias)
+ | keystore.delete(Credentials.USER_CERTIFICATE + alias)
+ | keystore.delete(Credentials.CA_CERTIFICATE + alias);
+ }
}