diff options
author | Kenny Root <kroot@google.com> | 2015-07-21 17:42:46 -0700 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2015-07-21 17:42:57 -0700 |
commit | 65581d2bbf27de395c221f5f7f4fd93cbab091ff (patch) | |
tree | ccc5c8c52362d3c8d3b914402068ad2e8bb6ecda /bcprov | |
parent | 8d84d638119d460618c39f8e59e6107785c64340 (diff) | |
download | bouncycastle-65581d2bbf27de395c221f5f7f4fd93cbab091ff.tar.gz |
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.
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 3ac173ba..d476df8f 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 } } |