summaryrefslogtreecommitdiff
path: root/keystore/java/android/security/KeyStore.java
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2013-08-16 14:03:29 -0700
committerKenny Root <kroot@google.com>2013-08-30 17:54:13 -0700
commitf64386fc26efeb245fd90fabaa47b8c8bf9b4613 (patch)
tree7e153d67affdeaa259a932dfc89bf1e8ad154558 /keystore/java/android/security/KeyStore.java
parent6b34ab3f1aafc3143c71e342b7a9f5a6ddfeabb4 (diff)
Add support for DSA and ECDSA key types
Change-Id: Ic6f029d66210052ce2f75d46102a100ac7db2b49
Diffstat (limited to 'keystore/java/android/security/KeyStore.java')
-rw-r--r--keystore/java/android/security/KeyStore.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java
index fb5e03974e49..9babb94ef651 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;