diff options
| author | Kenny Root <kroot@google.com> | 2012-03-27 20:42:15 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-03-27 20:42:15 -0700 |
| commit | 4898087be98d9df1b6c86cc1802894e1844c6e3d (patch) | |
| tree | 228ec8065abbb712c9c228af2255d8e8e3a025b0 /keystore/java/android/security/KeyStore.java | |
| parent | fa7887bebf57f3dcb8283d73e69ba1daa115225f (diff) | |
| parent | 565f9f216aa87f11d451ae6532d5153001a386bf (diff) | |
| download | frameworks_base-4898087be98d9df1b6c86cc1802894e1844c6e3d.zip frameworks_base-4898087be98d9df1b6c86cc1802894e1844c6e3d.tar.gz frameworks_base-4898087be98d9df1b6c86cc1802894e1844c6e3d.tar.bz2 | |
Merge changes Ibdf23227,I3681f98c
* changes:
Update Wifi to use new keystore function
Add signing to keystore
Diffstat (limited to 'keystore/java/android/security/KeyStore.java')
| -rw-r--r-- | keystore/java/android/security/KeyStore.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java index 9058cae..a32e469 100644 --- a/keystore/java/android/security/KeyStore.java +++ b/keystore/java/android/security/KeyStore.java @@ -155,6 +155,78 @@ public class KeyStore { return mError == KEY_NOT_FOUND; } + private boolean generate(byte[] key) { + execute('a', key); + return mError == NO_ERROR; + } + + public boolean generate(String key) { + return generate(getBytes(key)); + } + + private boolean importKey(byte[] keyName, byte[] key) { + execute('m', keyName, key); + return mError == NO_ERROR; + } + + public boolean importKey(String keyName, byte[] key) { + return importKey(getBytes(keyName), key); + } + + private byte[] getPubkey(byte[] key) { + ArrayList<byte[]> values = execute('b', key); + return (values == null || values.isEmpty()) ? null : values.get(0); + } + + public byte[] getPubkey(String key) { + return getPubkey(getBytes(key)); + } + + private boolean delKey(byte[] key) { + execute('k', key); + return mError == NO_ERROR; + } + + public boolean delKey(String key) { + return delKey(getBytes(key)); + } + + private byte[] sign(byte[] keyName, byte[] data) { + final ArrayList<byte[]> values = execute('n', keyName, data); + return (values == null || values.isEmpty()) ? null : values.get(0); + } + + public byte[] sign(String key, byte[] data) { + return sign(getBytes(key), data); + } + + private boolean verify(byte[] keyName, byte[] data, byte[] signature) { + execute('v', keyName, data, signature); + return mError == NO_ERROR; + } + + public boolean verify(String key, byte[] data, byte[] signature) { + return verify(getBytes(key), data, signature); + } + + private boolean grant(byte[] key, byte[] uid) { + execute('x', key, uid); + return mError == NO_ERROR; + } + + public boolean grant(String key, int uid) { + return grant(getBytes(key), Integer.toString(uid).getBytes()); + } + + private boolean ungrant(byte[] key, byte[] uid) { + execute('y', key, uid); + return mError == NO_ERROR; + } + + public boolean ungrant(String key, int uid) { + return ungrant(getBytes(key), Integer.toString(uid).getBytes()); + } + public int getLastError() { return mError; } |
