diff options
author | Kenny Root <kroot@google.com> | 2015-07-21 17:42:46 -0700 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2015-07-23 08:42:26 -0700 |
commit | 0445cba714f498e8246e40ce449b15912b974965 (patch) | |
tree | cec9ffa6dc46293b1436fe5238940ded49aa48d6 /bcprov | |
parent | 1c380ab9c5d55b5ace5ebefe6969e64d8259c970 (diff) | |
download | android_external_bouncycastle-0445cba714f498e8246e40ce449b15912b974965.tar.gz android_external_bouncycastle-0445cba714f498e8246e40ce449b15912b974965.tar.bz2 android_external_bouncycastle-0445cba714f498e8246e40ce449b15912b974965.zip |
GCM: fix mode and padding set
Since "GCM" was renamed to "AES/GCM/NoPadding" to correspond to the
StandardNames document, the mode and padding weren't being set via the
Cipher#init call since it assumed the CipherSpi already knew its mode
and padding.
(cherry picked from commit 65581d2bbf27de395c221f5f7f4fd93cbab091ff)
Bug: 22611918
Change-Id: Ib85438a1c95ffda526dbbac8793b04ff02d40fcc
Diffstat (limited to 'bcprov')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java index 3ac173b..d476df8 100644 --- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java +++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java @@ -3,6 +3,9 @@ package org.bouncycastle.jcajce.provider.symmetric; import java.io.IOException; import java.lang.reflect.Constructor; import java.lang.reflect.Method; +// BEGIN android-added +import java.security.NoSuchAlgorithmException; +// END android-added // BEGIN android-removed // import java.security.AlgorithmParameters; // import java.security.InvalidAlgorithmParameterException; @@ -15,6 +18,9 @@ import java.security.spec.InvalidParameterSpecException; // import javax.crypto.spec.IvParameterSpec; // END android-removed +// BEGIN android-added +import javax.crypto.NoSuchPaddingException; +// END android-added import org.bouncycastle.asn1.bc.BCObjectIdentifiers; // BEGIN android-removed // import org.bouncycastle.asn1.cms.CCMParameters; @@ -112,6 +118,15 @@ public final class AES public GCM() { super(new GCMBlockCipher(new AESFastEngine())); + // BEGIN android-added + try { + engineSetMode("GCM"); + engineSetPadding("NoPadding"); + } catch (NoSuchAlgorithmException | NoSuchPaddingException e) { + // this should not be possible + throw new RuntimeException("Could not set mode or padding for GCM mode", e); + } + // END android-added } } |