diff options
author | Janis Danisevskis <jdanis@google.com> | 2021-02-05 09:34:10 -0800 |
---|---|---|
committer | Janis Danisevskis <jdanis@google.com> | 2021-02-05 09:50:34 -0800 |
commit | b6a9ed2f65e7a5af9524cca95468d854d1c402a4 (patch) | |
tree | 7bd93aeeb63f67887ccfdb76b8f0e09a5bd96903 /keystore/java | |
parent | 84da5781da1e548ee81f2e44c0041a7615a86b2c (diff) |
Keystore 2.0: Fix getKey returns null on key not found.
Test: CTS test.
Change-Id: I2a1edcf275da02cf005b6600450d152530eceaa9
Diffstat (limited to 'keystore/java')
-rw-r--r-- | keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java b/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java index 75ac61a22cab..e1011155248e 100644 --- a/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java +++ b/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java @@ -352,14 +352,17 @@ public class AndroidKeyStoreProvider extends Provider { try { response = keyStore.getKeyEntry(descriptor); } catch (android.security.KeyStoreException e) { - if (e.getErrorCode() == ResponseCode.KEY_PERMANENTLY_INVALIDATED) { - throw new KeyPermanentlyInvalidatedException( - "User changed or deleted their auth credentials", - e); - } else { - throw (UnrecoverableKeyException) - new UnrecoverableKeyException("Failed to obtain information about key") - .initCause(e); + switch (e.getErrorCode()) { + case ResponseCode.KEY_NOT_FOUND: + return null; + case ResponseCode.KEY_PERMANENTLY_INVALIDATED: + throw new KeyPermanentlyInvalidatedException( + "User changed or deleted their auth credentials", + e); + default: + throw (UnrecoverableKeyException) + new UnrecoverableKeyException("Failed to obtain information about key") + .initCause(e); } } |