summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Klyubin <klyubin@google.com>2015-04-03 19:55:22 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-04-03 19:55:22 +0000
commit7c9e4be67a77b30875e7fafc076f75eea1a0dec1 (patch)
tree65d1015c8c2928c874e65bf92b5025a5ad51ec2e
parentf100252f665df75b7be4d5ba75166b185fb8035e (diff)
parentc869ac1b7d163282ffdebf4ce9b32c479766f52d (diff)
downloadframeworks_base-7c9e4be67a77b30875e7fafc076f75eea1a0dec1.zip
frameworks_base-7c9e4be67a77b30875e7fafc076f75eea1a0dec1.tar.gz
frameworks_base-7c9e4be67a77b30875e7fafc076f75eea1a0dec1.tar.bz2
am c869ac1b: am ec029e55: am b292e49b: Merge "Obtain SPI without using Reflection."
* commit 'c869ac1b7d163282ffdebf4ce9b32c479766f52d': Obtain SPI without using Reflection.
-rw-r--r--keystore/java/android/security/AndroidKeyStoreProvider.java21
1 files changed, 7 insertions, 14 deletions
diff --git a/keystore/java/android/security/AndroidKeyStoreProvider.java b/keystore/java/android/security/AndroidKeyStoreProvider.java
index a7c2ddb..a26530c 100644
--- a/keystore/java/android/security/AndroidKeyStoreProvider.java
+++ b/keystore/java/android/security/AndroidKeyStoreProvider.java
@@ -16,7 +16,6 @@
package android.security;
-import java.lang.reflect.Method;
import java.security.Provider;
import javax.crypto.Cipher;
@@ -92,23 +91,17 @@ public class AndroidKeyStoreProvider extends Provider {
if (cryptoPrimitive == null) {
throw new NullPointerException();
}
- if ((!(cryptoPrimitive instanceof Mac)) && (!(cryptoPrimitive instanceof Cipher))) {
- throw new IllegalArgumentException("Unsupported crypto primitive: " + cryptoPrimitive);
- }
Object spi;
- // TODO: Replace this Reflection based codewith direct invocations once the libcore changes
- // are in.
- try {
- Method getSpiMethod = cryptoPrimitive.getClass().getDeclaredMethod("getSpi");
- getSpiMethod.setAccessible(true);
- spi = getSpiMethod.invoke(cryptoPrimitive);
- } catch (ReflectiveOperationException e) {
- throw new IllegalArgumentException(
- "Unsupported crypto primitive: " + cryptoPrimitive, e);
+ if (cryptoPrimitive instanceof Mac) {
+ spi = ((Mac) cryptoPrimitive).getSpi();
+ } else if (cryptoPrimitive instanceof Cipher) {
+ spi = ((Cipher) cryptoPrimitive).getSpi();
+ } else {
+ throw new IllegalArgumentException("Unsupported crypto primitive: " + cryptoPrimitive);
}
if (!(spi instanceof KeyStoreCryptoOperation)) {
throw new IllegalArgumentException(
- "Crypto primitive not backed by Android KeyStore: " + cryptoPrimitive
+ "Crypto primitive not backed by AndroidKeyStore: " + cryptoPrimitive
+ ", spi: " + spi);
}
return ((KeyStoreCryptoOperation) spi).getOperationHandle();