diff options
author | Alex Klyubin <klyubin@google.com> | 2015-03-31 13:39:38 -0700 |
---|---|---|
committer | Alex Klyubin <klyubin@google.com> | 2015-03-31 13:59:07 -0700 |
commit | b406f242911fa4d910a4cf915a61e39aeace1e1b (patch) | |
tree | b5eb757a0cf37c34c6db10004d666406961c4075 /keystore/java/android/security/AndroidKeyStoreProvider.java | |
parent | 5491ea9e5bc6ce8eb0dc2e91e46608f6aa3e7dfc (diff) |
Add unauthenticated AES ciphers backed by AndroidKeyStore.
This adds the following AES transformations:
* AES/ECB/NoPadding
* AES/ECB/PKCS7Padding
* AES/CBC/NoPadding
* AES/CBC/PKCS7Padding
* AES/CTR/NoPadding
Bug: 18088752
Change-Id: I3e4702e59868f8f2225c31b1c159d20008b9999d
Diffstat (limited to 'keystore/java/android/security/AndroidKeyStoreProvider.java')
-rw-r--r-- | keystore/java/android/security/AndroidKeyStoreProvider.java | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/keystore/java/android/security/AndroidKeyStoreProvider.java b/keystore/java/android/security/AndroidKeyStoreProvider.java index 7313c489cbfe..6cf9b7a71be6 100644 --- a/keystore/java/android/security/AndroidKeyStoreProvider.java +++ b/keystore/java/android/security/AndroidKeyStoreProvider.java @@ -41,7 +41,30 @@ public class AndroidKeyStoreProvider extends Provider { put("KeyGenerator.HmacSHA256", KeyStoreKeyGeneratorSpi.HmacSHA256.class.getName()); // javax.crypto.Mac - put("Mac.HmacSHA256", KeyStoreHmacSpi.HmacSHA256.class.getName()); - put("Mac.HmacSHA256 SupportedKeyClasses", KeyStoreSecretKey.class.getName()); + putMacImpl("HmacSHA256", KeyStoreHmacSpi.HmacSHA256.class.getName()); + + // javax.crypto.Cipher + putSymmetricCipherImpl("AES/ECB/NoPadding", + KeyStoreCipherSpi.AES.ECB.NoPadding.class.getName()); + putSymmetricCipherImpl("AES/ECB/PKCS7Padding", + KeyStoreCipherSpi.AES.ECB.PKCS7Padding.class.getName()); + + putSymmetricCipherImpl("AES/CBC/NoPadding", + KeyStoreCipherSpi.AES.CBC.NoPadding.class.getName()); + putSymmetricCipherImpl("AES/CBC/PKCS7Padding", + KeyStoreCipherSpi.AES.CBC.PKCS7Padding.class.getName()); + + putSymmetricCipherImpl("AES/CTR/NoPadding", + KeyStoreCipherSpi.AES.CTR.NoPadding.class.getName()); + } + + private void putMacImpl(String algorithm, String implClass) { + put("Mac." + algorithm, implClass); + put("Mac." + algorithm + " SupportedKeyClasses", KeyStoreSecretKey.class.getName()); + } + + private void putSymmetricCipherImpl(String transformation, String implClass) { + put("Cipher." + transformation, implClass); + put("Cipher." + transformation + " SupportedKeyClasses", KeyStoreSecretKey.class.getName()); } } |