summaryrefslogtreecommitdiff
path: root/bcprov
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2015-07-21 17:42:46 -0700
committerKenny Root <kroot@google.com>2015-07-21 17:42:57 -0700
commit65581d2bbf27de395c221f5f7f4fd93cbab091ff (patch)
treeccc5c8c52362d3c8d3b914402068ad2e8bb6ecda /bcprov
parent8d84d638119d460618c39f8e59e6107785c64340 (diff)
downloadbouncycastle-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.java15
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
}
}