diff options
author | Rob Barnes <robbarnes@google.com> | 2018-11-15 10:01:53 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-11-15 10:01:53 -0800 |
commit | 919f2169e720b52485ceb73af37adf08fbf71bc8 (patch) | |
tree | 21ed65e1fd523bc9c80c31a7d9923a819bae2493 /keystore/java/android/security/KeyStore.java | |
parent | bc9e3a0d16d2e1503c7671bb67ecefbb4bf7460e (diff) | |
parent | 3090f045a71815082db64f40b1358d62f2a9eadd (diff) |
Merge "Added listUidsForAuthBoundKeys to KeyStore" am: 73e9640194
am: 3090f045a7
Change-Id: I10ebfdc276a6af84b32b116c6d93f488ad0c97b8
Diffstat (limited to 'keystore/java/android/security/KeyStore.java')
-rw-r--r-- | keystore/java/android/security/KeyStore.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java index 2d214a787a88..40570c1083b3 100644 --- a/keystore/java/android/security/KeyStore.java +++ b/keystore/java/android/security/KeyStore.java @@ -54,6 +54,7 @@ import java.math.BigInteger; import java.io.ByteArrayInputStream; import java.io.IOException; import java.security.InvalidKeyException; +import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.concurrent.CompletableFuture; @@ -296,6 +297,31 @@ public class KeyStore { } } + /** + * List uids of all keys that are auth bound to the current user. + * Only system is allowed to call this method. + */ + @UnsupportedAppUsage + public int[] listUidsOfAuthBoundKeys() { + final int MAX_RESULT_SIZE = 100; + int[] uidsOut = new int[MAX_RESULT_SIZE]; + try { + int rc = mBinder.listUidsOfAuthBoundKeys(uidsOut); + if (rc != NO_ERROR) { + Log.w(TAG, String.format("listUidsOfAuthBoundKeys failed with error code %d", rc)); + return null; + } + } catch (RemoteException e) { + Log.w(TAG, "Cannot connect to keystore", e); + return null; + } catch (android.os.ServiceSpecificException e) { + Log.w(TAG, "KeyStore exception", e); + return null; + } + // Remove any 0 entries + return Arrays.stream(uidsOut).filter(x -> x > 0).toArray(); + } + public String[] list(String prefix) { return list(prefix, UID_SELF); } |