Remove RC5 references from bouncycastle
The RI doesn't include RC5 and we didn't either in the provider
definition, but I noticed we still had a few implementation support
classes so remove these unneeded files.
Also cleaned up a few RC2 mentions that are unneeded.
RC2 implementation does remain for PKCS12 support.
Change-Id: I4ef304e11a0cba677b3977c54a2afb2330ca5565
diff --git a/bouncycastle.config b/bouncycastle.config
index 5919ce5..729ebf7 100644
--- a/bouncycastle.config
+++ b/bouncycastle.config
@@ -207,6 +207,8 @@
org/bouncycastle/crypto/engines/NoekeonEngine.java \
org/bouncycastle/crypto/engines/NullEngine.java \
org/bouncycastle/crypto/engines/RC2WrapEngine.java \
+org/bouncycastle/crypto/engines/RC532Engine.java \
+org/bouncycastle/crypto/engines/RC564Engine.java \
org/bouncycastle/crypto/engines/RC6Engine.java \
org/bouncycastle/crypto/engines/RFC3211WrapEngine.java \
org/bouncycastle/crypto/engines/RSABlindingEngine.java \
@@ -282,6 +284,7 @@
org/bouncycastle/crypto/params/NaccacheSternPrivateKeyParameters.java \
org/bouncycastle/crypto/params/ParametersWithSBox.java \
org/bouncycastle/crypto/params/ParametersWithSalt.java \
+org/bouncycastle/crypto/params/RC5Parameters.java \
org/bouncycastle/crypto/params/RSABlindingParameters.java \
org/bouncycastle/crypto/params/package.html \
org/bouncycastle/crypto/signers/DSADigestSigner.java \
diff --git a/patches/README b/patches/README
index f4aa90e..48cda19 100644
--- a/patches/README
+++ b/patches/README
@@ -8,7 +8,6 @@
up-do-date documentation of differences between the RI's list of
supported algorithms and Android's. Some notable omissions versus the
RI:
-- Blowfish
- LDAP
- MD2
- RC2
diff --git a/patches/android.patch b/patches/android.patch
index 5eaccfe..80cb496 100644
--- a/patches/android.patch
+++ b/patches/android.patch
@@ -1,6 +1,6 @@
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1Collection.java bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Collection.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1Collection.java 1970-01-01 00:00:00.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Collection.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Collection.java 2010-08-25 15:47:14.000000000 +0000
@@ -0,0 +1,298 @@
+package org.bouncycastle.asn1;
+
@@ -302,7 +302,7 @@
+}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1InputStream.java bcprov-jdk16-145/org/bouncycastle/asn1/ASN1InputStream.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1InputStream.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1InputStream.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1InputStream.java 2010-08-25 15:47:14.000000000 +0000
@@ -348,7 +348,9 @@
case BMP_STRING:
return new DERBMPString(bytes);
@@ -316,7 +316,7 @@
case GENERALIZED_TIME:
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1Null.java bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Null.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1Null.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Null.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Null.java 2010-08-25 15:47:14.000000000 +0000
@@ -8,9 +8,11 @@
public abstract class ASN1Null
extends ASN1Object
@@ -332,7 +332,7 @@
{
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1Sequence.java bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Sequence.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1Sequence.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Sequence.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Sequence.java 2010-08-25 15:47:14.000000000 +0000
@@ -2,12 +2,20 @@
import java.io.IOException;
@@ -496,7 +496,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1Set.java bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Set.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/ASN1Set.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Set.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/ASN1Set.java 2010-08-25 15:47:14.000000000 +0000
@@ -3,12 +3,20 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -845,7 +845,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERBoolean.java bcprov-jdk16-145/org/bouncycastle/asn1/DERBoolean.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERBoolean.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/DERBoolean.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/DERBoolean.java 2010-08-25 15:47:14.000000000 +0000
@@ -5,7 +5,9 @@
public class DERBoolean
extends ASN1Object
@@ -918,7 +918,7 @@
{
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERInputStream.java bcprov-jdk16-145/org/bouncycastle/asn1/DERInputStream.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERInputStream.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/DERInputStream.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/DERInputStream.java 2010-08-25 15:47:14.000000000 +0000
@@ -144,7 +144,9 @@
return new DERConstructedSet(v);
}
@@ -943,7 +943,7 @@
{
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERNull.java bcprov-jdk16-145/org/bouncycastle/asn1/DERNull.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERNull.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/DERNull.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/DERNull.java 2010-08-25 15:47:14.000000000 +0000
@@ -10,9 +10,13 @@
{
public static final DERNull INSTANCE = new DERNull();
@@ -962,7 +962,7 @@
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERObjectIdentifier.java bcprov-jdk16-145/org/bouncycastle/asn1/DERObjectIdentifier.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERObjectIdentifier.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/DERObjectIdentifier.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/DERObjectIdentifier.java 2010-08-25 15:47:14.000000000 +0000
@@ -111,7 +111,13 @@
}
}
@@ -995,7 +995,7 @@
public String getId()
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERPrintableString.java bcprov-jdk16-145/org/bouncycastle/asn1/DERPrintableString.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/DERPrintableString.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/DERPrintableString.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/DERPrintableString.java 2010-08-25 15:47:14.000000000 +0000
@@ -9,7 +9,9 @@
extends ASN1Object
implements DERString
@@ -1031,7 +1031,7 @@
public String getString()
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/OrderedTable.java bcprov-jdk16-145/org/bouncycastle/asn1/OrderedTable.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/OrderedTable.java 1970-01-01 00:00:00.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/OrderedTable.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/OrderedTable.java 2010-08-25 15:47:14.000000000 +0000
@@ -0,0 +1,281 @@
+package org.bouncycastle.asn1;
+
@@ -1316,7 +1316,7 @@
+}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java 2010-08-25 15:47:14.000000000 +0000
@@ -10,7 +10,10 @@
//
static final String pkcs_1 = "1.2.840.113549.1.1";
@@ -1354,7 +1354,7 @@
// md4 OBJECT IDENTIFIER ::=
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/pkcs/RSAESOAEPparams.java bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/RSAESOAEPparams.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/pkcs/RSAESOAEPparams.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/RSAESOAEPparams.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/RSAESOAEPparams.java 2010-08-25 15:47:14.000000000 +0000
@@ -19,7 +19,9 @@
private AlgorithmIdentifier maskGenAlgorithm;
private AlgorithmIdentifier pSourceAlgorithm;
@@ -1368,7 +1368,7 @@
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/pkcs/RSASSAPSSparams.java bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/RSASSAPSSparams.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/pkcs/RSASSAPSSparams.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/RSASSAPSSparams.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/pkcs/RSASSAPSSparams.java 2010-08-25 15:47:14.000000000 +0000
@@ -20,7 +20,9 @@
private DERInteger saltLength;
private DERInteger trailerField;
@@ -1382,7 +1382,7 @@
public final static DERInteger DEFAULT_TRAILER_FIELD = new DERInteger(1);
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/util/ASN1Dump.java bcprov-jdk16-145/org/bouncycastle/asn1/util/ASN1Dump.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/util/ASN1Dump.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/util/ASN1Dump.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/util/ASN1Dump.java 2010-08-25 15:47:14.000000000 +0000
@@ -90,7 +90,9 @@
{
Object o = e.nextElement();
@@ -1396,7 +1396,7 @@
buf.append("NULL");
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/AttCertIssuer.java bcprov-jdk16-145/org/bouncycastle/asn1/x509/AttCertIssuer.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/AttCertIssuer.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/AttCertIssuer.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/AttCertIssuer.java 2010-08-25 15:47:14.000000000 +0000
@@ -45,7 +45,7 @@
ASN1TaggedObject obj,
boolean explicit)
@@ -1408,7 +1408,7 @@
/**
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/BasicConstraints.java bcprov-jdk16-145/org/bouncycastle/asn1/x509/BasicConstraints.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/BasicConstraints.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/BasicConstraints.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/BasicConstraints.java 2010-08-25 15:47:14.000000000 +0000
@@ -14,7 +14,9 @@
public class BasicConstraints
extends ASN1Encodable
@@ -1455,7 +1455,7 @@
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/IssuingDistributionPoint.java bcprov-jdk16-145/org/bouncycastle/asn1/x509/IssuingDistributionPoint.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/IssuingDistributionPoint.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/IssuingDistributionPoint.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/IssuingDistributionPoint.java 2010-08-25 15:47:14.000000000 +0000
@@ -96,11 +96,15 @@
}
if (onlyContainsUserCerts)
@@ -1494,7 +1494,7 @@
seq = new DERSequence(vec);
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/X509Extensions.java bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509Extensions.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/X509Extensions.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509Extensions.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509Extensions.java 2010-08-25 15:47:14.000000000 +0000
@@ -9,6 +9,9 @@
import org.bouncycastle.asn1.DERObject;
import org.bouncycastle.asn1.DERObjectIdentifier;
@@ -1683,7 +1683,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/X509Name.java bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509Name.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/X509Name.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509Name.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509Name.java 2010-08-25 15:47:14.000000000 +0000
@@ -247,8 +247,10 @@
*/
public static final Hashtable SymbolLookUp = DefaultLookUp;
@@ -2149,7 +2149,7 @@
{
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/X509NameElementList.java bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509NameElementList.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/X509NameElementList.java 1970-01-01 00:00:00.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509NameElementList.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509NameElementList.java 2010-08-25 15:47:14.000000000 +0000
@@ -0,0 +1,206 @@
+package org.bouncycastle.asn1.x509;
+
@@ -2359,7 +2359,7 @@
+}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/X509NameTokenizer.java bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509NameTokenizer.java
--- bcprov-jdk16-145.orig/org/bouncycastle/asn1/x509/X509NameTokenizer.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509NameTokenizer.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/asn1/x509/X509NameTokenizer.java 2010-08-25 15:47:14.000000000 +0000
@@ -58,6 +58,17 @@
}
else
@@ -2387,7 +2387,7 @@
\ No newline at end of file
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/crypto/PBEParametersGenerator.java bcprov-jdk16-145/org/bouncycastle/crypto/PBEParametersGenerator.java
--- bcprov-jdk16-145.orig/org/bouncycastle/crypto/PBEParametersGenerator.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/crypto/PBEParametersGenerator.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/crypto/PBEParametersGenerator.java 2010-08-25 15:47:14.000000000 +0000
@@ -136,7 +136,8 @@
public static byte[] PKCS12PasswordToBytes(
char[] password)
@@ -2407,7 +2407,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/crypto/digests/OpenSSLDigest.java bcprov-jdk16-145/org/bouncycastle/crypto/digests/OpenSSLDigest.java
--- bcprov-jdk16-145.orig/org/bouncycastle/crypto/digests/OpenSSLDigest.java 1970-01-01 00:00:00.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/crypto/digests/OpenSSLDigest.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/crypto/digests/OpenSSLDigest.java 2010-08-25 15:47:14.000000000 +0000
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
@@ -2531,7 +2531,7 @@
+}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/crypto/engines/RC2Engine.java bcprov-jdk16-145/org/bouncycastle/crypto/engines/RC2Engine.java
--- bcprov-jdk16-145.orig/org/bouncycastle/crypto/engines/RC2Engine.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/crypto/engines/RC2Engine.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/crypto/engines/RC2Engine.java 2010-08-25 15:47:14.000000000 +0000
@@ -313,4 +313,4 @@
out[outOff + 6] = (byte)x76;
out[outOff + 7] = (byte)(x76 >> 8);
@@ -2541,7 +2541,7 @@
\ No newline at end of file
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/crypto/macs/HMac.java bcprov-jdk16-145/org/bouncycastle/crypto/macs/HMac.java
--- bcprov-jdk16-145.orig/org/bouncycastle/crypto/macs/HMac.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/crypto/macs/HMac.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/crypto/macs/HMac.java 2010-08-25 15:47:14.000000000 +0000
@@ -32,23 +32,23 @@
{
blockLengths = new Hashtable();
@@ -2583,7 +2583,7 @@
private static int getByteLength(
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/crypto/signers/RSADigestSigner.java bcprov-jdk16-145/org/bouncycastle/crypto/signers/RSADigestSigner.java
--- bcprov-jdk16-145.orig/org/bouncycastle/crypto/signers/RSADigestSigner.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/crypto/signers/RSADigestSigner.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/crypto/signers/RSADigestSigner.java 2010-08-25 15:47:14.000000000 +0000
@@ -46,8 +46,10 @@
oidMap.put("SHA-384", NISTObjectIdentifiers.id_sha384);
oidMap.put("SHA-512", NISTObjectIdentifiers.id_sha512);
@@ -2599,7 +2599,7 @@
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/crypto/util/PrivateKeyFactory.java bcprov-jdk16-145/org/bouncycastle/crypto/util/PrivateKeyFactory.java
--- bcprov-jdk16-145.orig/org/bouncycastle/crypto/util/PrivateKeyFactory.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/crypto/util/PrivateKeyFactory.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/crypto/util/PrivateKeyFactory.java 2010-08-25 15:47:14.000000000 +0000
@@ -7,31 +7,39 @@
import org.bouncycastle.asn1.DERInteger;
import org.bouncycastle.asn1.DERObject;
@@ -2802,7 +2802,7 @@
throw new RuntimeException("algorithm identifier in key not recognised");
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/crypto/util/PublicKeyFactory.java bcprov-jdk16-145/org/bouncycastle/crypto/util/PublicKeyFactory.java
--- bcprov-jdk16-145.orig/org/bouncycastle/crypto/util/PublicKeyFactory.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/crypto/util/PublicKeyFactory.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/crypto/util/PublicKeyFactory.java 2010-08-25 15:47:14.000000000 +0000
@@ -10,32 +10,40 @@
import org.bouncycastle.asn1.DERObject;
import org.bouncycastle.asn1.DERObjectIdentifier;
@@ -2994,7 +2994,7 @@
throw new RuntimeException("algorithm identifier in key not recognised");
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/PKCS10CertificationRequest.java bcprov-jdk16-145/org/bouncycastle/jce/PKCS10CertificationRequest.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/PKCS10CertificationRequest.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/PKCS10CertificationRequest.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/PKCS10CertificationRequest.java 2010-08-25 15:47:14.000000000 +0000
@@ -78,8 +78,11 @@
static
@@ -3058,7 +3058,7 @@
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/BouncyCastleProvider.java bcprov-jdk16-145/org/bouncycastle/jce/provider/BouncyCastleProvider.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/BouncyCastleProvider.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/BouncyCastleProvider.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/BouncyCastleProvider.java 2010-08-25 15:47:14.000000000 +0000
@@ -53,7 +53,12 @@
private static final String SYMMETRIC_CIPHER_PACKAGE = "org.bouncycastle.jce.provider.symmetric.";
private static final String[] SYMMETRIC_CIPHERS =
@@ -4366,7 +4366,7 @@
{
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/CertPathValidatorUtilities.java bcprov-jdk16-145/org/bouncycastle/jce/provider/CertPathValidatorUtilities.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/CertPathValidatorUtilities.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/CertPathValidatorUtilities.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/CertPathValidatorUtilities.java 2010-08-25 15:47:14.000000000 +0000
@@ -24,6 +24,7 @@
import java.security.spec.DSAPublicKeySpec;
import java.text.ParseException;
@@ -4713,8 +4713,8 @@
CRLDistPoint crldp, ExtendedPKIXParameters pkixParams)
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEBlockCipher.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEBlockCipher.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEBlockCipher.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEBlockCipher.java 2010-08-24 15:15:59.000000000 +0000
-@@ -7,22 +7,29 @@
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEBlockCipher.java 2010-08-25 15:47:14.000000000 +0000
+@@ -7,22 +7,31 @@
import org.bouncycastle.crypto.InvalidCipherTextException;
import org.bouncycastle.crypto.engines.AESFastEngine;
import org.bouncycastle.crypto.engines.BlowfishEngine;
@@ -4731,14 +4731,18 @@
+// import org.bouncycastle.crypto.engines.GOST28147Engine;
+// END android-removed
import org.bouncycastle.crypto.engines.RC2Engine;
- import org.bouncycastle.crypto.engines.RC532Engine;
- import org.bouncycastle.crypto.engines.RC564Engine;
+-import org.bouncycastle.crypto.engines.RC532Engine;
+-import org.bouncycastle.crypto.engines.RC564Engine;
-import org.bouncycastle.crypto.engines.RC6Engine;
-import org.bouncycastle.crypto.engines.RijndaelEngine;
-import org.bouncycastle.crypto.engines.SEEDEngine;
-import org.bouncycastle.crypto.engines.SerpentEngine;
-import org.bouncycastle.crypto.engines.SkipjackEngine;
-import org.bouncycastle.crypto.engines.TEAEngine;
++// BEGIN android-removed
++// import org.bouncycastle.crypto.engines.RC532Engine;
++// import org.bouncycastle.crypto.engines.RC564Engine;
++// END android-removed
+// import org.bouncycastle.crypto.engines.RC6Engine;
+// import org.bouncycastle.crypto.engines.RijndaelEngine;
+// import org.bouncycastle.crypto.engines.SEEDEngine;
@@ -4754,7 +4758,7 @@
import org.bouncycastle.crypto.modes.AEADBlockCipher;
import org.bouncycastle.crypto.modes.CBCBlockCipher;
import org.bouncycastle.crypto.modes.CCMBlockCipher;
-@@ -32,8 +39,10 @@
+@@ -32,8 +41,10 @@
import org.bouncycastle.crypto.modes.GCMBlockCipher;
import org.bouncycastle.crypto.modes.GOFBBlockCipher;
import org.bouncycastle.crypto.modes.OFBBlockCipher;
@@ -4767,25 +4771,46 @@
import org.bouncycastle.crypto.modes.SICBlockCipher;
import org.bouncycastle.crypto.paddings.BlockCipherPadding;
import org.bouncycastle.crypto.paddings.ISO10126d2Padding;
-@@ -45,10 +54,14 @@
+@@ -45,10 +56,12 @@
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.ParametersWithIV;
import org.bouncycastle.crypto.params.ParametersWithRandom;
-import org.bouncycastle.crypto.params.ParametersWithSBox;
-+// BEGIN android-removed
-+// import org.bouncycastle.crypto.params.ParametersWithSBox;
-+// END android-removed
- import org.bouncycastle.crypto.params.RC2Parameters;
- import org.bouncycastle.crypto.params.RC5Parameters;
+-import org.bouncycastle.crypto.params.RC2Parameters;
+-import org.bouncycastle.crypto.params.RC5Parameters;
-import org.bouncycastle.jce.spec.GOST28147ParameterSpec;
+// BEGIN android-removed
++// import org.bouncycastle.crypto.params.ParametersWithSBox;
++// import org.bouncycastle.crypto.params.RC2Parameters;
++// import org.bouncycastle.crypto.params.RC5Parameters;
+// import org.bouncycastle.jce.spec.GOST28147ParameterSpec;
+// END android-removed
import org.bouncycastle.util.Strings;
import javax.crypto.BadPaddingException;
-@@ -82,7 +95,9 @@
- RC5ParameterSpec.class,
+@@ -59,8 +72,10 @@
+ import javax.crypto.ShortBufferException;
+ import javax.crypto.spec.IvParameterSpec;
+ import javax.crypto.spec.PBEParameterSpec;
+-import javax.crypto.spec.RC2ParameterSpec;
+-import javax.crypto.spec.RC5ParameterSpec;
++// BEGIN android-removed
++// import javax.crypto.spec.RC2ParameterSpec;
++// import javax.crypto.spec.RC5ParameterSpec;
++// END android-removed
+ import java.security.AlgorithmParameters;
+ import java.security.InvalidAlgorithmParameterException;
+ import java.security.InvalidKeyException;
+@@ -78,11 +93,15 @@
+ //
+ private Class[] availableSpecs =
+ {
+- RC2ParameterSpec.class,
+- RC5ParameterSpec.class,
++ // BEGIN android-removed
++ // RC2ParameterSpec.class,
++ // RC5ParameterSpec.class,
++ // END android-removed
IvParameterSpec.class,
PBEParameterSpec.class,
- GOST28147ParameterSpec.class
@@ -4795,7 +4820,7 @@
};
private BlockCipher baseEngine;
-@@ -237,20 +252,22 @@
+@@ -237,20 +256,22 @@
new CFBBlockCipher(baseEngine, 8 * baseEngine.getBlockSize()));
}
}
@@ -4832,7 +4857,30 @@
else if (modeName.startsWith("SIC"))
{
ivLength = baseEngine.getBlockSize();
-@@ -448,19 +465,21 @@
+@@ -376,13 +397,15 @@
+ throw new InvalidKeyException("Key for algorithm " + key.getAlgorithm() + " not suitable for symmetric enryption.");
+ }
+
+- //
+- // for RC5-64 we must have some default parameters
+- //
+- if (params == null && baseEngine.getAlgorithmName().startsWith("RC5-64"))
+- {
+- throw new InvalidAlgorithmParameterException("RC5 requires an RC5ParametersSpec to be passed in.");
+- }
++ // BEGIN android-removed
++ // //
++ // // for RC5-64 we must have some default parameters
++ // //
++ // if (params == null && baseEngine.getAlgorithmName().startsWith("RC5-64"))
++ // {
++ // throw new InvalidAlgorithmParameterException("RC5 requires an RC5ParametersSpec to be passed in.");
++ // }
++ // END android-removed
+
+ //
+ // a note on iv's - if ivLength is zero the IV gets ignored (we don't use it).
+@@ -448,63 +471,65 @@
param = new KeyParameter(key.getEncoded());
}
}
@@ -4849,6 +4897,50 @@
- ivParam = (ParametersWithIV)param;
- }
- }
+- else if (params instanceof RC2ParameterSpec)
+- {
+- RC2ParameterSpec rc2Param = (RC2ParameterSpec)params;
+-
+- param = new RC2Parameters(key.getEncoded(), ((RC2ParameterSpec)params).getEffectiveKeyBits());
+-
+- if (rc2Param.getIV() != null && ivLength != 0)
+- {
+- param = new ParametersWithIV(param, rc2Param.getIV());
+- ivParam = (ParametersWithIV)param;
+- }
+- }
+- else if (params instanceof RC5ParameterSpec)
+- {
+- RC5ParameterSpec rc5Param = (RC5ParameterSpec)params;
+-
+- param = new RC5Parameters(key.getEncoded(), ((RC5ParameterSpec)params).getRounds());
+- if (baseEngine.getAlgorithmName().startsWith("RC5"))
+- {
+- if (baseEngine.getAlgorithmName().equals("RC5-32"))
+- {
+- if (rc5Param.getWordSize() != 32)
+- {
+- throw new InvalidAlgorithmParameterException("RC5 already set up for a word size of 32 not " + rc5Param.getWordSize() + ".");
+- }
+- }
+- else if (baseEngine.getAlgorithmName().equals("RC5-64"))
+- {
+- if (rc5Param.getWordSize() != 64)
+- {
+- throw new InvalidAlgorithmParameterException("RC5 already set up for a word size of 64 not " + rc5Param.getWordSize() + ".");
+- }
+- }
+- }
+- else
+- {
+- throw new InvalidAlgorithmParameterException("RC5 parameters passed to a cipher that is not RC5.");
+- }
+- if ((rc5Param.getIV() != null) && (ivLength != 0))
+- {
+- param = new ParametersWithIV(param, rc5Param.getIV());
+- ivParam = (ParametersWithIV)param;
+- }
+- }
+ // BEGIN android-removed
+ // else if (params instanceof GOST28147ParameterSpec)
+ // {
@@ -4863,11 +4955,55 @@
+ // ivParam = (ParametersWithIV)param;
+ // }
+ // }
++ // else if (params instanceof RC2ParameterSpec)
++ // {
++ // RC2ParameterSpec rc2Param = (RC2ParameterSpec)params;
++ //
++ // param = new RC2Parameters(key.getEncoded(), ((RC2ParameterSpec)params).getEffectiveKeyBits());
++ //
++ // if (rc2Param.getIV() != null && ivLength != 0)
++ // {
++ // param = new ParametersWithIV(param, rc2Param.getIV());
++ // ivParam = (ParametersWithIV)param;
++ // }
++ // }
++ // else if (params instanceof RC5ParameterSpec)
++ // {
++ // RC5ParameterSpec rc5Param = (RC5ParameterSpec)params;
++ //
++ // param = new RC5Parameters(key.getEncoded(), ((RC5ParameterSpec)params).getRounds());
++ // if (baseEngine.getAlgorithmName().startsWith("RC5"))
++ // {
++ // if (baseEngine.getAlgorithmName().equals("RC5-32"))
++ // {
++ // if (rc5Param.getWordSize() != 32)
++ // {
++ // throw new InvalidAlgorithmParameterException("RC5 already set up for a word size of 32 not " + rc5Param.getWordSize() + ".");
++ // }
++ // }
++ // else if (baseEngine.getAlgorithmName().equals("RC5-64"))
++ // {
++ // if (rc5Param.getWordSize() != 64)
++ // {
++ // throw new InvalidAlgorithmParameterException("RC5 already set up for a word size of 64 not " + rc5Param.getWordSize() + ".");
++ // }
++ // }
++ // }
++ // else
++ // {
++ // throw new InvalidAlgorithmParameterException("RC5 parameters passed to a cipher that is not RC5.");
++ // }
++ // if ((rc5Param.getIV() != null) && (ivLength != 0))
++ // {
++ // param = new ParametersWithIV(param, rc5Param.getIV());
++ // ivParam = (ParametersWithIV)param;
++ // }
++ // }
+ // END android-removed
- else if (params instanceof RC2ParameterSpec)
+ else
{
- RC2ParameterSpec rc2Param = (RC2ParameterSpec)params;
-@@ -708,10 +727,21 @@
+ throw new InvalidAlgorithmParameterException("unknown parameter type.");
+@@ -708,10 +733,21 @@
int inputLen,
byte[] output,
int outputOffset)
@@ -4890,7 +5026,7 @@
if (inputLen != 0)
{
len = cipher.processBytes(input, inputOffset, inputLen, output, outputOffset);
-@@ -753,17 +783,19 @@
+@@ -753,17 +789,19 @@
}
}
@@ -4921,7 +5057,7 @@
/**
* DESede
-@@ -777,52 +809,54 @@
+@@ -777,52 +815,54 @@
}
}
@@ -5020,7 +5156,7 @@
* Blowfish
*/
static public class Blowfish
-@@ -833,236 +867,238 @@
+@@ -833,236 +873,238 @@
super(new BlowfishEngine());
}
}
@@ -5488,7 +5624,7 @@
/**
* PBEWithMD5AndDES
-@@ -1087,7 +1123,7 @@
+@@ -1087,7 +1129,7 @@
super(new CBCBlockCipher(new RC2Engine()));
}
}
@@ -5497,7 +5633,7 @@
/**
* PBEWithSHA1AndDES
*/
-@@ -1135,7 +1171,7 @@
+@@ -1135,7 +1177,7 @@
super(new CBCBlockCipher(new DESedeEngine()));
}
}
@@ -5506,7 +5642,7 @@
/**
* PBEWithSHAAnd128BitRC2-CBC
*/
-@@ -1159,7 +1195,7 @@
+@@ -1159,7 +1201,7 @@
super(new CBCBlockCipher(new RC2Engine()));
}
}
@@ -5515,7 +5651,7 @@
/**
* PBEWithSHAAndTwofish-CBC
*/
-@@ -1171,7 +1207,7 @@
+@@ -1171,7 +1213,7 @@
super(new CBCBlockCipher(new TwofishEngine()));
}
}
@@ -5526,7 +5662,7 @@
*/
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEDHKeyAgreement.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEDHKeyAgreement.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEDHKeyAgreement.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEDHKeyAgreement.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEDHKeyAgreement.java 2010-08-25 15:47:14.000000000 +0000
@@ -37,9 +37,11 @@
static
@@ -5544,7 +5680,7 @@
algorithms.put("DESEDE", i192);
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEDigestUtil.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEDigestUtil.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEDigestUtil.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEDigestUtil.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEDigestUtil.java 2010-08-25 15:47:14.000000000 +0000
@@ -12,7 +12,9 @@
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.MD5Digest;
@@ -5627,7 +5763,7 @@
|| (sha512.contains(digest1) && sha512.contains(digest2))
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEKeyGenerator.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEKeyGenerator.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEKeyGenerator.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEKeyGenerator.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEKeyGenerator.java 2010-08-25 15:47:14.000000000 +0000
@@ -145,30 +145,32 @@
}
}
@@ -6259,7 +6395,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEMac.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEMac.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEMac.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEMac.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEMac.java 2010-08-25 15:47:14.000000000 +0000
@@ -2,29 +2,43 @@
import org.bouncycastle.crypto.CipherParameters;
@@ -7012,7 +7148,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCERSACipher.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSACipher.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCERSACipher.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSACipher.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSACipher.java 2010-08-25 15:47:14.000000000 +0000
@@ -534,48 +534,50 @@
}
}
@@ -7110,7 +7246,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCERSAPrivateCrtKey.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPrivateCrtKey.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCERSAPrivateCrtKey.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPrivateCrtKey.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPrivateCrtKey.java 2010-08-25 15:47:14.000000000 +0000
@@ -125,7 +125,9 @@
*/
public byte[] getEncoded()
@@ -7124,7 +7260,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCERSAPrivateKey.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPrivateKey.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCERSAPrivateKey.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPrivateKey.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPrivateKey.java 2010-08-25 15:47:14.000000000 +0000
@@ -77,7 +77,9 @@
public byte[] getEncoded()
@@ -7138,7 +7274,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCERSAPublicKey.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPublicKey.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCERSAPublicKey.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPublicKey.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCERSAPublicKey.java 2010-08-25 15:47:14.000000000 +0000
@@ -90,7 +90,9 @@
public byte[] getEncoded()
@@ -7152,7 +7288,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCESecretKeyFactory.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCESecretKeyFactory.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCESecretKeyFactory.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCESecretKeyFactory.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCESecretKeyFactory.java 2010-08-25 15:47:14.000000000 +0000
@@ -321,29 +321,31 @@
}
}
@@ -7272,7 +7408,7 @@
* PBEWithSHA1And128BitAES-BC
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEStreamCipher.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEStreamCipher.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JCEStreamCipher.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEStreamCipher.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JCEStreamCipher.java 2010-08-25 15:47:14.000000000 +0000
@@ -5,17 +5,21 @@
import org.bouncycastle.crypto.DataLengthException;
import org.bouncycastle.crypto.StreamBlockCipher;
@@ -7305,7 +7441,33 @@
import org.bouncycastle.crypto.modes.CFBBlockCipher;
import org.bouncycastle.crypto.modes.OFBBlockCipher;
import org.bouncycastle.crypto.params.KeyParameter;
-@@ -374,125 +378,127 @@
+@@ -27,8 +31,10 @@
+ import javax.crypto.ShortBufferException;
+ import javax.crypto.spec.IvParameterSpec;
+ import javax.crypto.spec.PBEParameterSpec;
+-import javax.crypto.spec.RC2ParameterSpec;
+-import javax.crypto.spec.RC5ParameterSpec;
++// BEGIN android-removed
++// import javax.crypto.spec.RC2ParameterSpec;
++// import javax.crypto.spec.RC5ParameterSpec;
++// END android-removed
+ import java.security.AlgorithmParameters;
+ import java.security.InvalidAlgorithmParameterException;
+ import java.security.InvalidKeyException;
+@@ -44,8 +50,10 @@
+ //
+ private Class[] availableSpecs =
+ {
+- RC2ParameterSpec.class,
+- RC5ParameterSpec.class,
++ // BEGIN android-removed
++ // RC2ParameterSpec.class,
++ // RC5ParameterSpec.class,
++ // END android-removed
+ IvParameterSpec.class,
+ PBEParameterSpec.class
+ };
+@@ -374,125 +382,127 @@
* The ciphers that inherit from us.
*/
@@ -7552,7 +7714,7 @@
/**
* RC4
-@@ -517,7 +523,7 @@
+@@ -517,7 +527,7 @@
super(new RC4Engine(), 0);
}
}
@@ -7561,7 +7723,7 @@
/**
* PBEWithSHAAnd40BitRC4
*/
-@@ -529,64 +535,66 @@
+@@ -529,64 +539,66 @@
super(new RC4Engine(), 0);
}
}
@@ -7690,8 +7852,8 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java 2010-08-24 15:15:59.000000000 +0000
-@@ -2,14 +2,18 @@
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java 2010-08-25 15:47:14.000000000 +0000
+@@ -2,19 +2,25 @@
import org.bouncycastle.crypto.generators.DHParametersGenerator;
import org.bouncycastle.crypto.generators.DSAParametersGenerator;
@@ -7716,7 +7878,15 @@
import javax.crypto.spec.DHGenParameterSpec;
import javax.crypto.spec.DHParameterSpec;
-@@ -144,196 +148,198 @@
+ import javax.crypto.spec.IvParameterSpec;
+-import javax.crypto.spec.RC2ParameterSpec;
++// BEGIN android-removed
++// import javax.crypto.spec.RC2ParameterSpec;
++// END android-removed
+ import java.security.AlgorithmParameterGeneratorSpi;
+ import java.security.AlgorithmParameters;
+ import java.security.InvalidAlgorithmParameterException;
+@@ -144,196 +150,198 @@
}
}
@@ -8109,7 +8279,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKAlgorithmParameters.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKAlgorithmParameters.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKAlgorithmParameters.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKAlgorithmParameters.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKAlgorithmParameters.java 2010-08-25 15:47:14.000000000 +0000
@@ -10,21 +10,29 @@
import org.bouncycastle.asn1.DERObjectIdentifier;
import org.bouncycastle.asn1.DEROctetString;
@@ -9834,7 +10004,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKDSASigner.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKDSASigner.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKDSASigner.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKDSASigner.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKDSASigner.java 2010-08-25 15:47:14.000000000 +0000
@@ -22,13 +22,17 @@
import org.bouncycastle.crypto.DSA;
import org.bouncycastle.crypto.Digest;
@@ -9985,7 +10155,7 @@
extends JDKDSASigner
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKDigestSignature.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKDigestSignature.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKDigestSignature.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKDigestSignature.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKDigestSignature.java 2010-08-25 15:47:14.000000000 +0000
@@ -23,14 +23,20 @@
import org.bouncycastle.crypto.AsymmetricBlockCipher;
import org.bouncycastle.crypto.CipherParameters;
@@ -10186,7 +10356,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKKeyFactory.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyFactory.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKKeyFactory.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyFactory.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyFactory.java 2010-08-25 15:47:14.000000000 +0000
@@ -36,17 +36,21 @@
import org.bouncycastle.asn1.pkcs.RSAPrivateKeyStructure;
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
@@ -10564,7 +10734,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKKeyPairGenerator.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyPairGenerator.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKKeyPairGenerator.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyPairGenerator.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyPairGenerator.java 2010-08-25 15:47:14.000000000 +0000
@@ -6,9 +6,11 @@
import org.bouncycastle.crypto.generators.DHParametersGenerator;
import org.bouncycastle.crypto.generators.DSAKeyPairGenerator;
@@ -10908,7 +11078,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKKeyStore.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyStore.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKKeyStore.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyStore.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKKeyStore.java 2010-08-25 15:47:14.000000000 +0000
@@ -39,7 +39,12 @@
import org.bouncycastle.crypto.CipherParameters;
import org.bouncycastle.crypto.Digest;
@@ -11011,7 +11181,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKMessageDigest.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKMessageDigest.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKMessageDigest.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKMessageDigest.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKMessageDigest.java 2010-08-25 15:47:14.000000000 +0000
@@ -57,36 +57,38 @@
{
super(new SHA1Digest());
@@ -11458,7 +11628,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/JDKPKCS12KeyStore.java 2010-08-25 15:47:14.000000000 +0000
@@ -255,10 +255,13 @@
}
}
@@ -11628,7 +11798,7 @@
return null;
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PBE.java bcprov-jdk16-145/org/bouncycastle/jce/provider/PBE.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PBE.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PBE.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PBE.java 2010-08-25 15:47:14.000000000 +0000
@@ -7,12 +7,18 @@
import org.bouncycastle.crypto.CipherParameters;
@@ -11703,7 +11873,7 @@
break;
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKCS12BagAttributeCarrierImpl.java bcprov-jdk16-145/org/bouncycastle/jce/provider/PKCS12BagAttributeCarrierImpl.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKCS12BagAttributeCarrierImpl.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKCS12BagAttributeCarrierImpl.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKCS12BagAttributeCarrierImpl.java 2010-08-25 15:47:14.000000000 +0000
@@ -1,6 +1,9 @@
package org.bouncycastle.jce.provider;
@@ -11846,7 +12016,7 @@
{
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKIXCertPath.java bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPath.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKIXCertPath.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPath.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPath.java 2010-08-25 15:47:14.000000000 +0000
@@ -33,7 +33,9 @@
import org.bouncycastle.asn1.pkcs.ContentInfo;
import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
@@ -11911,7 +12081,7 @@
throw new CertificateEncodingException("unsupported encoding: " + encoding);
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKIXCertPathBuilderSpi.java bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPathBuilderSpi.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKIXCertPathBuilderSpi.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPathBuilderSpi.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPathBuilderSpi.java 2010-08-25 15:47:14.000000000 +0000
@@ -172,8 +172,9 @@
try
{
@@ -11926,7 +12096,7 @@
// chains
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKIXCertPathValidatorSpi.java bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPathValidatorSpi.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKIXCertPathValidatorSpi.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPathValidatorSpi.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXCertPathValidatorSpi.java 2010-08-25 15:47:14.000000000 +0000
@@ -13,6 +13,7 @@
import java.security.cert.TrustAnchor;
import java.security.cert.X509Certificate;
@@ -12022,7 +12192,7 @@
maxPathLength = RFC3280CertPathUtilities.prepareNextCertL(certPath, index, maxPathLength);
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKIXNameConstraintValidator.java bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXNameConstraintValidator.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/PKIXNameConstraintValidator.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXNameConstraintValidator.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/PKIXNameConstraintValidator.java 2010-08-25 15:47:14.000000000 +0000
@@ -1533,7 +1533,9 @@
for (Enumeration e = permitted.getObjects(); e.hasMoreElements();)
{
@@ -12036,7 +12206,7 @@
subtreesMap.put(tagNo, new HashSet());
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/ProviderUtil.java bcprov-jdk16-145/org/bouncycastle/jce/provider/ProviderUtil.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/ProviderUtil.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/ProviderUtil.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/ProviderUtil.java 2010-08-25 15:47:14.000000000 +0000
@@ -1,9 +1,13 @@
package org.bouncycastle.jce.provider;
@@ -12185,7 +12355,7 @@
throws IOException
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/RFC3280CertPathUtilities.java bcprov-jdk16-145/org/bouncycastle/jce/provider/RFC3280CertPathUtilities.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/RFC3280CertPathUtilities.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/RFC3280CertPathUtilities.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/RFC3280CertPathUtilities.java 2010-08-25 15:47:14.000000000 +0000
@@ -1471,7 +1471,11 @@
PublicKey workingPublicKey,
boolean verificationAlreadyPerformed,
@@ -12245,7 +12415,7 @@
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/WrapCipherSpi.java bcprov-jdk16-145/org/bouncycastle/jce/provider/WrapCipherSpi.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/WrapCipherSpi.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/WrapCipherSpi.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/WrapCipherSpi.java 2010-08-25 15:47:14.000000000 +0000
@@ -12,8 +12,10 @@
import org.bouncycastle.crypto.Wrapper;
import org.bouncycastle.crypto.engines.DESedeEngine;
@@ -12259,28 +12429,32 @@
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.ParametersWithIV;
-@@ -25,7 +27,9 @@
+@@ -25,8 +27,10 @@
import javax.crypto.ShortBufferException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEParameterSpec;
-import javax.crypto.spec.RC2ParameterSpec;
+-import javax.crypto.spec.RC5ParameterSpec;
+// BEGIN android-removed
+// import javax.crypto.spec.RC2ParameterSpec;
++// import javax.crypto.spec.RC5ParameterSpec;
+// END android-removed
- import javax.crypto.spec.RC5ParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.AlgorithmParameters;
-@@ -52,7 +56,9 @@
+ import java.security.InvalidAlgorithmParameterException;
+@@ -52,8 +56,10 @@
{
IvParameterSpec.class,
PBEParameterSpec.class,
- RC2ParameterSpec.class,
+- RC5ParameterSpec.class
+ // BEGIN android-removed
+ // RC2ParameterSpec.class,
++ // RC5ParameterSpec.class
+ // END android-removed
- RC5ParameterSpec.class
};
+ protected int pbeType = PKCS12;
@@ -265,16 +271,19 @@
return null;
}
@@ -12406,7 +12580,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/X509CertificateObject.java bcprov-jdk16-145/org/bouncycastle/jce/provider/X509CertificateObject.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/X509CertificateObject.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/X509CertificateObject.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/X509CertificateObject.java 2010-08-25 15:47:14.000000000 +0000
@@ -518,12 +518,20 @@
return JDKKeyFactory.createPublicKeyFromPublicKeyInfo(c.getSubjectPublicKeyInfo());
}
@@ -12440,7 +12614,7 @@
signature = Signature.getInstance(sigName, "BC");
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/X509SignatureUtil.java bcprov-jdk16-145/org/bouncycastle/jce/provider/X509SignatureUtil.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/X509SignatureUtil.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/X509SignatureUtil.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/X509SignatureUtil.java 2010-08-25 15:47:14.000000000 +0000
@@ -25,7 +25,9 @@
class X509SignatureUtil
@@ -12533,7 +12707,7 @@
return digestAlgOID.getId();
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/symmetric/AES.java bcprov-jdk16-145/org/bouncycastle/jce/provider/symmetric/AES.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/symmetric/AES.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/symmetric/AES.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/symmetric/AES.java 2010-08-25 15:47:14.000000000 +0000
@@ -5,7 +5,9 @@
import org.bouncycastle.crypto.engines.AESEngine;
import org.bouncycastle.crypto.engines.AESFastEngine;
@@ -12770,7 +12944,7 @@
extends JDKAlgorithmParameters.IVAlgorithmParameters
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/symmetric/AESMappings.java bcprov-jdk16-145/org/bouncycastle/jce/provider/symmetric/AESMappings.java
--- bcprov-jdk16-145.orig/org/bouncycastle/jce/provider/symmetric/AESMappings.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/jce/provider/symmetric/AESMappings.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/jce/provider/symmetric/AESMappings.java 2010-08-25 15:47:14.000000000 +0000
@@ -26,55 +26,63 @@
put("Alg.Alias.AlgorithmParameters." + NISTObjectIdentifiers.id_aes192_CBC, "AES");
put("Alg.Alias.AlgorithmParameters." + NISTObjectIdentifiers.id_aes256_CBC, "AES");
@@ -12876,7 +13050,7 @@
}
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/x509/X509Util.java bcprov-jdk16-145/org/bouncycastle/x509/X509Util.java
--- bcprov-jdk16-145.orig/org/bouncycastle/x509/X509Util.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/x509/X509Util.java 2010-08-24 15:15:59.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/x509/X509Util.java 2010-08-25 15:47:14.000000000 +0000
@@ -43,8 +43,10 @@
static
@@ -12938,7 +13112,7 @@
diff -Naur bcprov-jdk16-145.orig/org/bouncycastle/x509/extension/X509ExtensionUtil.java bcprov-jdk16-145/org/bouncycastle/x509/extension/X509ExtensionUtil.java
--- bcprov-jdk16-145.orig/org/bouncycastle/x509/extension/X509ExtensionUtil.java 2010-01-11 21:46:14.000000000 +0000
-+++ bcprov-jdk16-145/org/bouncycastle/x509/extension/X509ExtensionUtil.java 2010-08-24 15:16:00.000000000 +0000
++++ bcprov-jdk16-145/org/bouncycastle/x509/extension/X509ExtensionUtil.java 2010-08-25 15:47:14.000000000 +0000
@@ -62,7 +62,9 @@
{
GeneralName genName = GeneralName.getInstance(it.nextElement());
diff --git a/src/main/java/org/bouncycastle/crypto/engines/RC532Engine.java b/src/main/java/org/bouncycastle/crypto/engines/RC532Engine.java
deleted file mode 100644
index 9fb6f55..0000000
--- a/src/main/java/org/bouncycastle/crypto/engines/RC532Engine.java
+++ /dev/null
@@ -1,287 +0,0 @@
-package org.bouncycastle.crypto.engines;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.RC5Parameters;
-
-/**
- * The specification for RC5 came from the <code>RC5 Encryption Algorithm</code>
- * publication in RSA CryptoBytes, Spring of 1995.
- * <em>http://www.rsasecurity.com/rsalabs/cryptobytes</em>.
- * <p>
- * This implementation has a word size of 32 bits.
- * <p>
- * Implementation courtesy of Tito Pena.
- */
-public class RC532Engine
- implements BlockCipher
-{
- /*
- * the number of rounds to perform
- */
- private int _noRounds;
-
- /*
- * the expanded key array of size 2*(rounds + 1)
- */
- private int _S[];
-
- /*
- * our "magic constants" for 32 32
- *
- * Pw = Odd((e-2) * 2^wordsize)
- * Qw = Odd((o-2) * 2^wordsize)
- *
- * where e is the base of natural logarithms (2.718281828...)
- * and o is the golden ratio (1.61803398...)
- */
- private static final int P32 = 0xb7e15163;
- private static final int Q32 = 0x9e3779b9;
-
- private boolean forEncryption;
-
- /**
- * Create an instance of the RC5 encryption algorithm
- * and set some defaults
- */
- public RC532Engine()
- {
- _noRounds = 12; // the default
- _S = null;
- }
-
- public String getAlgorithmName()
- {
- return "RC5-32";
- }
-
- public int getBlockSize()
- {
- return 2 * 4;
- }
-
- /**
- * initialise a RC5-32 cipher.
- *
- * @param forEncryption whether or not we are for encryption.
- * @param params the parameters required to set up the cipher.
- * @exception IllegalArgumentException if the params argument is
- * inappropriate.
- */
- public void init(
- boolean forEncryption,
- CipherParameters params)
- {
- if (params instanceof RC5Parameters)
- {
- RC5Parameters p = (RC5Parameters)params;
-
- _noRounds = p.getRounds();
-
- setKey(p.getKey());
- }
- else if (params instanceof KeyParameter)
- {
- KeyParameter p = (KeyParameter)params;
-
- setKey(p.getKey());
- }
- else
- {
- throw new IllegalArgumentException("invalid parameter passed to RC532 init - " + params.getClass().getName());
- }
-
- this.forEncryption = forEncryption;
- }
-
- public int processBlock(
- byte[] in,
- int inOff,
- byte[] out,
- int outOff)
- {
- return (forEncryption) ? encryptBlock(in, inOff, out, outOff)
- : decryptBlock(in, inOff, out, outOff);
- }
-
- public void reset()
- {
- }
-
- /**
- * Re-key the cipher.
- * <p>
- * @param key the key to be used
- */
- private void setKey(
- byte[] key)
- {
- //
- // KEY EXPANSION:
- //
- // There are 3 phases to the key expansion.
- //
- // Phase 1:
- // Copy the secret key K[0...b-1] into an array L[0..c-1] of
- // c = ceil(b/u), where u = 32/8 in little-endian order.
- // In other words, we fill up L using u consecutive key bytes
- // of K. Any unfilled byte positions in L are zeroed. In the
- // case that b = c = 0, set c = 1 and L[0] = 0.
- //
- int[] L = new int[(key.length + (4 - 1)) / 4];
-
- for (int i = 0; i != key.length; i++)
- {
- L[i / 4] += (key[i] & 0xff) << (8 * (i % 4));
- }
-
- //
- // Phase 2:
- // Initialize S to a particular fixed pseudo-random bit pattern
- // using an arithmetic progression modulo 2^wordsize determined
- // by the magic numbers, Pw & Qw.
- //
- _S = new int[2*(_noRounds + 1)];
-
- _S[0] = P32;
- for (int i=1; i < _S.length; i++)
- {
- _S[i] = (_S[i-1] + Q32);
- }
-
- //
- // Phase 3:
- // Mix in the user's secret key in 3 passes over the arrays S & L.
- // The max of the arrays sizes is used as the loop control
- //
- int iter;
-
- if (L.length > _S.length)
- {
- iter = 3 * L.length;
- }
- else
- {
- iter = 3 * _S.length;
- }
-
- int A = 0, B = 0;
- int i = 0, j = 0;
-
- for (int k = 0; k < iter; k++)
- {
- A = _S[i] = rotateLeft(_S[i] + A + B, 3);
- B = L[j] = rotateLeft(L[j] + A + B, A+B);
- i = (i+1) % _S.length;
- j = (j+1) % L.length;
- }
- }
-
- /**
- * Encrypt the given block starting at the given offset and place
- * the result in the provided buffer starting at the given offset.
- * <p>
- * @param in in byte buffer containing data to encrypt
- * @param inOff offset into src buffer
- * @param out out buffer where encrypted data is written
- * @param outOff offset into out buffer
- */
- private int encryptBlock(
- byte[] in,
- int inOff,
- byte[] out,
- int outOff)
- {
- int A = bytesToWord(in, inOff) + _S[0];
- int B = bytesToWord(in, inOff + 4) + _S[1];
-
- for (int i = 1; i <= _noRounds; i++)
- {
- A = rotateLeft(A ^ B, B) + _S[2*i];
- B = rotateLeft(B ^ A, A) + _S[2*i+1];
- }
-
- wordToBytes(A, out, outOff);
- wordToBytes(B, out, outOff + 4);
-
- return 2 * 4;
- }
-
- private int decryptBlock(
- byte[] in,
- int inOff,
- byte[] out,
- int outOff)
- {
- int A = bytesToWord(in, inOff);
- int B = bytesToWord(in, inOff + 4);
-
- for (int i = _noRounds; i >= 1; i--)
- {
- B = rotateRight(B - _S[2*i+1], A) ^ A;
- A = rotateRight(A - _S[2*i], B) ^ B;
- }
-
- wordToBytes(A - _S[0], out, outOff);
- wordToBytes(B - _S[1], out, outOff + 4);
-
- return 2 * 4;
- }
-
-
- //////////////////////////////////////////////////////////////
- //
- // PRIVATE Helper Methods
- //
- //////////////////////////////////////////////////////////////
-
- /**
- * Perform a left "spin" of the word. The rotation of the given
- * word <em>x</em> is rotated left by <em>y</em> bits.
- * Only the <em>lg(32)</em> low-order bits of <em>y</em>
- * are used to determine the rotation amount. Here it is
- * assumed that the wordsize used is a power of 2.
- * <p>
- * @param x word to rotate
- * @param y number of bits to rotate % 32
- */
- private int rotateLeft(int x, int y)
- {
- return ((x << (y & (32-1))) | (x >>> (32 - (y & (32-1)))));
- }
-
- /**
- * Perform a right "spin" of the word. The rotation of the given
- * word <em>x</em> is rotated left by <em>y</em> bits.
- * Only the <em>lg(32)</em> low-order bits of <em>y</em>
- * are used to determine the rotation amount. Here it is
- * assumed that the wordsize used is a power of 2.
- * <p>
- * @param x word to rotate
- * @param y number of bits to rotate % 32
- */
- private int rotateRight(int x, int y)
- {
- return ((x >>> (y & (32-1))) | (x << (32 - (y & (32-1)))));
- }
-
- private int bytesToWord(
- byte[] src,
- int srcOff)
- {
- return (src[srcOff] & 0xff) | ((src[srcOff + 1] & 0xff) << 8)
- | ((src[srcOff + 2] & 0xff) << 16) | ((src[srcOff + 3] & 0xff) << 24);
- }
-
- private void wordToBytes(
- int word,
- byte[] dst,
- int dstOff)
- {
- dst[dstOff] = (byte)word;
- dst[dstOff + 1] = (byte)(word >> 8);
- dst[dstOff + 2] = (byte)(word >> 16);
- dst[dstOff + 3] = (byte)(word >> 24);
- }
-}
diff --git a/src/main/java/org/bouncycastle/crypto/engines/RC564Engine.java b/src/main/java/org/bouncycastle/crypto/engines/RC564Engine.java
deleted file mode 100644
index 2121a4b..0000000
--- a/src/main/java/org/bouncycastle/crypto/engines/RC564Engine.java
+++ /dev/null
@@ -1,288 +0,0 @@
-package org.bouncycastle.crypto.engines;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.params.RC5Parameters;
-
-/**
- * The specification for RC5 came from the <code>RC5 Encryption Algorithm</code>
- * publication in RSA CryptoBytes, Spring of 1995.
- * <em>http://www.rsasecurity.com/rsalabs/cryptobytes</em>.
- * <p>
- * This implementation is set to work with a 64 bit word size.
- * <p>
- * Implementation courtesy of Tito Pena.
- */
-public class RC564Engine
- implements BlockCipher
-{
- private static final int wordSize = 64;
- private static final int bytesPerWord = wordSize / 8;
-
- /*
- * the number of rounds to perform
- */
- private int _noRounds;
-
- /*
- * the expanded key array of size 2*(rounds + 1)
- */
- private long _S[];
-
- /*
- * our "magic constants" for wordSize 62
- *
- * Pw = Odd((e-2) * 2^wordsize)
- * Qw = Odd((o-2) * 2^wordsize)
- *
- * where e is the base of natural logarithms (2.718281828...)
- * and o is the golden ratio (1.61803398...)
- */
- private static final long P64 = 0xb7e151628aed2a6bL;
- private static final long Q64 = 0x9e3779b97f4a7c15L;
-
- private boolean forEncryption;
-
- /**
- * Create an instance of the RC5 encryption algorithm
- * and set some defaults
- */
- public RC564Engine()
- {
- _noRounds = 12;
- _S = null;
- }
-
- public String getAlgorithmName()
- {
- return "RC5-64";
- }
-
- public int getBlockSize()
- {
- return 2 * bytesPerWord;
- }
-
- /**
- * initialise a RC5-64 cipher.
- *
- * @param forEncryption whether or not we are for encryption.
- * @param params the parameters required to set up the cipher.
- * @exception IllegalArgumentException if the params argument is
- * inappropriate.
- */
- public void init(
- boolean forEncryption,
- CipherParameters params)
- {
- if (!(params instanceof RC5Parameters))
- {
- throw new IllegalArgumentException("invalid parameter passed to RC564 init - " + params.getClass().getName());
- }
-
- RC5Parameters p = (RC5Parameters)params;
-
- this.forEncryption = forEncryption;
-
- _noRounds = p.getRounds();
-
- setKey(p.getKey());
- }
-
- public int processBlock(
- byte[] in,
- int inOff,
- byte[] out,
- int outOff)
- {
- return (forEncryption) ? encryptBlock(in, inOff, out, outOff)
- : decryptBlock(in, inOff, out, outOff);
- }
-
- public void reset()
- {
- }
-
- /**
- * Re-key the cipher.
- * <p>
- * @param key the key to be used
- */
- private void setKey(
- byte[] key)
- {
- //
- // KEY EXPANSION:
- //
- // There are 3 phases to the key expansion.
- //
- // Phase 1:
- // Copy the secret key K[0...b-1] into an array L[0..c-1] of
- // c = ceil(b/u), where u = wordSize/8 in little-endian order.
- // In other words, we fill up L using u consecutive key bytes
- // of K. Any unfilled byte positions in L are zeroed. In the
- // case that b = c = 0, set c = 1 and L[0] = 0.
- //
- long[] L = new long[(key.length + (bytesPerWord - 1)) / bytesPerWord];
-
- for (int i = 0; i != key.length; i++)
- {
- L[i / bytesPerWord] += (long)(key[i] & 0xff) << (8 * (i % bytesPerWord));
- }
-
- //
- // Phase 2:
- // Initialize S to a particular fixed pseudo-random bit pattern
- // using an arithmetic progression modulo 2^wordsize determined
- // by the magic numbers, Pw & Qw.
- //
- _S = new long[2*(_noRounds + 1)];
-
- _S[0] = P64;
- for (int i=1; i < _S.length; i++)
- {
- _S[i] = (_S[i-1] + Q64);
- }
-
- //
- // Phase 3:
- // Mix in the user's secret key in 3 passes over the arrays S & L.
- // The max of the arrays sizes is used as the loop control
- //
- int iter;
-
- if (L.length > _S.length)
- {
- iter = 3 * L.length;
- }
- else
- {
- iter = 3 * _S.length;
- }
-
- long A = 0, B = 0;
- int i = 0, j = 0;
-
- for (int k = 0; k < iter; k++)
- {
- A = _S[i] = rotateLeft(_S[i] + A + B, 3);
- B = L[j] = rotateLeft(L[j] + A + B, A+B);
- i = (i+1) % _S.length;
- j = (j+1) % L.length;
- }
- }
-
- /**
- * Encrypt the given block starting at the given offset and place
- * the result in the provided buffer starting at the given offset.
- * <p>
- * @param in in byte buffer containing data to encrypt
- * @param inOff offset into src buffer
- * @param out out buffer where encrypted data is written
- * @param outOff offset into out buffer
- */
- private int encryptBlock(
- byte[] in,
- int inOff,
- byte[] out,
- int outOff)
- {
- long A = bytesToWord(in, inOff) + _S[0];
- long B = bytesToWord(in, inOff + bytesPerWord) + _S[1];
-
- for (int i = 1; i <= _noRounds; i++)
- {
- A = rotateLeft(A ^ B, B) + _S[2*i];
- B = rotateLeft(B ^ A, A) + _S[2*i+1];
- }
-
- wordToBytes(A, out, outOff);
- wordToBytes(B, out, outOff + bytesPerWord);
-
- return 2 * bytesPerWord;
- }
-
- private int decryptBlock(
- byte[] in,
- int inOff,
- byte[] out,
- int outOff)
- {
- long A = bytesToWord(in, inOff);
- long B = bytesToWord(in, inOff + bytesPerWord);
-
- for (int i = _noRounds; i >= 1; i--)
- {
- B = rotateRight(B - _S[2*i+1], A) ^ A;
- A = rotateRight(A - _S[2*i], B) ^ B;
- }
-
- wordToBytes(A - _S[0], out, outOff);
- wordToBytes(B - _S[1], out, outOff + bytesPerWord);
-
- return 2 * bytesPerWord;
- }
-
-
- //////////////////////////////////////////////////////////////
- //
- // PRIVATE Helper Methods
- //
- //////////////////////////////////////////////////////////////
-
- /**
- * Perform a left "spin" of the word. The rotation of the given
- * word <em>x</em> is rotated left by <em>y</em> bits.
- * Only the <em>lg(wordSize)</em> low-order bits of <em>y</em>
- * are used to determine the rotation amount. Here it is
- * assumed that the wordsize used is a power of 2.
- * <p>
- * @param x word to rotate
- * @param y number of bits to rotate % wordSize
- */
- private long rotateLeft(long x, long y)
- {
- return ((x << (y & (wordSize-1))) | (x >>> (wordSize - (y & (wordSize-1)))));
- }
-
- /**
- * Perform a right "spin" of the word. The rotation of the given
- * word <em>x</em> is rotated left by <em>y</em> bits.
- * Only the <em>lg(wordSize)</em> low-order bits of <em>y</em>
- * are used to determine the rotation amount. Here it is
- * assumed that the wordsize used is a power of 2.
- * <p>
- * @param x word to rotate
- * @param y number of bits to rotate % wordSize
- */
- private long rotateRight(long x, long y)
- {
- return ((x >>> (y & (wordSize-1))) | (x << (wordSize - (y & (wordSize-1)))));
- }
-
- private long bytesToWord(
- byte[] src,
- int srcOff)
- {
- long word = 0;
-
- for (int i = bytesPerWord - 1; i >= 0; i--)
- {
- word = (word << 8) + (src[i + srcOff] & 0xff);
- }
-
- return word;
- }
-
- private void wordToBytes(
- long word,
- byte[] dst,
- int dstOff)
- {
- for (int i = 0; i < bytesPerWord; i++)
- {
- dst[i + dstOff] = (byte)word;
- word >>>= 8;
- }
- }
-}
diff --git a/src/main/java/org/bouncycastle/crypto/params/RC5Parameters.java b/src/main/java/org/bouncycastle/crypto/params/RC5Parameters.java
deleted file mode 100644
index 6cbd57f..0000000
--- a/src/main/java/org/bouncycastle/crypto/params/RC5Parameters.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.bouncycastle.crypto.params;
-
-import org.bouncycastle.crypto.CipherParameters;
-
-public class RC5Parameters
- implements CipherParameters
-{
- private byte[] key;
- private int rounds;
-
- public RC5Parameters(
- byte[] key,
- int rounds)
- {
- if (key.length > 255)
- {
- throw new IllegalArgumentException("RC5 key length can be no greater than 255");
- }
-
- this.key = new byte[key.length];
- this.rounds = rounds;
-
- System.arraycopy(key, 0, this.key, 0, key.length);
- }
-
- public byte[] getKey()
- {
- return key;
- }
-
- public int getRounds()
- {
- return rounds;
- }
-}
diff --git a/src/main/java/org/bouncycastle/jce/provider/JCEBlockCipher.java b/src/main/java/org/bouncycastle/jce/provider/JCEBlockCipher.java
index f3c9d1f..5ba4cc2 100644
--- a/src/main/java/org/bouncycastle/jce/provider/JCEBlockCipher.java
+++ b/src/main/java/org/bouncycastle/jce/provider/JCEBlockCipher.java
@@ -17,8 +17,10 @@
// import org.bouncycastle.crypto.engines.GOST28147Engine;
// END android-removed
import org.bouncycastle.crypto.engines.RC2Engine;
-import org.bouncycastle.crypto.engines.RC532Engine;
-import org.bouncycastle.crypto.engines.RC564Engine;
+// BEGIN android-removed
+// import org.bouncycastle.crypto.engines.RC532Engine;
+// import org.bouncycastle.crypto.engines.RC564Engine;
+// END android-removed
// import org.bouncycastle.crypto.engines.RC6Engine;
// import org.bouncycastle.crypto.engines.RijndaelEngine;
// import org.bouncycastle.crypto.engines.SEEDEngine;
@@ -56,10 +58,8 @@
import org.bouncycastle.crypto.params.ParametersWithRandom;
// BEGIN android-removed
// import org.bouncycastle.crypto.params.ParametersWithSBox;
-// END android-removed
-import org.bouncycastle.crypto.params.RC2Parameters;
-import org.bouncycastle.crypto.params.RC5Parameters;
-// BEGIN android-removed
+// import org.bouncycastle.crypto.params.RC2Parameters;
+// import org.bouncycastle.crypto.params.RC5Parameters;
// import org.bouncycastle.jce.spec.GOST28147ParameterSpec;
// END android-removed
import org.bouncycastle.util.Strings;
@@ -72,8 +72,10 @@
import javax.crypto.ShortBufferException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEParameterSpec;
-import javax.crypto.spec.RC2ParameterSpec;
-import javax.crypto.spec.RC5ParameterSpec;
+// BEGIN android-removed
+// import javax.crypto.spec.RC2ParameterSpec;
+// import javax.crypto.spec.RC5ParameterSpec;
+// END android-removed
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
@@ -91,8 +93,10 @@
//
private Class[] availableSpecs =
{
- RC2ParameterSpec.class,
- RC5ParameterSpec.class,
+ // BEGIN android-removed
+ // RC2ParameterSpec.class,
+ // RC5ParameterSpec.class,
+ // END android-removed
IvParameterSpec.class,
PBEParameterSpec.class,
// BEGIN android-removed
@@ -393,13 +397,15 @@
throw new InvalidKeyException("Key for algorithm " + key.getAlgorithm() + " not suitable for symmetric enryption.");
}
- //
- // for RC5-64 we must have some default parameters
- //
- if (params == null && baseEngine.getAlgorithmName().startsWith("RC5-64"))
- {
- throw new InvalidAlgorithmParameterException("RC5 requires an RC5ParametersSpec to be passed in.");
- }
+ // BEGIN android-removed
+ // //
+ // // for RC5-64 we must have some default parameters
+ // //
+ // if (params == null && baseEngine.getAlgorithmName().startsWith("RC5-64"))
+ // {
+ // throw new InvalidAlgorithmParameterException("RC5 requires an RC5ParametersSpec to be passed in.");
+ // }
+ // END android-removed
//
// a note on iv's - if ivLength is zero the IV gets ignored (we don't use it).
@@ -479,51 +485,51 @@
// ivParam = (ParametersWithIV)param;
// }
// }
+ // else if (params instanceof RC2ParameterSpec)
+ // {
+ // RC2ParameterSpec rc2Param = (RC2ParameterSpec)params;
+ //
+ // param = new RC2Parameters(key.getEncoded(), ((RC2ParameterSpec)params).getEffectiveKeyBits());
+ //
+ // if (rc2Param.getIV() != null && ivLength != 0)
+ // {
+ // param = new ParametersWithIV(param, rc2Param.getIV());
+ // ivParam = (ParametersWithIV)param;
+ // }
+ // }
+ // else if (params instanceof RC5ParameterSpec)
+ // {
+ // RC5ParameterSpec rc5Param = (RC5ParameterSpec)params;
+ //
+ // param = new RC5Parameters(key.getEncoded(), ((RC5ParameterSpec)params).getRounds());
+ // if (baseEngine.getAlgorithmName().startsWith("RC5"))
+ // {
+ // if (baseEngine.getAlgorithmName().equals("RC5-32"))
+ // {
+ // if (rc5Param.getWordSize() != 32)
+ // {
+ // throw new InvalidAlgorithmParameterException("RC5 already set up for a word size of 32 not " + rc5Param.getWordSize() + ".");
+ // }
+ // }
+ // else if (baseEngine.getAlgorithmName().equals("RC5-64"))
+ // {
+ // if (rc5Param.getWordSize() != 64)
+ // {
+ // throw new InvalidAlgorithmParameterException("RC5 already set up for a word size of 64 not " + rc5Param.getWordSize() + ".");
+ // }
+ // }
+ // }
+ // else
+ // {
+ // throw new InvalidAlgorithmParameterException("RC5 parameters passed to a cipher that is not RC5.");
+ // }
+ // if ((rc5Param.getIV() != null) && (ivLength != 0))
+ // {
+ // param = new ParametersWithIV(param, rc5Param.getIV());
+ // ivParam = (ParametersWithIV)param;
+ // }
+ // }
// END android-removed
- else if (params instanceof RC2ParameterSpec)
- {
- RC2ParameterSpec rc2Param = (RC2ParameterSpec)params;
-
- param = new RC2Parameters(key.getEncoded(), ((RC2ParameterSpec)params).getEffectiveKeyBits());
-
- if (rc2Param.getIV() != null && ivLength != 0)
- {
- param = new ParametersWithIV(param, rc2Param.getIV());
- ivParam = (ParametersWithIV)param;
- }
- }
- else if (params instanceof RC5ParameterSpec)
- {
- RC5ParameterSpec rc5Param = (RC5ParameterSpec)params;
-
- param = new RC5Parameters(key.getEncoded(), ((RC5ParameterSpec)params).getRounds());
- if (baseEngine.getAlgorithmName().startsWith("RC5"))
- {
- if (baseEngine.getAlgorithmName().equals("RC5-32"))
- {
- if (rc5Param.getWordSize() != 32)
- {
- throw new InvalidAlgorithmParameterException("RC5 already set up for a word size of 32 not " + rc5Param.getWordSize() + ".");
- }
- }
- else if (baseEngine.getAlgorithmName().equals("RC5-64"))
- {
- if (rc5Param.getWordSize() != 64)
- {
- throw new InvalidAlgorithmParameterException("RC5 already set up for a word size of 64 not " + rc5Param.getWordSize() + ".");
- }
- }
- }
- else
- {
- throw new InvalidAlgorithmParameterException("RC5 parameters passed to a cipher that is not RC5.");
- }
- if ((rc5Param.getIV() != null) && (ivLength != 0))
- {
- param = new ParametersWithIV(param, rc5Param.getIV());
- ivParam = (ParametersWithIV)param;
- }
- }
else
{
throw new InvalidAlgorithmParameterException("unknown parameter type.");
diff --git a/src/main/java/org/bouncycastle/jce/provider/JCEStreamCipher.java b/src/main/java/org/bouncycastle/jce/provider/JCEStreamCipher.java
index 27fe299..6226581 100644
--- a/src/main/java/org/bouncycastle/jce/provider/JCEStreamCipher.java
+++ b/src/main/java/org/bouncycastle/jce/provider/JCEStreamCipher.java
@@ -31,8 +31,10 @@
import javax.crypto.ShortBufferException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEParameterSpec;
-import javax.crypto.spec.RC2ParameterSpec;
-import javax.crypto.spec.RC5ParameterSpec;
+// BEGIN android-removed
+// import javax.crypto.spec.RC2ParameterSpec;
+// import javax.crypto.spec.RC5ParameterSpec;
+// END android-removed
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
@@ -48,8 +50,10 @@
//
private Class[] availableSpecs =
{
- RC2ParameterSpec.class,
- RC5ParameterSpec.class,
+ // BEGIN android-removed
+ // RC2ParameterSpec.class,
+ // RC5ParameterSpec.class,
+ // END android-removed
IvParameterSpec.class,
PBEParameterSpec.class
};
diff --git a/src/main/java/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java b/src/main/java/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java
index f1865ec..f367434 100644
--- a/src/main/java/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java
+++ b/src/main/java/org/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator.java
@@ -18,7 +18,9 @@
import javax.crypto.spec.DHGenParameterSpec;
import javax.crypto.spec.DHParameterSpec;
import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.RC2ParameterSpec;
+// BEGIN android-removed
+// import javax.crypto.spec.RC2ParameterSpec;
+// END android-removed
import java.security.AlgorithmParameterGeneratorSpi;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
diff --git a/src/main/java/org/bouncycastle/jce/provider/WrapCipherSpi.java b/src/main/java/org/bouncycastle/jce/provider/WrapCipherSpi.java
index f2cdc73..aa50406 100644
--- a/src/main/java/org/bouncycastle/jce/provider/WrapCipherSpi.java
+++ b/src/main/java/org/bouncycastle/jce/provider/WrapCipherSpi.java
@@ -29,8 +29,8 @@
import javax.crypto.spec.PBEParameterSpec;
// BEGIN android-removed
// import javax.crypto.spec.RC2ParameterSpec;
+// import javax.crypto.spec.RC5ParameterSpec;
// END android-removed
-import javax.crypto.spec.RC5ParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
@@ -58,8 +58,8 @@
PBEParameterSpec.class,
// BEGIN android-removed
// RC2ParameterSpec.class,
+ // RC5ParameterSpec.class
// END android-removed
- RC5ParameterSpec.class
};
protected int pbeType = PKCS12;