diff options
author | Kenny Root <kroot@google.com> | 2013-02-13 17:02:57 -0800 |
---|---|---|
committer | Kenny Root <kroot@android.com> | 2013-03-20 16:50:06 +0000 |
commit | 78ad849163a7b01073b46fbd7d818392720005d1 (patch) | |
tree | 8b177dc6137d8264e6e1a288e726de2aab6f040a /keystore/java/android/security/AndroidKeyStore.java | |
parent | ebebb80b4a629756128b5a4fcf483133f01dbfd7 (diff) |
KeyStore: add API to uid versions
In previous commits, we added the ability to specify which UID we want to
target on certain operations. This commit adds the ability to reach those
binder calls from the KeyStore class.
Also fix a problem where saw() was not reading all the values returned via
the Binder call. This changes the semantics to return a null instead of
failing silently when it's not possible to search.
Change-Id: I32098dc0eb42e09ace89f6b7455766842a72e9f4
Diffstat (limited to 'keystore/java/android/security/AndroidKeyStore.java')
-rw-r--r-- | keystore/java/android/security/AndroidKeyStore.java | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/keystore/java/android/security/AndroidKeyStore.java b/keystore/java/android/security/AndroidKeyStore.java index 65d7b8ff0bec..8a9826bd6176 100644 --- a/keystore/java/android/security/AndroidKeyStore.java +++ b/keystore/java/android/security/AndroidKeyStore.java @@ -453,17 +453,19 @@ public class AndroidKeyStore extends KeyStoreSpi { * convention. */ final String[] certAliases = mKeyStore.saw(Credentials.USER_CERTIFICATE); - for (String alias : certAliases) { - final byte[] certBytes = mKeyStore.get(Credentials.USER_CERTIFICATE + alias); - if (certBytes == null) { - continue; - } + if (certAliases != null) { + for (String alias : certAliases) { + final byte[] certBytes = mKeyStore.get(Credentials.USER_CERTIFICATE + alias); + if (certBytes == null) { + continue; + } - final Certificate c = toCertificate(certBytes); - nonCaEntries.add(alias); + final Certificate c = toCertificate(certBytes); + nonCaEntries.add(alias); - if (cert.equals(c)) { - return alias; + if (cert.equals(c)) { + return alias; + } } } @@ -472,19 +474,22 @@ public class AndroidKeyStore extends KeyStoreSpi { * PrivateKeyEntry we looked at above. */ final String[] caAliases = mKeyStore.saw(Credentials.CA_CERTIFICATE); - for (String alias : caAliases) { - if (nonCaEntries.contains(alias)) { - continue; - } + if (certAliases != null) { + for (String alias : caAliases) { + if (nonCaEntries.contains(alias)) { + continue; + } - final byte[] certBytes = mKeyStore.get(Credentials.CA_CERTIFICATE + alias); - if (certBytes == null) { - continue; - } + final byte[] certBytes = mKeyStore.get(Credentials.CA_CERTIFICATE + alias); + if (certBytes == null) { + continue; + } - final Certificate c = toCertificate(mKeyStore.get(Credentials.CA_CERTIFICATE + alias)); - if (cert.equals(c)) { - return alias; + final Certificate c = + toCertificate(mKeyStore.get(Credentials.CA_CERTIFICATE + alias)); + if (cert.equals(c)) { + return alias; + } } } |