summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keystore/java/android/security/Credentials.java7
-rw-r--r--keystore/java/android/security/KeyStore.java12
2 files changed, 13 insertions, 6 deletions
diff --git a/keystore/java/android/security/Credentials.java b/keystore/java/android/security/Credentials.java
index 7216a2201c88..072fe7321826 100644
--- a/keystore/java/android/security/Credentials.java
+++ b/keystore/java/android/security/Credentials.java
@@ -282,8 +282,11 @@ public class Credentials {
* Returns {@code true} if the entry no longer exists.
*/
public static boolean deleteUserKeyTypeForAlias(KeyStore keystore, String alias, int uid) {
- return keystore.delete(Credentials.USER_PRIVATE_KEY + alias, uid) ||
- keystore.delete(Credentials.USER_SECRET_KEY + alias, uid);
+ int ret = keystore.delete2(Credentials.USER_PRIVATE_KEY + alias, uid);
+ if (ret == KeyStore.KEY_NOT_FOUND) {
+ return keystore.delete(Credentials.USER_SECRET_KEY + alias, uid);
+ }
+ return ret == KeyStore.NO_ERROR;
}
/**
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java
index e1c1138fe52d..6ac52d109032 100644
--- a/keystore/java/android/security/KeyStore.java
+++ b/keystore/java/android/security/KeyStore.java
@@ -255,16 +255,20 @@ public class KeyStore {
}
}
- public boolean delete(String key, int uid) {
+ int delete2(String key, int uid) {
try {
- int ret = mBinder.del(key, uid);
- return (ret == NO_ERROR || ret == KEY_NOT_FOUND);
+ return mBinder.del(key, uid);
} catch (RemoteException e) {
Log.w(TAG, "Cannot connect to keystore", e);
- return false;
+ return SYSTEM_ERROR;
}
}
+ public boolean delete(String key, int uid) {
+ int ret = delete2(key, uid);
+ return ret == NO_ERROR || ret == KEY_NOT_FOUND;
+ }
+
@UnsupportedAppUsage
public boolean delete(String key) {
return delete(key, UID_SELF);