diff options
Diffstat (limited to 'keystore/java/android/security/KeyStore.java')
-rw-r--r-- | keystore/java/android/security/KeyStore.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java index fb5e039..9babb94 100644 --- a/keystore/java/android/security/KeyStore.java +++ b/keystore/java/android/security/KeyStore.java @@ -16,6 +16,8 @@ package android.security; +import com.android.org.conscrypt.NativeCrypto; + import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; @@ -64,6 +66,18 @@ public class KeyStore { return new KeyStore(keystore); } + static int getKeyTypeForAlgorithm(String keyType) throws IllegalArgumentException { + if ("RSA".equalsIgnoreCase(keyType)) { + return NativeCrypto.EVP_PKEY_RSA; + } else if ("DSA".equalsIgnoreCase(keyType)) { + return NativeCrypto.EVP_PKEY_DSA; + } else if ("EC".equalsIgnoreCase(keyType)) { + return NativeCrypto.EVP_PKEY_EC; + } else { + throw new IllegalArgumentException("Unsupported key type: " + keyType); + } + } + public State state() { final int ret; try { @@ -188,9 +202,10 @@ public class KeyStore { } } - public boolean generate(String key, int uid, int flags) { + public boolean generate(String key, int uid, int keyType, int keySize, int flags, + byte[][] args) { try { - return mBinder.generate(key, uid, flags) == NO_ERROR; + return mBinder.generate(key, uid, keyType, keySize, flags, args) == NO_ERROR; } catch (RemoteException e) { Log.w(TAG, "Cannot connect to keystore", e); return false; |