diff options
| author | Alex Klyubin <klyubin@google.com> | 2015-04-03 19:55:22 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2015-04-03 19:55:22 +0000 |
| commit | 7c9e4be67a77b30875e7fafc076f75eea1a0dec1 (patch) | |
| tree | 65d1015c8c2928c874e65bf92b5025a5ad51ec2e | |
| parent | f100252f665df75b7be4d5ba75166b185fb8035e (diff) | |
| parent | c869ac1b7d163282ffdebf4ce9b32c479766f52d (diff) | |
| download | frameworks_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.java | 21 |
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(); |
