summaryrefslogtreecommitdiff
path: root/keystore/java/android/security/keystore2
diff options
context:
space:
mode:
authorJanis Danisevskis <jdanis@google.com>2021-01-19 13:41:47 -0800
committerJanis Danisevskis <jdanis@google.com>2021-01-31 20:41:51 -0800
commit05943c30a196a4a6d248d75adf4fcddee7f40411 (patch)
tree1e15b21dccdf0739305b9346533a5881b23aed35 /keystore/java/android/security/keystore2
parentba04ef84819d05d7e1fdbfe726a47683a8c022f5 (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.java5
-rw-r--r--keystore/java/android/security/keystore2/AndroidKeyStoreSpi.java2
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