diff options
author | Janis Danisevskis <jdanis@google.com> | 2021-01-19 13:41:47 -0800 |
---|---|---|
committer | Janis Danisevskis <jdanis@google.com> | 2021-01-31 20:41:51 -0800 |
commit | 05943c30a196a4a6d248d75adf4fcddee7f40411 (patch) | |
tree | 1e15b21dccdf0739305b9346533a5881b23aed35 /keystore/java/android/security/keystore2 | |
parent | ba04ef84819d05d7e1fdbfe726a47683a8c022f5 (diff) |
Keystore 2.0 SPI: Small fix to apease CTS test.
* The Keystore SPI needs to return null if getKeyEntry is called on a
pure certificate entry.
* Also checked the wrong purpose.
Test: Keystore CTS tests.
Change-Id: Ib668447a9ff56fc4cea550f547c6cbfea3590cb3
Diffstat (limited to 'keystore/java/android/security/keystore2')
-rw-r--r-- | keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java | 5 | ||||
-rw-r--r-- | keystore/java/android/security/keystore2/AndroidKeyStoreSpi.java | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java b/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java index 164bc8669525..75ac61a22cab 100644 --- a/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java +++ b/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java @@ -363,6 +363,11 @@ public class AndroidKeyStoreProvider extends Provider { } } + if (response.iSecurityLevel == null) { + // This seems to be a pure certificate entry, nothing to return here. + return null; + } + Integer keymasterAlgorithm = null; // We just need one digest for the algorithm name int keymasterDigest = -1; diff --git a/keystore/java/android/security/keystore2/AndroidKeyStoreSpi.java b/keystore/java/android/security/keystore2/AndroidKeyStoreSpi.java index 5e7f6482ebed..07169cedc1d9 100644 --- a/keystore/java/android/security/keystore2/AndroidKeyStoreSpi.java +++ b/keystore/java/android/security/keystore2/AndroidKeyStoreSpi.java @@ -490,7 +490,7 @@ public class AndroidKeyStoreSpi extends KeyStoreSpi { int[] keymasterEncryptionPaddings = KeyProperties.EncryptionPadding.allToKeymaster( spec.getEncryptionPaddings()); - if (((spec.getPurposes() & KeyProperties.PURPOSE_DECRYPT) != 0) + if (((spec.getPurposes() & KeyProperties.PURPOSE_ENCRYPT) != 0) && (spec.isRandomizedEncryptionRequired())) { for (int keymasterPadding : keymasterEncryptionPaddings) { if (!KeymasterUtils |