am 10633c96: Merge "Fix Android Keystore key factories to obey JCA contract." into mnc-dev

* commit '10633c96b55d13f05304b758b01be48035adece3':
  Fix Android Keystore key factories to obey JCA contract.
This commit is contained in:
Alex Klyubin
2015-07-14 16:28:28 +00:00
committed by Android Git Automerger
2 changed files with 23 additions and 13 deletions

View File

@@ -124,22 +124,27 @@ public class AndroidKeyStoreKeyFactorySpi extends KeyFactorySpi {
@Override
protected PrivateKey engineGeneratePrivate(KeySpec spec) throws InvalidKeySpecException {
throw new UnsupportedOperationException(
"To generate a key pair in Android KeyStore, use KeyPairGenerator initialized with"
throw new InvalidKeySpecException(
"To generate a key pair in Android Keystore, use KeyPairGenerator initialized with"
+ " " + KeyGenParameterSpec.class.getName());
}
@Override
protected PublicKey engineGeneratePublic(KeySpec spec) throws InvalidKeySpecException {
throw new UnsupportedOperationException(
"To generate a key pair in Android KeyStore, use KeyPairGenerator initialized with"
throw new InvalidKeySpecException(
"To generate a key pair in Android Keystore, use KeyPairGenerator initialized with"
+ " " + KeyGenParameterSpec.class.getName());
}
@Override
protected Key engineTranslateKey(Key arg0) throws InvalidKeyException {
throw new UnsupportedOperationException(
"To import a key into Android KeyStore, use KeyStore.setEntry with "
+ KeyProtection.class.getName());
protected Key engineTranslateKey(Key key) throws InvalidKeyException {
if (key == null) {
throw new InvalidKeyException("key == null");
} else if ((!(key instanceof AndroidKeyStorePrivateKey))
&& (!(key instanceof AndroidKeyStorePublicKey))) {
throw new InvalidKeyException(
"To import a key into Android Keystore, use KeyStore.setEntry");
}
return key;
}
}

View File

@@ -185,15 +185,20 @@ public class AndroidKeyStoreSecretKeyFactorySpi extends SecretKeyFactorySpi {
@Override
protected SecretKey engineGenerateSecret(KeySpec keySpec) throws InvalidKeySpecException {
throw new UnsupportedOperationException(
"To generate secret key in Android KeyStore, use KeyGenerator initialized with "
throw new InvalidKeySpecException(
"To generate secret key in Android Keystore, use KeyGenerator initialized with "
+ KeyGenParameterSpec.class.getName());
}
@Override
protected SecretKey engineTranslateKey(SecretKey key) throws InvalidKeyException {
throw new UnsupportedOperationException(
"To import a secret key into Android KeyStore, use KeyStore.setEntry with "
+ KeyProtection.class.getName());
if (key == null) {
throw new InvalidKeyException("key == null");
} else if (!(key instanceof AndroidKeyStoreSecretKey)) {
throw new InvalidKeyException(
"To import a secret key into Android Keystore, use KeyStore.setEntry");
}
return key;
}
}