Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric')
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java651
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/ARC4.java124
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Blowfish.java75
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/CAST5.java221
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/CAST6.java90
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Camellia.java238
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/ChaCha.java51
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/DES.java505
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/DESede.java435
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/GOST28147.java157
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Grain128.java49
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Grainv1.java49
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/HC128.java49
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/HC256.java49
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/IDEA.java258
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Noekeon.java153
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2.java228
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12.java120
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC2.java523
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC5.java177
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC6.java180
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Rijndael.java70
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SEED.java183
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Salsa20.java51
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Serpent.java103
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Shacal2.java124
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SipHash.java62
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Skipjack.java87
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SymmetricAlgorithmProvider.java34
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/TEA.java62
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Threefish.java120
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Twofish.java132
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/VMPC.java65
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/VMPCKSA3.java51
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/XSalsa20.java51
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/XTEA.java62
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey.java155
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseAlgorithmParameterGenerator.java19
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseAlgorithmParameters.java29
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java1095
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseKeyGenerator.java82
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseMac.java144
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory.java93
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseStreamCipher.java359
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher.java394
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BlockCipherProvider.java8
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/IvAlgorithmParameters.java118
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/PBE.java319
-rw-r--r--prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/PBESecretKeyFactory.java68
49 files changed, 0 insertions, 8522 deletions
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java
deleted file mode 100644
index 244342b1..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/AES.java
+++ /dev/null
@@ -1,651 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidParameterSpecException;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.asn1.bc.BCObjectIdentifiers;
-import org.bouncycastle.asn1.cms.GCMParameters;
-import org.bouncycastle.asn1.nist.NISTObjectIdentifiers;
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.BufferedBlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.AESFastEngine;
-import org.bouncycastle.crypto.engines.AESWrapEngine;
-import org.bouncycastle.crypto.engines.RFC3211WrapEngine;
-import org.bouncycastle.crypto.engines.RFC5649WrapEngine;
-import org.bouncycastle.crypto.generators.Poly1305KeyGenerator;
-import org.bouncycastle.crypto.macs.CMac;
-import org.bouncycastle.crypto.macs.GMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.modes.CFBBlockCipher;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.crypto.modes.OFBBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseWrapCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.symmetric.util.PBESecretKeyFactory;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-import org.bouncycastle.util.Integers;
-
-public final class AES
-{
- private static final Class gcmSpecClass = lookup("javax.crypto.spec.GCMParameterSpec");
-
- private AES()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new AESFastEngine();
- }
- });
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new AESFastEngine()), 128);
- }
- }
-
- static public class CFB
- extends BaseBlockCipher
- {
- public CFB()
- {
- super(new BufferedBlockCipher(new CFBBlockCipher(new AESFastEngine(), 128)), 128);
- }
- }
-
- static public class OFB
- extends BaseBlockCipher
- {
- public OFB()
- {
- super(new BufferedBlockCipher(new OFBBlockCipher(new AESFastEngine(), 128)), 128);
- }
- }
-
- static public class GCM
- extends BaseBlockCipher
- {
- public GCM()
- {
- super(new GCMBlockCipher(new AESFastEngine()));
- }
- }
-
- public static class AESCMAC
- extends BaseMac
- {
- public AESCMAC()
- {
- super(new CMac(new AESFastEngine()));
- }
- }
-
- public static class AESGMAC
- extends BaseMac
- {
- public AESGMAC()
- {
- super(new GMac(new GCMBlockCipher(new AESFastEngine())));
- }
- }
-
- public static class Poly1305
- extends BaseMac
- {
- public Poly1305()
- {
- super(new org.bouncycastle.crypto.macs.Poly1305(new AESFastEngine()));
- }
- }
-
- public static class Poly1305KeyGen
- extends BaseKeyGenerator
- {
- public Poly1305KeyGen()
- {
- super("Poly1305-AES", 256, new Poly1305KeyGenerator());
- }
- }
-
- static public class Wrap
- extends BaseWrapCipher
- {
- public Wrap()
- {
- super(new AESWrapEngine());
- }
- }
-
- public static class RFC3211Wrap
- extends BaseWrapCipher
- {
- public RFC3211Wrap()
- {
- super(new RFC3211WrapEngine(new AESFastEngine()), 16);
- }
- }
-
- public static class RFC5649Wrap
- extends BaseWrapCipher
- {
- public RFC5649Wrap()
- {
- super(new RFC5649WrapEngine(new AESFastEngine()));
- }
- }
-
- /**
- * PBEWithAES-CBC
- */
- static public class PBEWithAESCBC
- extends BaseBlockCipher
- {
- public PBEWithAESCBC()
- {
- super(new CBCBlockCipher(new AESFastEngine()));
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- this(192);
- }
-
- public KeyGen(int keySize)
- {
- super("AES", keySize, new CipherKeyGenerator());
- }
- }
-
- public static class KeyGen128
- extends KeyGen
- {
- public KeyGen128()
- {
- super(128);
- }
- }
-
- public static class KeyGen192
- extends KeyGen
- {
- public KeyGen192()
- {
- super(192);
- }
- }
-
- public static class KeyGen256
- extends KeyGen
- {
- public KeyGen256()
- {
- super(256);
- }
- }
-
- /**
- * PBEWithSHA1And128BitAES-BC
- */
- static public class PBEWithSHAAnd128BitAESBC
- extends PBESecretKeyFactory
- {
- public PBEWithSHAAnd128BitAESBC()
- {
- super("PBEWithSHA1And128BitAES-CBC-BC", null, true, PKCS12, SHA1, 128, 128);
- }
- }
-
- /**
- * PBEWithSHA1And192BitAES-BC
- */
- static public class PBEWithSHAAnd192BitAESBC
- extends PBESecretKeyFactory
- {
- public PBEWithSHAAnd192BitAESBC()
- {
- super("PBEWithSHA1And192BitAES-CBC-BC", null, true, PKCS12, SHA1, 192, 128);
- }
- }
-
- /**
- * PBEWithSHA1And256BitAES-BC
- */
- static public class PBEWithSHAAnd256BitAESBC
- extends PBESecretKeyFactory
- {
- public PBEWithSHAAnd256BitAESBC()
- {
- super("PBEWithSHA1And256BitAES-CBC-BC", null, true, PKCS12, SHA1, 256, 128);
- }
- }
-
- /**
- * PBEWithSHA256And128BitAES-BC
- */
- static public class PBEWithSHA256And128BitAESBC
- extends PBESecretKeyFactory
- {
- public PBEWithSHA256And128BitAESBC()
- {
- super("PBEWithSHA256And128BitAES-CBC-BC", null, true, PKCS12, SHA256, 128, 128);
- }
- }
-
- /**
- * PBEWithSHA256And192BitAES-BC
- */
- static public class PBEWithSHA256And192BitAESBC
- extends PBESecretKeyFactory
- {
- public PBEWithSHA256And192BitAESBC()
- {
- super("PBEWithSHA256And192BitAES-CBC-BC", null, true, PKCS12, SHA256, 192, 128);
- }
- }
-
- /**
- * PBEWithSHA256And256BitAES-BC
- */
- static public class PBEWithSHA256And256BitAESBC
- extends PBESecretKeyFactory
- {
- public PBEWithSHA256And256BitAESBC()
- {
- super("PBEWithSHA256And256BitAES-CBC-BC", null, true, PKCS12, SHA256, 256, 128);
- }
- }
-
- /**
- * PBEWithMD5And128BitAES-OpenSSL
- */
- static public class PBEWithMD5And128BitAESCBCOpenSSL
- extends PBESecretKeyFactory
- {
- public PBEWithMD5And128BitAESCBCOpenSSL()
- {
- super("PBEWithMD5And128BitAES-CBC-OpenSSL", null, true, OPENSSL, MD5, 128, 128);
- }
- }
-
- /**
- * PBEWithMD5And192BitAES-OpenSSL
- */
- static public class PBEWithMD5And192BitAESCBCOpenSSL
- extends PBESecretKeyFactory
- {
- public PBEWithMD5And192BitAESCBCOpenSSL()
- {
- super("PBEWithMD5And192BitAES-CBC-OpenSSL", null, true, OPENSSL, MD5, 192, 128);
- }
- }
-
- /**
- * PBEWithMD5And256BitAES-OpenSSL
- */
- static public class PBEWithMD5And256BitAESCBCOpenSSL
- extends PBESecretKeyFactory
- {
- public PBEWithMD5And256BitAESCBCOpenSSL()
- {
- super("PBEWithMD5And256BitAES-CBC-OpenSSL", null, true, OPENSSL, MD5, 256, 128);
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for AES parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[16];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("AES", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "AES IV";
- }
- }
-
- public static class AlgParamsGCM
- extends BaseAlgorithmParameters
- {
- private GCMParameters gcmParams;
-
- protected void engineInit(AlgorithmParameterSpec paramSpec)
- throws InvalidParameterSpecException
- {
- if (gcmSpecClass != null)
- {
- try
- {
- Method tLen = gcmSpecClass.getDeclaredMethod("getTLen", new Class[0]);
- Method iv= gcmSpecClass.getDeclaredMethod("getIV", new Class[0]);
-
-
- gcmParams = new GCMParameters((byte[])iv.invoke(paramSpec, new Object[0]), ((Integer)tLen.invoke(paramSpec, new Object[0])).intValue());
- }
- catch (Exception e)
- {
- throw new InvalidParameterSpecException("Cannot process GCMParameterSpec.");
- }
- }
- }
-
- protected void engineInit(byte[] params)
- throws IOException
- {
- gcmParams = GCMParameters.getInstance(params);
- }
-
- protected void engineInit(byte[] params, String format)
- throws IOException
- {
- if (!isASN1FormatString(format))
- {
- throw new IOException("unknown format specified");
- }
-
- gcmParams = GCMParameters.getInstance(params);
- }
-
- protected byte[] engineGetEncoded()
- throws IOException
- {
- return gcmParams.getEncoded();
- }
-
- protected byte[] engineGetEncoded(String format)
- throws IOException
- {
- if (!isASN1FormatString(format))
- {
- throw new IOException("unknown format specified");
- }
-
- return gcmParams.getEncoded();
- }
-
- protected String engineToString()
- {
- return "GCM";
- }
-
- protected AlgorithmParameterSpec localEngineGetParameterSpec(Class paramSpec)
- throws InvalidParameterSpecException
- {
- if (gcmSpecClass != null)
- {
- try
- {
- Constructor constructor = gcmSpecClass.getConstructor(new Class[] { Integer.TYPE, byte[].class });
-
- return (AlgorithmParameterSpec)constructor.newInstance(new Object[] { Integers.valueOf(gcmParams.getIcvLen()), gcmParams.getNonce() });
- }
- catch (NoSuchMethodException e)
- {
- throw new InvalidParameterSpecException("no constructor found!"); // should never happen
- }
- catch (Exception e)
- {
- throw new InvalidParameterSpecException("construction failed: " + e.getMessage()); // should never happen
- }
- }
-
- throw new InvalidParameterSpecException("unknown parameter spec: " + paramSpec.getName());
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = AES.class.getName();
-
- /**
- * These three got introduced in some messages as a result of a typo in an
- * early document. We don't produce anything using these OID values, but we'll
- * read them.
- */
- private static final String wrongAES128 = "2.16.840.1.101.3.4.2";
- private static final String wrongAES192 = "2.16.840.1.101.3.4.22";
- private static final String wrongAES256 = "2.16.840.1.101.3.4.42";
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("AlgorithmParameters.AES", PREFIX + "$AlgParams");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + wrongAES128, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + wrongAES192, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + wrongAES256, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NISTObjectIdentifiers.id_aes128_CBC, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NISTObjectIdentifiers.id_aes192_CBC, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NISTObjectIdentifiers.id_aes256_CBC, "AES");
-
- provider.addAlgorithm("AlgorithmParameters.GCM", PREFIX + "$AlgParamsGCM");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NISTObjectIdentifiers.id_aes128_GCM, "GCM");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NISTObjectIdentifiers.id_aes192_GCM, "GCM");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NISTObjectIdentifiers.id_aes256_GCM, "GCM");
-
- provider.addAlgorithm("AlgorithmParameterGenerator.AES", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + wrongAES128, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + wrongAES192, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + wrongAES256, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + NISTObjectIdentifiers.id_aes128_CBC, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + NISTObjectIdentifiers.id_aes192_CBC, "AES");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + NISTObjectIdentifiers.id_aes256_CBC, "AES");
-
- provider.addAlgorithm("Cipher.AES", PREFIX + "$ECB");
- provider.addAlgorithm("Alg.Alias.Cipher." + wrongAES128, "AES");
- provider.addAlgorithm("Alg.Alias.Cipher." + wrongAES192, "AES");
- provider.addAlgorithm("Alg.Alias.Cipher." + wrongAES256, "AES");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes128_ECB, PREFIX + "$ECB");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes192_ECB, PREFIX + "$ECB");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes256_ECB, PREFIX + "$ECB");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes128_CBC, PREFIX + "$CBC");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes192_CBC, PREFIX + "$CBC");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes256_CBC, PREFIX + "$CBC");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes128_OFB, PREFIX + "$OFB");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes192_OFB, PREFIX + "$OFB");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes256_OFB, PREFIX + "$OFB");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes128_CFB, PREFIX + "$CFB");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes192_CFB, PREFIX + "$CFB");
- provider.addAlgorithm("Cipher." + NISTObjectIdentifiers.id_aes256_CFB, PREFIX + "$CFB");
- provider.addAlgorithm("Cipher.AESWRAP", PREFIX + "$Wrap");
- provider.addAlgorithm("Alg.Alias.Cipher." + NISTObjectIdentifiers.id_aes128_wrap, "AESWRAP");
- provider.addAlgorithm("Alg.Alias.Cipher." + NISTObjectIdentifiers.id_aes192_wrap, "AESWRAP");
- provider.addAlgorithm("Alg.Alias.Cipher." + NISTObjectIdentifiers.id_aes256_wrap, "AESWRAP");
-
- provider.addAlgorithm("Cipher.AESRFC3211WRAP", PREFIX + "$RFC3211Wrap");
- provider.addAlgorithm("Cipher.AESRFC5649WRAP", PREFIX + "$RFC5649Wrap");
-
- provider.addAlgorithm("Cipher.GCM", PREFIX + "$GCM");
- provider.addAlgorithm("Alg.Alias.Cipher." + NISTObjectIdentifiers.id_aes128_GCM, "GCM");
- provider.addAlgorithm("Alg.Alias.Cipher." + NISTObjectIdentifiers.id_aes192_GCM, "GCM");
- provider.addAlgorithm("Alg.Alias.Cipher." + NISTObjectIdentifiers.id_aes256_GCM, "GCM");
-
- provider.addAlgorithm("KeyGenerator.AES", PREFIX + "$KeyGen");
- provider.addAlgorithm("KeyGenerator." + wrongAES128, PREFIX + "$KeyGen128");
- provider.addAlgorithm("KeyGenerator." + wrongAES192, PREFIX + "$KeyGen192");
- provider.addAlgorithm("KeyGenerator." + wrongAES256, PREFIX + "$KeyGen256");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes128_ECB, PREFIX + "$KeyGen128");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes128_CBC, PREFIX + "$KeyGen128");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes128_OFB, PREFIX + "$KeyGen128");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes128_CFB, PREFIX + "$KeyGen128");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes192_ECB, PREFIX + "$KeyGen192");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes192_CBC, PREFIX + "$KeyGen192");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes192_OFB, PREFIX + "$KeyGen192");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes192_CFB, PREFIX + "$KeyGen192");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes256_ECB, PREFIX + "$KeyGen256");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes256_CBC, PREFIX + "$KeyGen256");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes256_OFB, PREFIX + "$KeyGen256");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes256_CFB, PREFIX + "$KeyGen256");
- provider.addAlgorithm("KeyGenerator.AESWRAP", PREFIX + "$KeyGen");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes128_wrap, PREFIX + "$KeyGen128");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes192_wrap, PREFIX + "$KeyGen192");
- provider.addAlgorithm("KeyGenerator." + NISTObjectIdentifiers.id_aes256_wrap, PREFIX + "$KeyGen256");
-
- provider.addAlgorithm("Mac.AESCMAC", PREFIX + "$AESCMAC");
-
- provider.addAlgorithm("Alg.Alias.Cipher." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes128_cbc.getId(), "PBEWITHSHAAND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes192_cbc.getId(), "PBEWITHSHAAND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes256_cbc.getId(), "PBEWITHSHAAND256BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes128_cbc.getId(), "PBEWITHSHA256AND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes192_cbc.getId(), "PBEWITHSHA256AND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes256_cbc.getId(), "PBEWITHSHA256AND256BITAES-CBC-BC");
-
- provider.addAlgorithm("Cipher.PBEWITHSHAAND128BITAES-CBC-BC", PREFIX + "$PBEWithAESCBC");
- provider.addAlgorithm("Cipher.PBEWITHSHAAND192BITAES-CBC-BC", PREFIX + "$PBEWithAESCBC");
- provider.addAlgorithm("Cipher.PBEWITHSHAAND256BITAES-CBC-BC", PREFIX + "$PBEWithAESCBC");
- provider.addAlgorithm("Cipher.PBEWITHSHA256AND128BITAES-CBC-BC", PREFIX + "$PBEWithAESCBC");
- provider.addAlgorithm("Cipher.PBEWITHSHA256AND192BITAES-CBC-BC", PREFIX + "$PBEWithAESCBC");
- provider.addAlgorithm("Cipher.PBEWITHSHA256AND256BITAES-CBC-BC", PREFIX + "$PBEWithAESCBC");
-
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND128BITAES-CBC-BC","PBEWITHSHAAND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND192BITAES-CBC-BC","PBEWITHSHAAND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND256BITAES-CBC-BC","PBEWITHSHAAND256BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA-1AND128BITAES-CBC-BC","PBEWITHSHAAND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA-1AND192BITAES-CBC-BC","PBEWITHSHAAND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA-1AND256BITAES-CBC-BC","PBEWITHSHAAND256BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA-256AND128BITAES-CBC-BC","PBEWITHSHA256AND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA-256AND192BITAES-CBC-BC","PBEWITHSHA256AND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA-256AND256BITAES-CBC-BC","PBEWITHSHA256AND256BITAES-CBC-BC");
-
- provider.addAlgorithm("Cipher.PBEWITHMD5AND128BITAES-CBC-OPENSSL", PREFIX + "$PBEWithAESCBC");
- provider.addAlgorithm("Cipher.PBEWITHMD5AND192BITAES-CBC-OPENSSL", PREFIX + "$PBEWithAESCBC");
- provider.addAlgorithm("Cipher.PBEWITHMD5AND256BITAES-CBC-OPENSSL", PREFIX + "$PBEWithAESCBC");
-
- provider.addAlgorithm("SecretKeyFactory.PBEWITHMD5AND128BITAES-CBC-OPENSSL", PREFIX + "$PBEWithMD5And128BitAESCBCOpenSSL");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHMD5AND192BITAES-CBC-OPENSSL", PREFIX + "$PBEWithMD5And192BitAESCBCOpenSSL");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHMD5AND256BITAES-CBC-OPENSSL", PREFIX + "$PBEWithMD5And256BitAESCBCOpenSSL");
-
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND128BITAES-CBC-BC", PREFIX + "$PBEWithSHAAnd128BitAESBC");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND192BITAES-CBC-BC", PREFIX + "$PBEWithSHAAnd192BitAESBC");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND256BITAES-CBC-BC", PREFIX + "$PBEWithSHAAnd256BitAESBC");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHA256AND128BITAES-CBC-BC", PREFIX + "$PBEWithSHA256And128BitAESBC");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHA256AND192BITAES-CBC-BC", PREFIX + "$PBEWithSHA256And192BitAESBC");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHA256AND256BITAES-CBC-BC", PREFIX + "$PBEWithSHA256And256BitAESBC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA1AND128BITAES-CBC-BC","PBEWITHSHAAND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA1AND192BITAES-CBC-BC","PBEWITHSHAAND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA1AND256BITAES-CBC-BC","PBEWITHSHAAND256BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA-1AND128BITAES-CBC-BC","PBEWITHSHAAND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA-1AND192BITAES-CBC-BC","PBEWITHSHAAND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA-1AND256BITAES-CBC-BC","PBEWITHSHAAND256BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA-256AND128BITAES-CBC-BC","PBEWITHSHA256AND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA-256AND192BITAES-CBC-BC","PBEWITHSHA256AND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA-256AND256BITAES-CBC-BC","PBEWITHSHA256AND256BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes128_cbc.getId(), "PBEWITHSHAAND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes192_cbc.getId(), "PBEWITHSHAAND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes256_cbc.getId(), "PBEWITHSHAAND256BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes128_cbc.getId(), "PBEWITHSHA256AND128BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes192_cbc.getId(), "PBEWITHSHA256AND192BITAES-CBC-BC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes256_cbc.getId(), "PBEWITHSHA256AND256BITAES-CBC-BC");
-
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND128BITAES-CBC-BC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND192BITAES-CBC-BC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND256BITAES-CBC-BC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA256AND128BITAES-CBC-BC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA256AND192BITAES-CBC-BC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA256AND256BITAES-CBC-BC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA1AND128BITAES-CBC-BC","PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA1AND192BITAES-CBC-BC","PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA1AND256BITAES-CBC-BC","PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA-1AND128BITAES-CBC-BC","PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA-1AND192BITAES-CBC-BC","PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA-1AND256BITAES-CBC-BC","PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA-256AND128BITAES-CBC-BC","PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA-256AND192BITAES-CBC-BC","PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA-256AND256BITAES-CBC-BC","PKCS12PBE");
-
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes128_cbc.getId(), "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes192_cbc.getId(), "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + BCObjectIdentifiers.bc_pbe_sha1_pkcs12_aes256_cbc.getId(), "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes128_cbc.getId(), "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes192_cbc.getId(), "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + BCObjectIdentifiers.bc_pbe_sha256_pkcs12_aes256_cbc.getId(), "PKCS12PBE");
-
- addGMacAlgorithm(provider, "AES", PREFIX + "$AESGMAC", PREFIX + "$KeyGen128");
- addPoly1305Algorithm(provider, "AES", PREFIX + "$Poly1305", PREFIX + "$Poly1305KeyGen");
- }
- }
-
- private static Class lookup(String className)
- {
- try
- {
- Class def = AES.class.getClassLoader().loadClass(className);
-
- return def;
- }
- catch (Exception e)
- {
- return null;
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/ARC4.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/ARC4.java
deleted file mode 100644
index e31ab296..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/ARC4.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.RC4Engine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.PBESecretKeyFactory;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class ARC4
-{
- private ARC4()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new RC4Engine(), 0);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("RC4", 128, new CipherKeyGenerator());
- }
- }
-
- /**
- * PBEWithSHAAnd128BitRC4
- */
- static public class PBEWithSHAAnd128BitKeyFactory
- extends PBESecretKeyFactory
- {
- public PBEWithSHAAnd128BitKeyFactory()
- {
- super("PBEWithSHAAnd128BitRC4", PKCSObjectIdentifiers.pbeWithSHAAnd128BitRC4, true, PKCS12, SHA1, 128, 0);
- }
- }
-
- /**
- * PBEWithSHAAnd40BitRC4
- */
- static public class PBEWithSHAAnd40BitKeyFactory
- extends PBESecretKeyFactory
- {
- public PBEWithSHAAnd40BitKeyFactory()
- {
- super("PBEWithSHAAnd128BitRC4", PKCSObjectIdentifiers.pbeWithSHAAnd128BitRC4, true, PKCS12, SHA1, 40, 0);
- }
- }
-
-
- /**
- * PBEWithSHAAnd128BitRC4
- */
- static public class PBEWithSHAAnd128Bit
- extends BaseStreamCipher
- {
- public PBEWithSHAAnd128Bit()
- {
- super(new RC4Engine(), 0);
- }
- }
-
- /**
- * PBEWithSHAAnd40BitRC4
- */
- static public class PBEWithSHAAnd40Bit
- extends BaseStreamCipher
- {
- public PBEWithSHAAnd40Bit()
- {
- super(new RC4Engine(), 0);
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = ARC4.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.ARC4", PREFIX + "$Base");
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.rc4, "ARC4");
- provider.addAlgorithm("Alg.Alias.Cipher.ARCFOUR", "ARC4");
- provider.addAlgorithm("Alg.Alias.Cipher.RC4", "ARC4");
- provider.addAlgorithm("KeyGenerator.ARC4", PREFIX + "$KeyGen");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.RC4", "ARC4");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.1.2.840.113549.3.4", "ARC4");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND128BITRC4", PREFIX + "$PBEWithSHAAnd128BitKeyFactory");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND40BITRC4", PREFIX + "$PBEWithSHAAnd40BitKeyFactory");
-
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + PKCSObjectIdentifiers.pbeWithSHAAnd128BitRC4, "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + PKCSObjectIdentifiers.pbeWithSHAAnd40BitRC4, "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND40BITRC4", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND128BITRC4", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDRC4", "PKCS12PBE");
- provider.addAlgorithm("Cipher.PBEWITHSHAAND128BITRC4", PREFIX + "$PBEWithSHAAnd128Bit");
- provider.addAlgorithm("Cipher.PBEWITHSHAAND40BITRC4", PREFIX + "$PBEWithSHAAnd40Bit");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.pbeWithSHAAnd128BitRC4, "PBEWITHSHAAND128BITRC4");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.pbeWithSHAAnd40BitRC4, "PBEWITHSHAAND40BITRC4");
-
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND128BITRC4", "PBEWITHSHAAND128BITRC4");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND40BITRC4", "PBEWITHSHAAND40BITRC4");
-
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithSHAAnd128BitRC4, "PBEWITHSHAAND128BITRC4");
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithSHAAnd40BitRC4, "PBEWITHSHAAND40BITRC4");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Blowfish.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Blowfish.java
deleted file mode 100644
index 76949344..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Blowfish.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.BlowfishEngine;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class Blowfish
-{
- private Blowfish()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlowfishEngine());
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new BlowfishEngine()), 64);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Blowfish", 128, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Blowfish IV";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = Blowfish.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.BLOWFISH", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher.1.3.6.1.4.1.3029.1.2", PREFIX + "$CBC");
- provider.addAlgorithm("KeyGenerator.BLOWFISH", PREFIX + "$KeyGen");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.1.3.6.1.4.1.3029.1.2", "BLOWFISH");
- provider.addAlgorithm("AlgorithmParameters.BLOWFISH", PREFIX + "$AlgParams");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.3029.1.2", "BLOWFISH");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/CAST5.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/CAST5.java
deleted file mode 100644
index f360a41f..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/CAST5.java
+++ /dev/null
@@ -1,221 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.io.IOException;
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidParameterSpecException;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.asn1.ASN1InputStream;
-import org.bouncycastle.asn1.misc.CAST5CBCParameters;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.CAST5Engine;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class CAST5
-{
- private CAST5()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new CAST5Engine());
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new CAST5Engine()), 64);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("CAST5", 128, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for CAST5 parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[8];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("CAST5", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class AlgParams
- extends BaseAlgorithmParameters
- {
- private byte[] iv;
- private int keyLength = 128;
-
- protected byte[] engineGetEncoded()
- {
- byte[] tmp = new byte[iv.length];
-
- System.arraycopy(iv, 0, tmp, 0, iv.length);
- return tmp;
- }
-
- protected byte[] engineGetEncoded(
- String format)
- throws IOException
- {
- if (this.isASN1FormatString(format))
- {
- return new CAST5CBCParameters(engineGetEncoded(), keyLength).getEncoded();
- }
-
- if (format.equals("RAW"))
- {
- return engineGetEncoded();
- }
-
-
- return null;
- }
-
- protected AlgorithmParameterSpec localEngineGetParameterSpec(
- Class paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec == IvParameterSpec.class)
- {
- return new IvParameterSpec(iv);
- }
-
- throw new InvalidParameterSpecException("unknown parameter spec passed to CAST5 parameters object.");
- }
-
- protected void engineInit(
- AlgorithmParameterSpec paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec instanceof IvParameterSpec)
- {
- this.iv = ((IvParameterSpec)paramSpec).getIV();
- }
- else
- {
- throw new InvalidParameterSpecException("IvParameterSpec required to initialise a CAST5 parameters algorithm parameters object");
- }
- }
-
- protected void engineInit(
- byte[] params)
- throws IOException
- {
- this.iv = new byte[params.length];
-
- System.arraycopy(params, 0, iv, 0, iv.length);
- }
-
- protected void engineInit(
- byte[] params,
- String format)
- throws IOException
- {
- if (this.isASN1FormatString(format))
- {
- ASN1InputStream aIn = new ASN1InputStream(params);
- CAST5CBCParameters p = CAST5CBCParameters.getInstance(aIn.readObject());
-
- keyLength = p.getKeyLength();
-
- iv = p.getIV();
-
- return;
- }
-
- if (format.equals("RAW"))
- {
- engineInit(params);
- return;
- }
-
- throw new IOException("Unknown parameters format in IV parameters object");
- }
-
- protected String engineToString()
- {
- return "CAST5 Parameters";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = CAST5.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("AlgorithmParameters.CAST5", PREFIX + "$AlgParams");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.1.2.840.113533.7.66.10", "CAST5");
-
- provider.addAlgorithm("AlgorithmParameterGenerator.CAST5", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator.1.2.840.113533.7.66.10", "CAST5");
-
- provider.addAlgorithm("Cipher.CAST5", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher.1.2.840.113533.7.66.10", PREFIX + "$CBC");
-
- provider.addAlgorithm("KeyGenerator.CAST5", PREFIX + "$KeyGen");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.1.2.840.113533.7.66.10", "CAST5");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/CAST6.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/CAST6.java
deleted file mode 100644
index d16e6c76..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/CAST6.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.CAST6Engine;
-import org.bouncycastle.crypto.generators.Poly1305KeyGenerator;
-import org.bouncycastle.crypto.macs.GMac;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-
-public final class CAST6
-{
- private CAST6()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new CAST6Engine();
- }
- });
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("CAST6", 256, new CipherKeyGenerator());
- }
- }
-
- public static class GMAC
- extends BaseMac
- {
- public GMAC()
- {
- super(new GMac(new GCMBlockCipher(new CAST6Engine())));
- }
- }
-
- public static class Poly1305
- extends BaseMac
- {
- public Poly1305()
- {
- super(new org.bouncycastle.crypto.macs.Poly1305(new CAST6Engine()));
- }
- }
-
- public static class Poly1305KeyGen
- extends BaseKeyGenerator
- {
- public Poly1305KeyGen()
- {
- super("Poly1305-CAST6", 256, new Poly1305KeyGenerator());
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = CAST6.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.CAST6", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.CAST6", PREFIX + "$KeyGen");
-
- addGMacAlgorithm(provider, "CAST6", PREFIX + "$GMAC", PREFIX + "$KeyGen");
- addPoly1305Algorithm(provider, "CAST6", PREFIX + "$Poly1305", PREFIX + "$Poly1305KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Camellia.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Camellia.java
deleted file mode 100644
index 95b51567..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Camellia.java
+++ /dev/null
@@ -1,238 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.asn1.ntt.NTTObjectIdentifiers;
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.CamelliaEngine;
-import org.bouncycastle.crypto.engines.CamelliaWrapEngine;
-import org.bouncycastle.crypto.engines.RFC3211WrapEngine;
-import org.bouncycastle.crypto.generators.Poly1305KeyGenerator;
-import org.bouncycastle.crypto.macs.GMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseWrapCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class Camellia
-{
- private Camellia()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new CamelliaEngine();
- }
- });
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new CamelliaEngine()), 128);
- }
- }
-
- public static class Wrap
- extends BaseWrapCipher
- {
- public Wrap()
- {
- super(new CamelliaWrapEngine());
- }
- }
-
- public static class RFC3211Wrap
- extends BaseWrapCipher
- {
- public RFC3211Wrap()
- {
- super(new RFC3211WrapEngine(new CamelliaEngine()), 16);
- }
- }
-
- public static class GMAC
- extends BaseMac
- {
- public GMAC()
- {
- super(new GMac(new GCMBlockCipher(new CamelliaEngine())));
- }
- }
-
- public static class Poly1305
- extends BaseMac
- {
- public Poly1305()
- {
- super(new org.bouncycastle.crypto.macs.Poly1305(new CamelliaEngine()));
- }
- }
-
- public static class Poly1305KeyGen
- extends BaseKeyGenerator
- {
- public Poly1305KeyGen()
- {
- super("Poly1305-Camellia", 256, new Poly1305KeyGenerator());
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- this(256);
- }
-
- public KeyGen(int keySize)
- {
- super("Camellia", keySize, new CipherKeyGenerator());
- }
- }
-
- public static class KeyGen128
- extends KeyGen
- {
- public KeyGen128()
- {
- super(128);
- }
- }
-
- public static class KeyGen192
- extends KeyGen
- {
- public KeyGen192()
- {
- super(192);
- }
- }
-
- public static class KeyGen256
- extends KeyGen
- {
- public KeyGen256()
- {
- super(256);
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for Camellia parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[16];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("Camellia", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Camellia IV";
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = Camellia.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("AlgorithmParameters.CAMELLIA", PREFIX + "$AlgParams");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NTTObjectIdentifiers.id_camellia128_cbc, "CAMELLIA");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NTTObjectIdentifiers.id_camellia192_cbc, "CAMELLIA");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + NTTObjectIdentifiers.id_camellia256_cbc, "CAMELLIA");
-
- provider.addAlgorithm("AlgorithmParameterGenerator.CAMELLIA", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + NTTObjectIdentifiers.id_camellia128_cbc, "CAMELLIA");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + NTTObjectIdentifiers.id_camellia192_cbc, "CAMELLIA");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + NTTObjectIdentifiers.id_camellia256_cbc, "CAMELLIA");
-
- provider.addAlgorithm("Cipher.CAMELLIA", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher." + NTTObjectIdentifiers.id_camellia128_cbc, PREFIX + "$CBC");
- provider.addAlgorithm("Cipher." + NTTObjectIdentifiers.id_camellia192_cbc, PREFIX + "$CBC");
- provider.addAlgorithm("Cipher." + NTTObjectIdentifiers.id_camellia256_cbc, PREFIX + "$CBC");
-
- provider.addAlgorithm("Cipher.CAMELLIARFC3211WRAP", PREFIX + "$RFC3211Wrap");
- provider.addAlgorithm("Cipher.CAMELLIAWRAP", PREFIX + "$Wrap");
- provider.addAlgorithm("Alg.Alias.Cipher." + NTTObjectIdentifiers.id_camellia128_wrap, "CAMELLIAWRAP");
- provider.addAlgorithm("Alg.Alias.Cipher." + NTTObjectIdentifiers.id_camellia192_wrap, "CAMELLIAWRAP");
- provider.addAlgorithm("Alg.Alias.Cipher." + NTTObjectIdentifiers.id_camellia256_wrap, "CAMELLIAWRAP");
-
- provider.addAlgorithm("KeyGenerator.CAMELLIA", PREFIX + "$KeyGen");
- provider.addAlgorithm("KeyGenerator." + NTTObjectIdentifiers.id_camellia128_wrap, PREFIX + "$KeyGen128");
- provider.addAlgorithm("KeyGenerator." + NTTObjectIdentifiers.id_camellia192_wrap, PREFIX + "$KeyGen192");
- provider.addAlgorithm("KeyGenerator." + NTTObjectIdentifiers.id_camellia256_wrap, PREFIX + "$KeyGen256");
- provider.addAlgorithm("KeyGenerator." + NTTObjectIdentifiers.id_camellia128_cbc, PREFIX + "$KeyGen128");
- provider.addAlgorithm("KeyGenerator." + NTTObjectIdentifiers.id_camellia192_cbc, PREFIX + "$KeyGen192");
- provider.addAlgorithm("KeyGenerator." + NTTObjectIdentifiers.id_camellia256_cbc, PREFIX + "$KeyGen256");
-
- addGMacAlgorithm(provider, "CAMELLIA", PREFIX + "$GMAC", PREFIX + "$KeyGen");
- addPoly1305Algorithm(provider, "CAMELLIA", PREFIX + "$Poly1305", PREFIX + "$Poly1305KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/ChaCha.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/ChaCha.java
deleted file mode 100644
index ff748ae4..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/ChaCha.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.ChaChaEngine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class ChaCha
-{
- private ChaCha()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new ChaChaEngine(), 8);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("ChaCha", 128, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = ChaCha.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.CHACHA", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.CHACHA", PREFIX + "$KeyGen");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/DES.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/DES.java
deleted file mode 100644
index f3411950..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/DES.java
+++ /dev/null
@@ -1,505 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.KeySpec;
-
-import javax.crypto.SecretKey;
-import javax.crypto.spec.DESKeySpec;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.PBEKeySpec;
-import javax.crypto.spec.SecretKeySpec;
-
-import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers;
-import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.KeyGenerationParameters;
-import org.bouncycastle.crypto.engines.DESEngine;
-import org.bouncycastle.crypto.engines.RFC3211WrapEngine;
-import org.bouncycastle.crypto.generators.DESKeyGenerator;
-import org.bouncycastle.crypto.macs.CBCBlockCipherMac;
-import org.bouncycastle.crypto.macs.CFBBlockCipherMac;
-import org.bouncycastle.crypto.macs.CMac;
-import org.bouncycastle.crypto.macs.ISO9797Alg3Mac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.paddings.ISO7816d4Padding;
-import org.bouncycastle.crypto.params.DESParameters;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.ParametersWithIV;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BCPBEKey;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseSecretKeyFactory;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseWrapCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.PBE;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class DES
-{
- private DES()
- {
- }
-
- static public class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new DESEngine());
- }
- }
-
- static public class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new DESEngine()), 64);
- }
- }
-
- /**
- * DES CFB8
- */
- public static class DESCFB8
- extends BaseMac
- {
- public DESCFB8()
- {
- super(new CFBBlockCipherMac(new DESEngine()));
- }
- }
-
- /**
- * DES64
- */
- public static class DES64
- extends BaseMac
- {
- public DES64()
- {
- super(new CBCBlockCipherMac(new DESEngine(), 64));
- }
- }
-
- /**
- * DES64with7816-4Padding
- */
- public static class DES64with7816d4
- extends BaseMac
- {
- public DES64with7816d4()
- {
- super(new CBCBlockCipherMac(new DESEngine(), 64, new ISO7816d4Padding()));
- }
- }
-
- public static class CBCMAC
- extends BaseMac
- {
- public CBCMAC()
- {
- super(new CBCBlockCipherMac(new DESEngine()));
- }
- }
-
- static public class CMAC
- extends BaseMac
- {
- public CMAC()
- {
- super(new CMac(new DESEngine()));
- }
- }
-
- /**
- * DES9797Alg3with7816-4Padding
- */
- public static class DES9797Alg3with7816d4
- extends BaseMac
- {
- public DES9797Alg3with7816d4()
- {
- super(new ISO9797Alg3Mac(new DESEngine(), new ISO7816d4Padding()));
- }
- }
-
- /**
- * DES9797Alg3
- */
- public static class DES9797Alg3
- extends BaseMac
- {
- public DES9797Alg3()
- {
- super(new ISO9797Alg3Mac(new DESEngine()));
- }
- }
-
- public static class RFC3211
- extends BaseWrapCipher
- {
- public RFC3211()
- {
- super(new RFC3211WrapEngine(new DESEngine()), 8);
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for DES parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[8];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("DES", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- /**
- * DES - the default for this is to generate a key in
- * a-b-a format that's 24 bytes long but has 16 bytes of
- * key material (the first 8 bytes is repeated as the last
- * 8 bytes). If you give it a size, you'll get just what you
- * asked for.
- */
- public static class KeyGenerator
- extends BaseKeyGenerator
- {
- public KeyGenerator()
- {
- super("DES", 64, new DESKeyGenerator());
- }
-
- protected void engineInit(
- int keySize,
- SecureRandom random)
- {
- super.engineInit(keySize, random);
- }
-
- protected SecretKey engineGenerateKey()
- {
- if (uninitialised)
- {
- engine.init(new KeyGenerationParameters(new SecureRandom(), defaultKeySize));
- uninitialised = false;
- }
-
- return new SecretKeySpec(engine.generateKey(), algName);
- }
- }
-
- static public class KeyFactory
- extends BaseSecretKeyFactory
- {
- public KeyFactory()
- {
- super("DES", null);
- }
-
- protected KeySpec engineGetKeySpec(
- SecretKey key,
- Class keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec == null)
- {
- throw new InvalidKeySpecException("keySpec parameter is null");
- }
- if (key == null)
- {
- throw new InvalidKeySpecException("key parameter is null");
- }
-
- if (SecretKeySpec.class.isAssignableFrom(keySpec))
- {
- return new SecretKeySpec(key.getEncoded(), algName);
- }
- else if (DESKeySpec.class.isAssignableFrom(keySpec))
- {
- byte[] bytes = key.getEncoded();
-
- try
- {
- return new DESKeySpec(bytes);
- }
- catch (Exception e)
- {
- throw new InvalidKeySpecException(e.toString());
- }
- }
-
- throw new InvalidKeySpecException("Invalid KeySpec");
- }
-
- protected SecretKey engineGenerateSecret(
- KeySpec keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec instanceof DESKeySpec)
- {
- DESKeySpec desKeySpec = (DESKeySpec)keySpec;
- return new SecretKeySpec(desKeySpec.getKey(), "DES");
- }
-
- return super.engineGenerateSecret(keySpec);
- }
- }
-
- static public class DESPBEKeyFactory
- extends BaseSecretKeyFactory
- {
- private boolean forCipher;
- private int scheme;
- private int digest;
- private int keySize;
- private int ivSize;
-
- public DESPBEKeyFactory(
- String algorithm,
- ASN1ObjectIdentifier oid,
- boolean forCipher,
- int scheme,
- int digest,
- int keySize,
- int ivSize)
- {
- super(algorithm, oid);
-
- this.forCipher = forCipher;
- this.scheme = scheme;
- this.digest = digest;
- this.keySize = keySize;
- this.ivSize = ivSize;
- }
-
- protected SecretKey engineGenerateSecret(
- KeySpec keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec instanceof PBEKeySpec)
- {
- PBEKeySpec pbeSpec = (PBEKeySpec)keySpec;
- CipherParameters param;
-
- if (pbeSpec.getSalt() == null)
- {
- return new BCPBEKey(this.algName, this.algOid, scheme, digest, keySize, ivSize, pbeSpec, null);
- }
-
- if (forCipher)
- {
- param = PBE.Util.makePBEParameters(pbeSpec, scheme, digest, keySize, ivSize);
- }
- else
- {
- param = PBE.Util.makePBEMacParameters(pbeSpec, scheme, digest, keySize);
- }
-
- KeyParameter kParam;
- if (param instanceof ParametersWithIV)
- {
- kParam = (KeyParameter)((ParametersWithIV)param).getParameters();
- }
- else
- {
- kParam = (KeyParameter)param;
- }
-
- DESParameters.setOddParity(kParam.getKey());
-
- return new BCPBEKey(this.algName, this.algOid, scheme, digest, keySize, ivSize, pbeSpec, param);
- }
-
- throw new InvalidKeySpecException("Invalid KeySpec");
- }
- }
-
- /**
- * PBEWithMD2AndDES
- */
- static public class PBEWithMD2KeyFactory
- extends DESPBEKeyFactory
- {
- public PBEWithMD2KeyFactory()
- {
- super("PBEwithMD2andDES", PKCSObjectIdentifiers.pbeWithMD2AndDES_CBC, true, PKCS5S1, MD2, 64, 64);
- }
- }
-
- /**
- * PBEWithMD5AndDES
- */
- static public class PBEWithMD5KeyFactory
- extends DESPBEKeyFactory
- {
- public PBEWithMD5KeyFactory()
- {
- super("PBEwithMD5andDES", PKCSObjectIdentifiers.pbeWithMD5AndDES_CBC, true, PKCS5S1, MD5, 64, 64);
- }
- }
-
- /**
- * PBEWithSHA1AndDES
- */
- static public class PBEWithSHA1KeyFactory
- extends DESPBEKeyFactory
- {
- public PBEWithSHA1KeyFactory()
- {
- super("PBEwithSHA1andDES", PKCSObjectIdentifiers.pbeWithSHA1AndDES_CBC, true, PKCS5S1, SHA1, 64, 64);
- }
- }
-
- /**
- * PBEWithMD2AndDES
- */
- static public class PBEWithMD2
- extends BaseBlockCipher
- {
- public PBEWithMD2()
- {
- super(new CBCBlockCipher(new DESEngine()));
- }
- }
-
- /**
- * PBEWithMD5AndDES
- */
- static public class PBEWithMD5
- extends BaseBlockCipher
- {
- public PBEWithMD5()
- {
- super(new CBCBlockCipher(new DESEngine()));
- }
- }
-
- /**
- * PBEWithSHA1AndDES
- */
- static public class PBEWithSHA1
- extends BaseBlockCipher
- {
- public PBEWithSHA1()
- {
- super(new CBCBlockCipher(new DESEngine()));
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = DES.class.getName();
- private static final String PACKAGE = "org.bouncycastle.jcajce.provider.symmetric"; // JDK 1.2
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.DES", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher." + OIWObjectIdentifiers.desCBC, PREFIX + "$CBC");
-
- addAlias(provider, OIWObjectIdentifiers.desCBC, "DES");
-
- provider.addAlgorithm("Cipher.DESRFC3211WRAP", PREFIX + "$RFC3211");
-
- provider.addAlgorithm("KeyGenerator.DES", PREFIX + "$KeyGenerator");
-
- provider.addAlgorithm("SecretKeyFactory.DES", PREFIX + "$KeyFactory");
-
- provider.addAlgorithm("Mac.DESCMAC", PREFIX + "$CMAC");
- provider.addAlgorithm("Mac.DESMAC", PREFIX + "$CBCMAC");
- provider.addAlgorithm("Alg.Alias.Mac.DES", "DESMAC");
-
- provider.addAlgorithm("Mac.DESMAC/CFB8", PREFIX + "$DESCFB8");
- provider.addAlgorithm("Alg.Alias.Mac.DES/CFB8", "DESMAC/CFB8");
-
- provider.addAlgorithm("Mac.DESMAC64", PREFIX + "$DES64");
- provider.addAlgorithm("Alg.Alias.Mac.DES64", "DESMAC64");
-
- provider.addAlgorithm("Mac.DESMAC64WITHISO7816-4PADDING", PREFIX + "$DES64with7816d4");
- provider.addAlgorithm("Alg.Alias.Mac.DES64WITHISO7816-4PADDING", "DESMAC64WITHISO7816-4PADDING");
- provider.addAlgorithm("Alg.Alias.Mac.DESISO9797ALG1MACWITHISO7816-4PADDING", "DESMAC64WITHISO7816-4PADDING");
- provider.addAlgorithm("Alg.Alias.Mac.DESISO9797ALG1WITHISO7816-4PADDING", "DESMAC64WITHISO7816-4PADDING");
-
- provider.addAlgorithm("Mac.DESWITHISO9797", PREFIX + "$DES9797Alg3");
- provider.addAlgorithm("Alg.Alias.Mac.DESISO9797MAC", "DESWITHISO9797");
-
- provider.addAlgorithm("Mac.ISO9797ALG3MAC", PREFIX + "$DES9797Alg3");
- provider.addAlgorithm("Alg.Alias.Mac.ISO9797ALG3", "ISO9797ALG3MAC");
- provider.addAlgorithm("Mac.ISO9797ALG3WITHISO7816-4PADDING", PREFIX + "$DES9797Alg3with7816d4");
- provider.addAlgorithm("Alg.Alias.Mac.ISO9797ALG3MACWITHISO7816-4PADDING", "ISO9797ALG3WITHISO7816-4PADDING");
-
- provider.addAlgorithm("AlgorithmParameters.DES", PACKAGE + ".util.IvAlgorithmParameters");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + OIWObjectIdentifiers.desCBC, "DES");
-
- provider.addAlgorithm("AlgorithmParameterGenerator.DES", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + OIWObjectIdentifiers.desCBC, "DES");
-
- provider.addAlgorithm("Cipher.PBEWITHMD2ANDDES", PREFIX + "$PBEWithMD2");
- provider.addAlgorithm("Cipher.PBEWITHMD5ANDDES", PREFIX + "$PBEWithMD5");
- provider.addAlgorithm("Cipher.PBEWITHSHA1ANDDES", PREFIX + "$PBEWithSHA1");
-
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithMD2AndDES_CBC, "PBEWITHMD2ANDDES");
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithMD5AndDES_CBC, "PBEWITHMD5ANDDES");
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithSHA1AndDES_CBC, "PBEWITHSHA1ANDDES");
-
- provider.addAlgorithm("SecretKeyFactory.PBEWITHMD2ANDDES", PREFIX + "$PBEWithMD2KeyFactory");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHMD5ANDDES", PREFIX + "$PBEWithMD5KeyFactory");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHA1ANDDES", PREFIX + "$PBEWithSHA1KeyFactory");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHMD2ANDDES-CBC", "PBEWITHMD2ANDDES");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHMD5ANDDES-CBC", "PBEWITHMD5ANDDES");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA1ANDDES-CBC", "PBEWITHSHA1ANDDES");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.pbeWithMD2AndDES_CBC, "PBEWITHMD2ANDDES");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.pbeWithMD5AndDES_CBC, "PBEWITHMD5ANDDES");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.pbeWithSHA1AndDES_CBC, "PBEWITHSHA1ANDDES");
- }
-
- private void addAlias(ConfigurableProvider provider, ASN1ObjectIdentifier oid, String name)
- {
- provider.addAlgorithm("Alg.Alias.KeyGenerator." + oid.getId(), name);
- provider.addAlgorithm("Alg.Alias.KeyFactory." + oid.getId(), name);
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/DESede.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/DESede.java
deleted file mode 100644
index 0f53e504..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/DESede.java
+++ /dev/null
@@ -1,435 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.KeySpec;
-
-import javax.crypto.SecretKey;
-import javax.crypto.spec.DESedeKeySpec;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-
-import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
-import org.bouncycastle.crypto.KeyGenerationParameters;
-import org.bouncycastle.crypto.engines.DESedeEngine;
-import org.bouncycastle.crypto.engines.DESedeWrapEngine;
-import org.bouncycastle.crypto.engines.RFC3211WrapEngine;
-import org.bouncycastle.crypto.generators.DESedeKeyGenerator;
-import org.bouncycastle.crypto.macs.CBCBlockCipherMac;
-import org.bouncycastle.crypto.macs.CFBBlockCipherMac;
-import org.bouncycastle.crypto.macs.CMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.paddings.ISO7816d4Padding;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseSecretKeyFactory;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseWrapCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class DESede
-{
- private DESede()
- {
- }
-
- static public class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new DESedeEngine());
- }
- }
-
- static public class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new DESedeEngine()), 64);
- }
- }
-
- /**
- * DESede CFB8
- */
- public static class DESedeCFB8
- extends BaseMac
- {
- public DESedeCFB8()
- {
- super(new CFBBlockCipherMac(new DESedeEngine()));
- }
- }
-
- /**
- * DESede64
- */
- public static class DESede64
- extends BaseMac
- {
- public DESede64()
- {
- super(new CBCBlockCipherMac(new DESedeEngine(), 64));
- }
- }
-
- /**
- * DESede64with7816-4Padding
- */
- public static class DESede64with7816d4
- extends BaseMac
- {
- public DESede64with7816d4()
- {
- super(new CBCBlockCipherMac(new DESedeEngine(), 64, new ISO7816d4Padding()));
- }
- }
-
- public static class CBCMAC
- extends BaseMac
- {
- public CBCMAC()
- {
- super(new CBCBlockCipherMac(new DESedeEngine()));
- }
- }
-
- static public class CMAC
- extends BaseMac
- {
- public CMAC()
- {
- super(new CMac(new DESedeEngine()));
- }
- }
-
- public static class Wrap
- extends BaseWrapCipher
- {
- public Wrap()
- {
- super(new DESedeWrapEngine());
- }
- }
-
- public static class RFC3211
- extends BaseWrapCipher
- {
- public RFC3211()
- {
- super(new RFC3211WrapEngine(new DESedeEngine()), 8);
- }
- }
-
- /**
- * DESede - the default for this is to generate a key in
- * a-b-a format that's 24 bytes long but has 16 bytes of
- * key material (the first 8 bytes is repeated as the last
- * 8 bytes). If you give it a size, you'll get just what you
- * asked for.
- */
- public static class KeyGenerator
- extends BaseKeyGenerator
- {
- private boolean keySizeSet = false;
-
- public KeyGenerator()
- {
- super("DESede", 192, new DESedeKeyGenerator());
- }
-
- protected void engineInit(
- int keySize,
- SecureRandom random)
- {
- super.engineInit(keySize, random);
- keySizeSet = true;
- }
-
- protected SecretKey engineGenerateKey()
- {
- if (uninitialised)
- {
- engine.init(new KeyGenerationParameters(new SecureRandom(), defaultKeySize));
- uninitialised = false;
- }
-
- //
- // if no key size has been defined generate a 24 byte key in
- // the a-b-a format
- //
- if (!keySizeSet)
- {
- byte[] k = engine.generateKey();
-
- System.arraycopy(k, 0, k, 16, 8);
-
- return new SecretKeySpec(k, algName);
- }
- else
- {
- return new SecretKeySpec(engine.generateKey(), algName);
- }
- }
- }
-
- /**
- * generate a desEDE key in the a-b-c format.
- */
- public static class KeyGenerator3
- extends BaseKeyGenerator
- {
- public KeyGenerator3()
- {
- super("DESede3", 192, new DESedeKeyGenerator());
- }
- }
-
- /**
- * PBEWithSHAAnd3-KeyTripleDES-CBC
- */
- static public class PBEWithSHAAndDES3Key
- extends BaseBlockCipher
- {
- public PBEWithSHAAndDES3Key()
- {
- super(new CBCBlockCipher(new DESedeEngine()));
- }
- }
-
- /**
- * PBEWithSHAAnd2-KeyTripleDES-CBC
- */
- static public class PBEWithSHAAndDES2Key
- extends BaseBlockCipher
- {
- public PBEWithSHAAndDES2Key()
- {
- super(new CBCBlockCipher(new DESedeEngine()));
- }
- }
-
- /**
- * PBEWithSHAAnd3-KeyTripleDES-CBC
- */
- static public class PBEWithSHAAndDES3KeyFactory
- extends DES.DESPBEKeyFactory
- {
- public PBEWithSHAAndDES3KeyFactory()
- {
- super("PBEwithSHAandDES3Key-CBC", PKCSObjectIdentifiers.pbeWithSHAAnd3_KeyTripleDES_CBC, true, PKCS12, SHA1, 192, 64);
- }
- }
-
- /**
- * PBEWithSHAAnd2-KeyTripleDES-CBC
- */
- static public class PBEWithSHAAndDES2KeyFactory
- extends DES.DESPBEKeyFactory
- {
- public PBEWithSHAAndDES2KeyFactory()
- {
- super("PBEwithSHAandDES2Key-CBC", PKCSObjectIdentifiers.pbeWithSHAAnd2_KeyTripleDES_CBC, true, PKCS12, SHA1, 128, 64);
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for DES parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[8];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("DES", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- static public class KeyFactory
- extends BaseSecretKeyFactory
- {
- public KeyFactory()
- {
- super("DESede", null);
- }
-
- protected KeySpec engineGetKeySpec(
- SecretKey key,
- Class keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec == null)
- {
- throw new InvalidKeySpecException("keySpec parameter is null");
- }
- if (key == null)
- {
- throw new InvalidKeySpecException("key parameter is null");
- }
-
- if (SecretKeySpec.class.isAssignableFrom(keySpec))
- {
- return new SecretKeySpec(key.getEncoded(), algName);
- }
- else if (DESedeKeySpec.class.isAssignableFrom(keySpec))
- {
- byte[] bytes = key.getEncoded();
-
- try
- {
- if (bytes.length == 16)
- {
- byte[] longKey = new byte[24];
-
- System.arraycopy(bytes, 0, longKey, 0, 16);
- System.arraycopy(bytes, 0, longKey, 16, 8);
-
- return new DESedeKeySpec(longKey);
- }
- else
- {
- return new DESedeKeySpec(bytes);
- }
- }
- catch (Exception e)
- {
- throw new InvalidKeySpecException(e.toString());
- }
- }
-
- throw new InvalidKeySpecException("Invalid KeySpec");
- }
-
- protected SecretKey engineGenerateSecret(
- KeySpec keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec instanceof DESedeKeySpec)
- {
- DESedeKeySpec desKeySpec = (DESedeKeySpec)keySpec;
- return new SecretKeySpec(desKeySpec.getKey(), "DESede");
- }
-
- return super.engineGenerateSecret(keySpec);
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = DESede.class.getName();
- private static final String PACKAGE = "org.bouncycastle.jcajce.provider.symmetric"; // JDK 1.2
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.DESEDE", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher." + PKCSObjectIdentifiers.des_EDE3_CBC, PREFIX + "$CBC");
- provider.addAlgorithm("Cipher.DESEDEWRAP", PREFIX + "$Wrap");
- provider.addAlgorithm("Cipher." + PKCSObjectIdentifiers.id_alg_CMS3DESwrap, PREFIX + "$Wrap");
- provider.addAlgorithm("Cipher.DESEDERFC3211WRAP", PREFIX + "$RFC3211");
-
- provider.addAlgorithm("Alg.Alias.Cipher.TDEA", "DESEDE");
- provider.addAlgorithm("Alg.Alias.Cipher.TDEAWRAP", "DESEDEWRAP");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.TDEA", "DESEDE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.TDEA", "DESEDE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator.TDEA", "DESEDE");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.TDEA", "DESEDE");
-
- if (provider.hasAlgorithm("MessageDigest", "SHA-1"))
- {
- provider.addAlgorithm("Cipher.PBEWITHSHAAND3-KEYTRIPLEDES-CBC", PREFIX + "$PBEWithSHAAndDES3Key");
- provider.addAlgorithm("Cipher.BROKENPBEWITHSHAAND3-KEYTRIPLEDES-CBC", PREFIX + "$BrokePBEWithSHAAndDES3Key");
- provider.addAlgorithm("Cipher.OLDPBEWITHSHAAND3-KEYTRIPLEDES-CBC", PREFIX + "$OldPBEWithSHAAndDES3Key");
- provider.addAlgorithm("Cipher.PBEWITHSHAAND2-KEYTRIPLEDES-CBC", PREFIX + "$PBEWithSHAAndDES2Key");
- provider.addAlgorithm("Cipher.BROKENPBEWITHSHAAND2-KEYTRIPLEDES-CBC", PREFIX + "$BrokePBEWithSHAAndDES2Key");
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithSHAAnd3_KeyTripleDES_CBC, "PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithSHAAnd2_KeyTripleDES_CBC, "PBEWITHSHAAND2-KEYTRIPLEDES-CBC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1ANDDESEDE", "PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND3-KEYTRIPLEDES-CBC", "PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND2-KEYTRIPLEDES-CBC", "PBEWITHSHAAND2-KEYTRIPLEDES-CBC");
- }
-
- provider.addAlgorithm("KeyGenerator.DESEDE", PREFIX + "$KeyGenerator");
- provider.addAlgorithm("KeyGenerator." + PKCSObjectIdentifiers.des_EDE3_CBC, PREFIX + "$KeyGenerator3");
- provider.addAlgorithm("KeyGenerator.DESEDEWRAP", PREFIX + "$KeyGenerator");
-
- provider.addAlgorithm("SecretKeyFactory.DESEDE", PREFIX + "$KeyFactory");
-
- provider.addAlgorithm("Mac.DESEDECMAC", PREFIX + "$CMAC");
- provider.addAlgorithm("Mac.DESEDEMAC", PREFIX + "$CBCMAC");
- provider.addAlgorithm("Alg.Alias.Mac.DESEDE", "DESEDEMAC");
-
- provider.addAlgorithm("Mac.DESEDEMAC/CFB8", PREFIX + "$DESedeCFB8");
- provider.addAlgorithm("Alg.Alias.Mac.DESEDE/CFB8", "DESEDEMAC/CFB8");
-
- provider.addAlgorithm("Mac.DESEDEMAC64", PREFIX + "$DESede64");
- provider.addAlgorithm("Alg.Alias.Mac.DESEDE64", "DESEDEMAC64");
-
- provider.addAlgorithm("Mac.DESEDEMAC64WITHISO7816-4PADDING", PREFIX + "$DESede64with7816d4");
- provider.addAlgorithm("Alg.Alias.Mac.DESEDE64WITHISO7816-4PADDING", "DESEDEMAC64WITHISO7816-4PADDING");
- provider.addAlgorithm("Alg.Alias.Mac.DESEDEISO9797ALG1MACWITHISO7816-4PADDING", "DESEDEMAC64WITHISO7816-4PADDING");
- provider.addAlgorithm("Alg.Alias.Mac.DESEDEISO9797ALG1WITHISO7816-4PADDING", "DESEDEMAC64WITHISO7816-4PADDING");
-
- provider.addAlgorithm("AlgorithmParameters.DESEDE", PACKAGE + ".util.IvAlgorithmParameters");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + PKCSObjectIdentifiers.des_EDE3_CBC, "DESEDE");
-
- provider.addAlgorithm("AlgorithmParameterGenerator.DESEDE", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + PKCSObjectIdentifiers.des_EDE3_CBC, "DESEDE");
-
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND3-KEYTRIPLEDES-CBC", PREFIX + "$PBEWithSHAAndDES3KeyFactory");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND2-KEYTRIPLEDES-CBC", PREFIX + "$PBEWithSHAAndDES2KeyFactory");
-
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND3-KEYTRIPLEDES", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND2-KEYTRIPLEDES", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND3-KEYTRIPLEDES-CBC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND2-KEYTRIPLEDES-CBC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDDES3KEY-CBC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDDES2KEY-CBC", "PKCS12PBE");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.3", "PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.4", "PBEWITHSHAAND2-KEYTRIPLEDES-CBC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWithSHAAnd3KeyTripleDES", "PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.3", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.4", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWithSHAAnd3KeyTripleDES", "PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/GOST28147.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/GOST28147.java
deleted file mode 100644
index fcaea941..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/GOST28147.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers;
-import org.bouncycastle.crypto.BufferedBlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.GOST28147Engine;
-import org.bouncycastle.crypto.macs.GOST28147Mac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.modes.GCFBBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class GOST28147
-{
- private GOST28147()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new GOST28147Engine());
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new GOST28147Engine()), 64);
- }
- }
-
- public static class GCFB
- extends BaseBlockCipher
- {
- public GCFB()
- {
- super(new BufferedBlockCipher(new GCFBBlockCipher(new GOST28147Engine())), 64);
- }
- }
-
- /**
- * GOST28147
- */
- public static class Mac
- extends BaseMac
- {
- public Mac()
- {
- super(new GOST28147Mac());
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- this(256);
- }
-
- public KeyGen(int keySize)
- {
- super("GOST28147", keySize, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for GOST28147 parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[16];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("GOST28147", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "GOST IV";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = GOST28147.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.GOST28147", PREFIX + "$ECB");
- provider.addAlgorithm("Alg.Alias.Cipher.GOST", "GOST28147");
- provider.addAlgorithm("Alg.Alias.Cipher.GOST-28147", "GOST28147");
- provider.addAlgorithm("Cipher." + CryptoProObjectIdentifiers.gostR28147_gcfb, PREFIX + "$GCFB");
-
- provider.addAlgorithm("KeyGenerator.GOST28147", PREFIX + "$KeyGen");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.GOST", "GOST28147");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.GOST-28147", "GOST28147");
- provider.addAlgorithm("Alg.Alias.KeyGenerator." + CryptoProObjectIdentifiers.gostR28147_gcfb, "GOST28147");
-
- provider.addAlgorithm("Mac.GOST28147MAC", PREFIX + "$Mac");
- provider.addAlgorithm("Alg.Alias.Mac.GOST28147", "GOST28147MAC");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Grain128.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Grain128.java
deleted file mode 100644
index d7232b11..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Grain128.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.Grain128Engine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class Grain128
-{
- private Grain128()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new Grain128Engine(), 12);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Grain128", 128, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = Grain128.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.Grain128", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.Grain128", PREFIX + "$KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Grainv1.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Grainv1.java
deleted file mode 100644
index fce224d2..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Grainv1.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.Grainv1Engine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class Grainv1
-{
- private Grainv1()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new Grainv1Engine(), 8);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Grainv1", 80, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = Grainv1.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.Grainv1", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.Grainv1", PREFIX + "$KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/HC128.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/HC128.java
deleted file mode 100644
index efe7ede1..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/HC128.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.HC128Engine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class HC128
-{
- private HC128()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new HC128Engine(), 16);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("HC128", 128, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = HC128.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.HC128", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.HC128", PREFIX + "$KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/HC256.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/HC256.java
deleted file mode 100644
index dd93445b..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/HC256.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.HC256Engine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class HC256
-{
- private HC256()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new HC256Engine(), 32);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("HC256", 256, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = HC256.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.HC256", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.HC256", PREFIX + "$KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/IDEA.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/IDEA.java
deleted file mode 100644
index 4248eb8d..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/IDEA.java
+++ /dev/null
@@ -1,258 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.io.IOException;
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidParameterSpecException;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.asn1.ASN1InputStream;
-import org.bouncycastle.asn1.ASN1Sequence;
-import org.bouncycastle.asn1.misc.IDEACBCPar;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.IDEAEngine;
-import org.bouncycastle.crypto.macs.CBCBlockCipherMac;
-import org.bouncycastle.crypto.macs.CFBBlockCipherMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.PBESecretKeyFactory;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class IDEA
-{
- private IDEA()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new IDEAEngine());
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new IDEAEngine()), 64);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("IDEA", 128, new CipherKeyGenerator());
- }
- }
-
- public static class PBEWithSHAAndIDEAKeyGen
- extends PBESecretKeyFactory
- {
- public PBEWithSHAAndIDEAKeyGen()
- {
- super("PBEwithSHAandIDEA-CBC", null, true, PKCS12, SHA1, 128, 64);
- }
- }
-
- static public class PBEWithSHAAndIDEA
- extends BaseBlockCipher
- {
- public PBEWithSHAAndIDEA()
- {
- super(new CBCBlockCipher(new IDEAEngine()));
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for IDEA parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[8];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("IDEA", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class AlgParams
- extends BaseAlgorithmParameters
- {
- private byte[] iv;
-
- protected byte[] engineGetEncoded()
- throws IOException
- {
- return engineGetEncoded("ASN.1");
- }
-
- protected byte[] engineGetEncoded(
- String format)
- throws IOException
- {
- if (this.isASN1FormatString(format))
- {
- return new IDEACBCPar(engineGetEncoded("RAW")).getEncoded();
- }
-
- if (format.equals("RAW"))
- {
- byte[] tmp = new byte[iv.length];
-
- System.arraycopy(iv, 0, tmp, 0, iv.length);
- return tmp;
- }
-
- return null;
- }
-
- protected AlgorithmParameterSpec localEngineGetParameterSpec(
- Class paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec == IvParameterSpec.class)
- {
- return new IvParameterSpec(iv);
- }
-
- throw new InvalidParameterSpecException("unknown parameter spec passed to IV parameters object.");
- }
-
- protected void engineInit(
- AlgorithmParameterSpec paramSpec)
- throws InvalidParameterSpecException
- {
- if (!(paramSpec instanceof IvParameterSpec))
- {
- throw new InvalidParameterSpecException("IvParameterSpec required to initialise a IV parameters algorithm parameters object");
- }
-
- this.iv = ((IvParameterSpec)paramSpec).getIV();
- }
-
- protected void engineInit(
- byte[] params)
- throws IOException
- {
- this.iv = new byte[params.length];
-
- System.arraycopy(params, 0, iv, 0, iv.length);
- }
-
- protected void engineInit(
- byte[] params,
- String format)
- throws IOException
- {
- if (format.equals("RAW"))
- {
- engineInit(params);
- return;
- }
- if (format.equals("ASN.1"))
- {
- ASN1InputStream aIn = new ASN1InputStream(params);
- IDEACBCPar oct = new IDEACBCPar((ASN1Sequence)aIn.readObject());
-
- engineInit(oct.getIV());
- return;
- }
-
- throw new IOException("Unknown parameters format in IV parameters object");
- }
-
- protected String engineToString()
- {
- return "IDEA Parameters";
- }
- }
-
- public static class Mac
- extends BaseMac
- {
- public Mac()
- {
- super(new CBCBlockCipherMac(new IDEAEngine()));
- }
- }
-
- public static class CFB8Mac
- extends BaseMac
- {
- public CFB8Mac()
- {
- super(new CFBBlockCipherMac(new IDEAEngine()));
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = IDEA.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("AlgorithmParameterGenerator.IDEA", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("AlgorithmParameterGenerator.1.3.6.1.4.1.188.7.1.1.2", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("AlgorithmParameters.IDEA", PREFIX + "$AlgParams");
- provider.addAlgorithm("AlgorithmParameters.1.3.6.1.4.1.188.7.1.1.2", PREFIX + "$AlgParams");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDIDEA", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDIDEA-CBC", "PKCS12PBE");
- provider.addAlgorithm("Cipher.IDEA", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher.1.3.6.1.4.1.188.7.1.1.2", PREFIX + "$CBC");
- provider.addAlgorithm("Cipher.PBEWITHSHAANDIDEA-CBC", PREFIX + "$PBEWithSHAAndIDEA");
- provider.addAlgorithm("KeyGenerator.IDEA", PREFIX + "$KeyGen");
- provider.addAlgorithm("KeyGenerator.1.3.6.1.4.1.188.7.1.1.2", PREFIX + "$KeyGen");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAANDIDEA-CBC", PREFIX + "$PBEWithSHAAndIDEAKeyGen");
- provider.addAlgorithm("Mac.IDEAMAC", PREFIX + "$Mac");
- provider.addAlgorithm("Alg.Alias.Mac.IDEA", "IDEAMAC");
- provider.addAlgorithm("Mac.IDEAMAC/CFB8", PREFIX + "$CFB8Mac");
- provider.addAlgorithm("Alg.Alias.Mac.IDEA/CFB8", "IDEAMAC/CFB8");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Noekeon.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Noekeon.java
deleted file mode 100644
index a92f21dd..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Noekeon.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.NoekeonEngine;
-import org.bouncycastle.crypto.generators.Poly1305KeyGenerator;
-import org.bouncycastle.crypto.macs.GMac;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class Noekeon
-{
- private Noekeon()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new NoekeonEngine();
- }
- });
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Noekeon", 128, new CipherKeyGenerator());
- }
- }
-
- public static class GMAC
- extends BaseMac
- {
- public GMAC()
- {
- super(new GMac(new GCMBlockCipher(new NoekeonEngine())));
- }
- }
-
- public static class Poly1305
- extends BaseMac
- {
- public Poly1305()
- {
- super(new org.bouncycastle.crypto.macs.Poly1305(new NoekeonEngine()));
- }
- }
-
- public static class Poly1305KeyGen
- extends BaseKeyGenerator
- {
- public Poly1305KeyGen()
- {
- super("Poly1305-Noekeon", 256, new Poly1305KeyGenerator());
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for Noekeon parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[16];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("Noekeon", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Noekeon IV";
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = Noekeon.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("AlgorithmParameters.NOEKEON", PREFIX + "$AlgParams");
-
- provider.addAlgorithm("AlgorithmParameterGenerator.NOEKEON", PREFIX + "$AlgParamGen");
-
- provider.addAlgorithm("Cipher.NOEKEON", PREFIX + "$ECB");
-
- provider.addAlgorithm("KeyGenerator.NOEKEON", PREFIX + "$KeyGen");
-
- addGMacAlgorithm(provider, "NOEKEON", PREFIX + "$GMAC", PREFIX + "$KeyGen");
- addPoly1305Algorithm(provider, "NOEKEON", PREFIX + "$Poly1305", PREFIX + "$Poly1305KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2.java
deleted file mode 100644
index 4b0d8b97..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2.java
+++ /dev/null
@@ -1,228 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.io.IOException;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.InvalidParameterSpecException;
-import java.security.spec.KeySpec;
-
-import javax.crypto.SecretKey;
-import javax.crypto.spec.PBEKeySpec;
-import javax.crypto.spec.PBEParameterSpec;
-
-import org.bouncycastle.asn1.ASN1Encoding;
-import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.asn1.ASN1Primitive;
-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers;
-import org.bouncycastle.asn1.pkcs.PBKDF2Params;
-import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BCPBEKey;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseSecretKeyFactory;
-import org.bouncycastle.jcajce.provider.symmetric.util.PBE;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-import org.bouncycastle.jcajce.spec.PBKDF2KeySpec;
-
-public class PBEPBKDF2
-{
- private PBEPBKDF2()
- {
-
- }
-
- public static class AlgParams
- extends BaseAlgorithmParameters
- {
- PBKDF2Params params;
-
- protected byte[] engineGetEncoded()
- {
- try
- {
- return params.getEncoded(ASN1Encoding.DER);
- }
- catch (IOException e)
- {
- throw new RuntimeException("Oooops! " + e.toString());
- }
- }
-
- protected byte[] engineGetEncoded(
- String format)
- {
- if (this.isASN1FormatString(format))
- {
- return engineGetEncoded();
- }
-
- return null;
- }
-
- protected AlgorithmParameterSpec localEngineGetParameterSpec(
- Class paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec == PBEParameterSpec.class)
- {
- return new PBEParameterSpec(params.getSalt(),
- params.getIterationCount().intValue());
- }
-
- throw new InvalidParameterSpecException("unknown parameter spec passed to PBKDF2 PBE parameters object.");
- }
-
- protected void engineInit(
- AlgorithmParameterSpec paramSpec)
- throws InvalidParameterSpecException
- {
- if (!(paramSpec instanceof PBEParameterSpec))
- {
- throw new InvalidParameterSpecException("PBEParameterSpec required to initialise a PBKDF2 PBE parameters algorithm parameters object");
- }
-
- PBEParameterSpec pbeSpec = (PBEParameterSpec)paramSpec;
-
- this.params = new PBKDF2Params(pbeSpec.getSalt(),
- pbeSpec.getIterationCount());
- }
-
- protected void engineInit(
- byte[] params)
- throws IOException
- {
- this.params = PBKDF2Params.getInstance(ASN1Primitive.fromByteArray(params));
- }
-
- protected void engineInit(
- byte[] params,
- String format)
- throws IOException
- {
- if (this.isASN1FormatString(format))
- {
- engineInit(params);
- return;
- }
-
- throw new IOException("Unknown parameters format in PBKDF2 parameters object");
- }
-
- protected String engineToString()
- {
- return "PBKDF2 Parameters";
- }
- }
-
- public static class BasePBKDF2
- extends BaseSecretKeyFactory
- {
- private int scheme;
-
- public BasePBKDF2(String name, int scheme)
- {
- super(name, PKCSObjectIdentifiers.id_PBKDF2);
-
- this.scheme = scheme;
- }
-
- protected SecretKey engineGenerateSecret(
- KeySpec keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec instanceof PBEKeySpec)
- {
- PBEKeySpec pbeSpec = (PBEKeySpec)keySpec;
-
- if (pbeSpec.getSalt() == null)
- {
- throw new InvalidKeySpecException("missing required salt");
- }
-
- if (pbeSpec.getIterationCount() <= 0)
- {
- throw new InvalidKeySpecException("positive iteration count required: "
- + pbeSpec.getIterationCount());
- }
-
- if (pbeSpec.getKeyLength() <= 0)
- {
- throw new InvalidKeySpecException("positive key length required: "
- + pbeSpec.getKeyLength());
- }
-
- if (pbeSpec.getPassword().length == 0)
- {
- throw new IllegalArgumentException("password empty");
- }
-
- if (pbeSpec instanceof PBKDF2KeySpec)
- {
- PBKDF2KeySpec spec = (PBKDF2KeySpec)pbeSpec;
-
- int digest = getDigestCode(spec.getPrf().getAlgorithm());
- int keySize = pbeSpec.getKeyLength();
- int ivSize = -1; // JDK 1,2 and earlier does not understand simplified version.
- CipherParameters param = PBE.Util.makePBEMacParameters(pbeSpec, scheme, digest, keySize);
-
- return new BCPBEKey(this.algName, this.algOid, scheme, digest, keySize, ivSize, pbeSpec, param);
- }
- else
- {
- int digest = SHA1;
- int keySize = pbeSpec.getKeyLength();
- int ivSize = -1; // JDK 1,2 and earlier does not understand simplified version.
- CipherParameters param = PBE.Util.makePBEMacParameters(pbeSpec, scheme, digest, keySize);
-
- return new BCPBEKey(this.algName, this.algOid, scheme, digest, keySize, ivSize, pbeSpec, param);
- }
- }
-
- throw new InvalidKeySpecException("Invalid KeySpec");
- }
-
-
- private int getDigestCode(ASN1ObjectIdentifier algorithm)
- throws InvalidKeySpecException
- {
- if (algorithm.equals(CryptoProObjectIdentifiers.gostR3411Hmac))
- {
- return GOST3411;
- }
- else if (algorithm.equals(PKCSObjectIdentifiers.id_hmacWithSHA1))
- {
- return SHA1;
- }
-
- throw new InvalidKeySpecException("Invalid KeySpec: unknown PRF algorithm " + algorithm);
- }
- }
-
- public static class PBKDF2withUTF8
- extends BasePBKDF2
- {
- public PBKDF2withUTF8()
- {
- super("PBKDF2", PKCS5S2_UTF8);
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = PBEPBKDF2.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("AlgorithmParameters.PBKDF2", PREFIX + "$AlgParams");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + PKCSObjectIdentifiers.id_PBKDF2, "PBKDF2");
- provider.addAlgorithm("SecretKeyFactory.PBKDF2", PREFIX + "$PBKDF2withUTF8");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.id_PBKDF2, "PBKDF2");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12.java
deleted file mode 100644
index 9be3c997..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.io.IOException;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidParameterSpecException;
-
-import javax.crypto.spec.PBEParameterSpec;
-
-import org.bouncycastle.asn1.ASN1Encoding;
-import org.bouncycastle.asn1.ASN1Primitive;
-import org.bouncycastle.asn1.pkcs.PKCS12PBEParams;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public class PBEPKCS12
-{
- private PBEPKCS12()
- {
-
- }
-
- public static class AlgParams
- extends BaseAlgorithmParameters
- {
- PKCS12PBEParams params;
-
- protected byte[] engineGetEncoded()
- {
- try
- {
- return params.getEncoded(ASN1Encoding.DER);
- }
- catch (IOException e)
- {
- throw new RuntimeException("Oooops! " + e.toString());
- }
- }
-
- protected byte[] engineGetEncoded(
- String format)
- {
- if (this.isASN1FormatString(format))
- {
- return engineGetEncoded();
- }
-
- return null;
- }
-
- protected AlgorithmParameterSpec localEngineGetParameterSpec(
- Class paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec == PBEParameterSpec.class)
- {
- return new PBEParameterSpec(params.getIV(),
- params.getIterations().intValue());
- }
-
- throw new InvalidParameterSpecException("unknown parameter spec passed to PKCS12 PBE parameters object.");
- }
-
- protected void engineInit(
- AlgorithmParameterSpec paramSpec)
- throws InvalidParameterSpecException
- {
- if (!(paramSpec instanceof PBEParameterSpec))
- {
- throw new InvalidParameterSpecException("PBEParameterSpec required to initialise a PKCS12 PBE parameters algorithm parameters object");
- }
-
- PBEParameterSpec pbeSpec = (PBEParameterSpec)paramSpec;
-
- this.params = new PKCS12PBEParams(pbeSpec.getSalt(),
- pbeSpec.getIterationCount());
- }
-
- protected void engineInit(
- byte[] params)
- throws IOException
- {
- this.params = PKCS12PBEParams.getInstance(ASN1Primitive.fromByteArray(params));
- }
-
- protected void engineInit(
- byte[] params,
- String format)
- throws IOException
- {
- if (this.isASN1FormatString(format))
- {
- engineInit(params);
- return;
- }
-
- throw new IOException("Unknown parameters format in PKCS12 PBE parameters object");
- }
-
- protected String engineToString()
- {
- return "PKCS12 PBE Parameters";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = PBEPKCS12.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("AlgorithmParameters.PKCS12PBE", PREFIX + "$AlgParams");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC2.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC2.java
deleted file mode 100644
index 4160999f..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC2.java
+++ /dev/null
@@ -1,523 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.io.IOException;
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidParameterSpecException;
-
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.RC2ParameterSpec;
-
-import org.bouncycastle.asn1.ASN1Primitive;
-import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
-import org.bouncycastle.asn1.pkcs.RC2CBCParameter;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.RC2Engine;
-import org.bouncycastle.crypto.engines.RC2WrapEngine;
-import org.bouncycastle.crypto.macs.CBCBlockCipherMac;
-import org.bouncycastle.crypto.macs.CFBBlockCipherMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseWrapCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.PBESecretKeyFactory;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-import org.bouncycastle.util.Arrays;
-
-public final class RC2
-{
- private RC2()
- {
- }
-
- /**
- * RC2
- */
- static public class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new RC2Engine());
- }
- }
-
- /**
- * RC2CBC
- */
- static public class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new RC2Engine()), 64);
- }
- }
-
- public static class Wrap
- extends BaseWrapCipher
- {
- public Wrap()
- {
- super(new RC2WrapEngine());
- }
- }
-
- /**
- * RC2
- */
- public static class CBCMAC
- extends BaseMac
- {
- public CBCMAC()
- {
- super(new CBCBlockCipherMac(new RC2Engine()));
- }
- }
-
- public static class CFB8MAC
- extends BaseMac
- {
- public CFB8MAC()
- {
- super(new CFBBlockCipherMac(new RC2Engine()));
- }
- }
-
- /**
- * PBEWithSHA1AndRC2
- */
- static public class PBEWithSHA1KeyFactory
- extends PBESecretKeyFactory
- {
- public PBEWithSHA1KeyFactory()
- {
- super("PBEwithSHA1andRC2", PKCSObjectIdentifiers.pbeWithSHA1AndRC2_CBC, true, PKCS5S1, SHA1, 64, 64);
- }
- }
-
- /**
- * PBEWithSHAAnd128BitRC2-CBC
- */
- static public class PBEWithSHAAnd128BitKeyFactory
- extends PBESecretKeyFactory
- {
- public PBEWithSHAAnd128BitKeyFactory()
- {
- super("PBEwithSHAand128BitRC2-CBC", PKCSObjectIdentifiers.pbeWithSHAAnd128BitRC2_CBC, true, PKCS12, SHA1, 128, 64);
- }
- }
-
- /**
- * PBEWithSHAAnd40BitRC2-CBC
- */
- static public class PBEWithSHAAnd40BitKeyFactory
- extends PBESecretKeyFactory
- {
- public PBEWithSHAAnd40BitKeyFactory()
- {
- super("PBEwithSHAand40BitRC2-CBC", PKCSObjectIdentifiers.pbeWithSHAAnd40BitRC2_CBC, true, PKCS12, SHA1, 40, 64);
- }
- }
-
- /**
- * PBEWithMD5AndRC2
- */
- static public class PBEWithMD5AndRC2
- extends BaseBlockCipher
- {
- public PBEWithMD5AndRC2()
- {
- super(new CBCBlockCipher(new RC2Engine()));
- }
- }
-
- /**
- * PBEWithSHA1AndRC2
- */
- static public class PBEWithSHA1AndRC2
- extends BaseBlockCipher
- {
- public PBEWithSHA1AndRC2()
- {
- super(new CBCBlockCipher(new RC2Engine()));
- }
- }
-
- /**
- * PBEWithSHAAnd128BitRC2-CBC
- */
- static public class PBEWithSHAAnd128BitRC2
- extends BaseBlockCipher
- {
- public PBEWithSHAAnd128BitRC2()
- {
- super(new CBCBlockCipher(new RC2Engine()));
- }
- }
-
- /**
- * PBEWithSHAAnd40BitRC2-CBC
- */
- static public class PBEWithSHAAnd40BitRC2
- extends BaseBlockCipher
- {
- public PBEWithSHAAnd40BitRC2()
- {
- super(new CBCBlockCipher(new RC2Engine()));
- }
- }
-
- /**
- * PBEWithMD2AndRC2
- */
- static public class PBEWithMD2KeyFactory
- extends PBESecretKeyFactory
- {
- public PBEWithMD2KeyFactory()
- {
- super("PBEwithMD2andRC2", PKCSObjectIdentifiers.pbeWithMD2AndRC2_CBC, true, PKCS5S1, MD2, 64, 64);
- }
- }
-
- /**
- * PBEWithMD5AndRC2
- */
- static public class PBEWithMD5KeyFactory
- extends PBESecretKeyFactory
- {
- public PBEWithMD5KeyFactory()
- {
- super("PBEwithMD5andRC2", PKCSObjectIdentifiers.pbeWithMD5AndRC2_CBC, true, PKCS5S1, MD5, 64, 64);
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- RC2ParameterSpec spec = null;
-
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- if (genParamSpec instanceof RC2ParameterSpec)
- {
- spec = (RC2ParameterSpec)genParamSpec;
- return;
- }
-
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for RC2 parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- AlgorithmParameters params;
-
- if (spec == null)
- {
- byte[] iv = new byte[8];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- try
- {
- params = AlgorithmParameters.getInstance("RC2", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
- }
- else
- {
- try
- {
- params = AlgorithmParameters.getInstance("RC2", BouncyCastleProvider.PROVIDER_NAME);
- params.init(spec);
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
- }
-
- return params;
- }
- }
-
- public static class KeyGenerator
- extends BaseKeyGenerator
- {
- public KeyGenerator()
- {
- super("RC2", 128, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParams
- extends BaseAlgorithmParameters
- {
- private static final short[] table = {
- 0xbd, 0x56, 0xea, 0xf2, 0xa2, 0xf1, 0xac, 0x2a, 0xb0, 0x93, 0xd1, 0x9c, 0x1b, 0x33, 0xfd, 0xd0,
- 0x30, 0x04, 0xb6, 0xdc, 0x7d, 0xdf, 0x32, 0x4b, 0xf7, 0xcb, 0x45, 0x9b, 0x31, 0xbb, 0x21, 0x5a,
- 0x41, 0x9f, 0xe1, 0xd9, 0x4a, 0x4d, 0x9e, 0xda, 0xa0, 0x68, 0x2c, 0xc3, 0x27, 0x5f, 0x80, 0x36,
- 0x3e, 0xee, 0xfb, 0x95, 0x1a, 0xfe, 0xce, 0xa8, 0x34, 0xa9, 0x13, 0xf0, 0xa6, 0x3f, 0xd8, 0x0c,
- 0x78, 0x24, 0xaf, 0x23, 0x52, 0xc1, 0x67, 0x17, 0xf5, 0x66, 0x90, 0xe7, 0xe8, 0x07, 0xb8, 0x60,
- 0x48, 0xe6, 0x1e, 0x53, 0xf3, 0x92, 0xa4, 0x72, 0x8c, 0x08, 0x15, 0x6e, 0x86, 0x00, 0x84, 0xfa,
- 0xf4, 0x7f, 0x8a, 0x42, 0x19, 0xf6, 0xdb, 0xcd, 0x14, 0x8d, 0x50, 0x12, 0xba, 0x3c, 0x06, 0x4e,
- 0xec, 0xb3, 0x35, 0x11, 0xa1, 0x88, 0x8e, 0x2b, 0x94, 0x99, 0xb7, 0x71, 0x74, 0xd3, 0xe4, 0xbf,
- 0x3a, 0xde, 0x96, 0x0e, 0xbc, 0x0a, 0xed, 0x77, 0xfc, 0x37, 0x6b, 0x03, 0x79, 0x89, 0x62, 0xc6,
- 0xd7, 0xc0, 0xd2, 0x7c, 0x6a, 0x8b, 0x22, 0xa3, 0x5b, 0x05, 0x5d, 0x02, 0x75, 0xd5, 0x61, 0xe3,
- 0x18, 0x8f, 0x55, 0x51, 0xad, 0x1f, 0x0b, 0x5e, 0x85, 0xe5, 0xc2, 0x57, 0x63, 0xca, 0x3d, 0x6c,
- 0xb4, 0xc5, 0xcc, 0x70, 0xb2, 0x91, 0x59, 0x0d, 0x47, 0x20, 0xc8, 0x4f, 0x58, 0xe0, 0x01, 0xe2,
- 0x16, 0x38, 0xc4, 0x6f, 0x3b, 0x0f, 0x65, 0x46, 0xbe, 0x7e, 0x2d, 0x7b, 0x82, 0xf9, 0x40, 0xb5,
- 0x1d, 0x73, 0xf8, 0xeb, 0x26, 0xc7, 0x87, 0x97, 0x25, 0x54, 0xb1, 0x28, 0xaa, 0x98, 0x9d, 0xa5,
- 0x64, 0x6d, 0x7a, 0xd4, 0x10, 0x81, 0x44, 0xef, 0x49, 0xd6, 0xae, 0x2e, 0xdd, 0x76, 0x5c, 0x2f,
- 0xa7, 0x1c, 0xc9, 0x09, 0x69, 0x9a, 0x83, 0xcf, 0x29, 0x39, 0xb9, 0xe9, 0x4c, 0xff, 0x43, 0xab
- };
-
- private static final short[] ekb = {
- 0x5d, 0xbe, 0x9b, 0x8b, 0x11, 0x99, 0x6e, 0x4d, 0x59, 0xf3, 0x85, 0xa6, 0x3f, 0xb7, 0x83, 0xc5,
- 0xe4, 0x73, 0x6b, 0x3a, 0x68, 0x5a, 0xc0, 0x47, 0xa0, 0x64, 0x34, 0x0c, 0xf1, 0xd0, 0x52, 0xa5,
- 0xb9, 0x1e, 0x96, 0x43, 0x41, 0xd8, 0xd4, 0x2c, 0xdb, 0xf8, 0x07, 0x77, 0x2a, 0xca, 0xeb, 0xef,
- 0x10, 0x1c, 0x16, 0x0d, 0x38, 0x72, 0x2f, 0x89, 0xc1, 0xf9, 0x80, 0xc4, 0x6d, 0xae, 0x30, 0x3d,
- 0xce, 0x20, 0x63, 0xfe, 0xe6, 0x1a, 0xc7, 0xb8, 0x50, 0xe8, 0x24, 0x17, 0xfc, 0x25, 0x6f, 0xbb,
- 0x6a, 0xa3, 0x44, 0x53, 0xd9, 0xa2, 0x01, 0xab, 0xbc, 0xb6, 0x1f, 0x98, 0xee, 0x9a, 0xa7, 0x2d,
- 0x4f, 0x9e, 0x8e, 0xac, 0xe0, 0xc6, 0x49, 0x46, 0x29, 0xf4, 0x94, 0x8a, 0xaf, 0xe1, 0x5b, 0xc3,
- 0xb3, 0x7b, 0x57, 0xd1, 0x7c, 0x9c, 0xed, 0x87, 0x40, 0x8c, 0xe2, 0xcb, 0x93, 0x14, 0xc9, 0x61,
- 0x2e, 0xe5, 0xcc, 0xf6, 0x5e, 0xa8, 0x5c, 0xd6, 0x75, 0x8d, 0x62, 0x95, 0x58, 0x69, 0x76, 0xa1,
- 0x4a, 0xb5, 0x55, 0x09, 0x78, 0x33, 0x82, 0xd7, 0xdd, 0x79, 0xf5, 0x1b, 0x0b, 0xde, 0x26, 0x21,
- 0x28, 0x74, 0x04, 0x97, 0x56, 0xdf, 0x3c, 0xf0, 0x37, 0x39, 0xdc, 0xff, 0x06, 0xa4, 0xea, 0x42,
- 0x08, 0xda, 0xb4, 0x71, 0xb0, 0xcf, 0x12, 0x7a, 0x4e, 0xfa, 0x6c, 0x1d, 0x84, 0x00, 0xc8, 0x7f,
- 0x91, 0x45, 0xaa, 0x2b, 0xc2, 0xb1, 0x8f, 0xd5, 0xba, 0xf2, 0xad, 0x19, 0xb2, 0x67, 0x36, 0xf7,
- 0x0f, 0x0a, 0x92, 0x7d, 0xe3, 0x9d, 0xe9, 0x90, 0x3e, 0x23, 0x27, 0x66, 0x13, 0xec, 0x81, 0x15,
- 0xbd, 0x22, 0xbf, 0x9f, 0x7e, 0xa9, 0x51, 0x4b, 0x4c, 0xfb, 0x02, 0xd3, 0x70, 0x86, 0x31, 0xe7,
- 0x3b, 0x05, 0x03, 0x54, 0x60, 0x48, 0x65, 0x18, 0xd2, 0xcd, 0x5f, 0x32, 0x88, 0x0e, 0x35, 0xfd
- };
-
- private byte[] iv;
- private int parameterVersion = 58;
-
- protected byte[] engineGetEncoded()
- {
- return Arrays.clone(iv);
- }
-
- protected byte[] engineGetEncoded(
- String format)
- throws IOException
- {
- if (this.isASN1FormatString(format))
- {
- if (parameterVersion == -1)
- {
- return new RC2CBCParameter(engineGetEncoded()).getEncoded();
- }
- else
- {
- return new RC2CBCParameter(parameterVersion, engineGetEncoded()).getEncoded();
- }
- }
-
- if (format.equals("RAW"))
- {
- return engineGetEncoded();
- }
-
- return null;
- }
-
- protected AlgorithmParameterSpec localEngineGetParameterSpec(
- Class paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec == RC2ParameterSpec.class)
- {
- if (parameterVersion != -1)
- {
- if (parameterVersion < 256)
- {
- return new RC2ParameterSpec(ekb[parameterVersion], iv);
- }
- else
- {
- return new RC2ParameterSpec(parameterVersion, iv);
- }
- }
- }
-
- if (paramSpec == IvParameterSpec.class)
- {
- return new IvParameterSpec(iv);
- }
-
- throw new InvalidParameterSpecException("unknown parameter spec passed to RC2 parameters object.");
- }
-
- protected void engineInit(
- AlgorithmParameterSpec paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec instanceof IvParameterSpec)
- {
- this.iv = ((IvParameterSpec)paramSpec).getIV();
- }
- else if (paramSpec instanceof RC2ParameterSpec)
- {
- int effKeyBits = ((RC2ParameterSpec)paramSpec).getEffectiveKeyBits();
- if (effKeyBits != -1)
- {
- if (effKeyBits < 256)
- {
- parameterVersion = table[effKeyBits];
- }
- else
- {
- parameterVersion = effKeyBits;
- }
- }
-
- this.iv = ((RC2ParameterSpec)paramSpec).getIV();
- }
- else
- {
- throw new InvalidParameterSpecException("IvParameterSpec or RC2ParameterSpec required to initialise a RC2 parameters algorithm parameters object");
- }
- }
-
- protected void engineInit(
- byte[] params)
- throws IOException
- {
- this.iv = Arrays.clone(params);
- }
-
- protected void engineInit(
- byte[] params,
- String format)
- throws IOException
- {
- if (this.isASN1FormatString(format))
- {
- RC2CBCParameter p = RC2CBCParameter.getInstance(ASN1Primitive.fromByteArray(params));
-
- if (p.getRC2ParameterVersion() != null)
- {
- parameterVersion = p.getRC2ParameterVersion().intValue();
- }
-
- iv = p.getIV();
-
- return;
- }
-
- if (format.equals("RAW"))
- {
- engineInit(params);
- return;
- }
-
- throw new IOException("Unknown parameters format in IV parameters object");
- }
-
- protected String engineToString()
- {
- return "RC2 Parameters";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = RC2.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("AlgorithmParameterGenerator.RC2", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("AlgorithmParameterGenerator.1.2.840.113549.3.2", PREFIX + "$AlgParamGen");
-
- provider.addAlgorithm("KeyGenerator.RC2", PREFIX + "$KeyGenerator");
- provider.addAlgorithm("KeyGenerator.1.2.840.113549.3.2", PREFIX + "$KeyGenerator");
-
- provider.addAlgorithm("AlgorithmParameters.RC2", PREFIX + "$AlgParams");
- provider.addAlgorithm("AlgorithmParameters.1.2.840.113549.3.2", PREFIX + "$AlgParams");
-
- provider.addAlgorithm("Cipher.RC2", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher.RC2WRAP", PREFIX + "$Wrap");
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.id_alg_CMSRC2wrap, "RC2WRAP");
- provider.addAlgorithm("Cipher.1.2.840.113549.3.2", PREFIX + "$CBC");
-
- provider.addAlgorithm("Mac.RC2MAC", PREFIX + "$CBCMAC");
- provider.addAlgorithm("Alg.Alias.Mac.RC2", "RC2MAC");
- provider.addAlgorithm("Mac.RC2MAC/CFB8", PREFIX + "$CFB8MAC");
- provider.addAlgorithm("Alg.Alias.Mac.RC2/CFB8", "RC2MAC/CFB8");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHMD2ANDRC2-CBC", "PBEWITHMD2ANDRC2");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHMD5ANDRC2-CBC", "PBEWITHMD5ANDRC2");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.PBEWITHSHA1ANDRC2-CBC", "PBEWITHSHA1ANDRC2");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.pbeWithMD2AndRC2_CBC, "PBEWITHMD2ANDRC2");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.pbeWithMD5AndRC2_CBC, "PBEWITHMD5ANDRC2");
-
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory." + PKCSObjectIdentifiers.pbeWithSHA1AndRC2_CBC, "PBEWITHSHA1ANDRC2");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.5", "PBEWITHSHAAND128BITRC2-CBC");
- provider.addAlgorithm("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.6", "PBEWITHSHAAND40BITRC2-CBC");
-
- provider.addAlgorithm("SecretKeyFactory.PBEWITHMD2ANDRC2", PREFIX + "$PBEWithMD2KeyFactory");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHMD5ANDRC2", PREFIX + "$PBEWithMD5KeyFactory");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHA1ANDRC2", PREFIX + "$PBEWithSHA1KeyFactory");
-
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND128BITRC2-CBC", PREFIX + "$PBEWithSHAAnd128BitKeyFactory");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAAND40BITRC2-CBC", PREFIX + "$PBEWithSHAAnd40BitKeyFactory");
-
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithMD2AndRC2_CBC, "PBEWITHMD2ANDRC2");
-
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithMD5AndRC2_CBC, "PBEWITHMD5ANDRC2");
-
- provider.addAlgorithm("Alg.Alias.Cipher." + PKCSObjectIdentifiers.pbeWithSHA1AndRC2_CBC, "PBEWITHSHA1ANDRC2");
-
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.5", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.6", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWithSHAAnd3KeyTripleDES", "PKCS12PBE");
-
- provider.addAlgorithm("Alg.Alias.Cipher.1.2.840.113549.1.12.1.5", "PBEWITHSHAAND128BITRC2-CBC");
- provider.addAlgorithm("Alg.Alias.Cipher.1.2.840.113549.1.12.1.6", "PBEWITHSHAAND40BITRC2-CBC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND128BITRC2-CBC", "PBEWITHSHAAND128BITRC2-CBC");
- provider.addAlgorithm("Alg.Alias.Cipher.PBEWITHSHA1AND40BITRC2-CBC", "PBEWITHSHAAND40BITRC2-CBC");
- provider.addAlgorithm("Cipher.PBEWITHSHA1ANDRC2", PREFIX + "$PBEWithSHA1AndRC2");
-
- provider.addAlgorithm("Cipher.PBEWITHSHAAND128BITRC2-CBC", PREFIX + "$PBEWithSHAAnd128BitRC2");
- provider.addAlgorithm("Cipher.PBEWITHSHAAND40BITRC2-CBC", PREFIX + "$PBEWithSHAAnd40BitRC2");
- provider.addAlgorithm("Cipher.PBEWITHMD5ANDRC2", PREFIX + "$PBEWithMD5AndRC2");
-
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA1ANDRC2", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDRC2", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHA1ANDRC2-CBC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND40BITRC2-CBC", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND128BITRC2-CBC", "PKCS12PBE");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC5.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC5.java
deleted file mode 100644
index aa63a951..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC5.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.RC532Engine;
-import org.bouncycastle.crypto.engines.RC564Engine;
-import org.bouncycastle.crypto.macs.CBCBlockCipherMac;
-import org.bouncycastle.crypto.macs.CFBBlockCipherMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class RC5
-{
- private RC5()
- {
- }
-
- /**
- * RC5
- */
- public static class ECB32
- extends BaseBlockCipher
- {
- public ECB32()
- {
- super(new RC532Engine());
- }
- }
-
- /**
- * RC564
- */
- public static class ECB64
- extends BaseBlockCipher
- {
- public ECB64()
- {
- super(new RC564Engine());
- }
- }
-
- public static class CBC32
- extends BaseBlockCipher
- {
- public CBC32()
- {
- super(new CBCBlockCipher(new RC532Engine()), 64);
- }
- }
-
- public static class KeyGen32
- extends BaseKeyGenerator
- {
- public KeyGen32()
- {
- super("RC5", 128, new CipherKeyGenerator());
- }
- }
-
- /**
- * RC5
- */
- public static class KeyGen64
- extends BaseKeyGenerator
- {
- public KeyGen64()
- {
- super("RC5-64", 256, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for RC5 parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[8];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("RC5", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class Mac32
- extends BaseMac
- {
- public Mac32()
- {
- super(new CBCBlockCipherMac(new RC532Engine()));
- }
- }
-
- public static class CFB8Mac32
- extends BaseMac
- {
- public CFB8Mac32()
- {
- super(new CFBBlockCipherMac(new RC532Engine()));
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "RC5 IV";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = RC5.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.RC5", PREFIX + "$ECB32");
- provider.addAlgorithm("Alg.Alias.Cipher.RC5-32", "RC5");
- provider.addAlgorithm("Cipher.RC5-64", PREFIX + "$ECB64");
- provider.addAlgorithm("KeyGenerator.RC5", PREFIX + "$KeyGen32");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.RC5-32", "RC5");
- provider.addAlgorithm("KeyGenerator.RC5-64", PREFIX + "$KeyGen64");
- provider.addAlgorithm("AlgorithmParameters.RC5", PREFIX + "$AlgParams");
- provider.addAlgorithm("AlgorithmParameters.RC5-64", PREFIX + "$AlgParams");
- provider.addAlgorithm("Mac.RC5MAC", PREFIX + "$Mac32");
- provider.addAlgorithm("Alg.Alias.Mac.RC5", "RC5MAC");
- provider.addAlgorithm("Mac.RC5MAC/CFB8", PREFIX + "$CFB8Mac32");
- provider.addAlgorithm("Alg.Alias.Mac.RC5/CFB8", "RC5MAC/CFB8");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC6.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC6.java
deleted file mode 100644
index 114c40b6..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/RC6.java
+++ /dev/null
@@ -1,180 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.BufferedBlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.RC6Engine;
-import org.bouncycastle.crypto.generators.Poly1305KeyGenerator;
-import org.bouncycastle.crypto.macs.GMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.modes.CFBBlockCipher;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.crypto.modes.OFBBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class RC6
-{
- private RC6()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new RC6Engine();
- }
- });
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new RC6Engine()), 128);
- }
- }
-
- static public class CFB
- extends BaseBlockCipher
- {
- public CFB()
- {
- super(new BufferedBlockCipher(new CFBBlockCipher(new RC6Engine(), 128)), 128);
- }
- }
-
- static public class OFB
- extends BaseBlockCipher
- {
- public OFB()
- {
- super(new BufferedBlockCipher(new OFBBlockCipher(new RC6Engine(), 128)), 128);
- }
- }
-
- public static class GMAC
- extends BaseMac
- {
- public GMAC()
- {
- super(new GMac(new GCMBlockCipher(new RC6Engine())));
- }
- }
-
- public static class Poly1305
- extends BaseMac
- {
- public Poly1305()
- {
- super(new org.bouncycastle.crypto.macs.Poly1305(new RC6Engine()));
- }
- }
-
- public static class Poly1305KeyGen
- extends BaseKeyGenerator
- {
- public Poly1305KeyGen()
- {
- super("Poly1305-RC6", 256, new Poly1305KeyGenerator());
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("RC6", 256, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for RC6 parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[16];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("RC6", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "RC6 IV";
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = RC6.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.RC6", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.RC6", PREFIX + "$KeyGen");
- provider.addAlgorithm("AlgorithmParameters.RC6", PREFIX + "$AlgParams");
-
- addGMacAlgorithm(provider, "RC6", PREFIX + "$GMAC", PREFIX + "$KeyGen");
- addPoly1305Algorithm(provider, "RC6", PREFIX + "$Poly1305", PREFIX + "$Poly1305KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Rijndael.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Rijndael.java
deleted file mode 100644
index b8c36b7b..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Rijndael.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.RijndaelEngine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class Rijndael
-{
- private Rijndael()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new RijndaelEngine();
- }
- });
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Rijndael", 192, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Rijndael IV";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = Rijndael.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.RIJNDAEL", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.RIJNDAEL", PREFIX + "$KeyGen");
- provider.addAlgorithm("AlgorithmParameters.RIJNDAEL", PREFIX + "$AlgParams");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SEED.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SEED.java
deleted file mode 100644
index e7e257c3..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SEED.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.asn1.kisa.KISAObjectIdentifiers;
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.SEEDEngine;
-import org.bouncycastle.crypto.engines.SEEDWrapEngine;
-import org.bouncycastle.crypto.generators.Poly1305KeyGenerator;
-import org.bouncycastle.crypto.macs.GMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseWrapCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class SEED
-{
- private SEED()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new SEEDEngine();
- }
- });
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new SEEDEngine()), 128);
- }
- }
-
- public static class Wrap
- extends BaseWrapCipher
- {
- public Wrap()
- {
- super(new SEEDWrapEngine());
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("SEED", 128, new CipherKeyGenerator());
- }
- }
-
- public static class GMAC
- extends BaseMac
- {
- public GMAC()
- {
- super(new GMac(new GCMBlockCipher(new SEEDEngine())));
- }
- }
-
- public static class Poly1305
- extends BaseMac
- {
- public Poly1305()
- {
- super(new org.bouncycastle.crypto.macs.Poly1305(new SEEDEngine()));
- }
- }
-
- public static class Poly1305KeyGen
- extends BaseKeyGenerator
- {
- public Poly1305KeyGen()
- {
- super("Poly1305-SEED", 256, new Poly1305KeyGenerator());
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for SEED parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[16];
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("SEED", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
-
- return params;
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "SEED IV";
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = SEED.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("AlgorithmParameters.SEED", PREFIX + "$AlgParams");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters." + KISAObjectIdentifiers.id_seedCBC, "SEED");
-
- provider.addAlgorithm("AlgorithmParameterGenerator.SEED", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameterGenerator." + KISAObjectIdentifiers.id_seedCBC, "SEED");
-
- provider.addAlgorithm("Cipher.SEED", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher." + KISAObjectIdentifiers.id_seedCBC, PREFIX + "$CBC");
-
- provider.addAlgorithm("Cipher.SEEDWRAP", PREFIX + "$Wrap");
- provider.addAlgorithm("Alg.Alias.Cipher." + KISAObjectIdentifiers.id_npki_app_cmsSeed_wrap, "SEEDWRAP");
-
- provider.addAlgorithm("KeyGenerator.SEED", PREFIX + "$KeyGen");
- provider.addAlgorithm("KeyGenerator." + KISAObjectIdentifiers.id_seedCBC, PREFIX + "$KeyGen");
- provider.addAlgorithm("KeyGenerator." + KISAObjectIdentifiers.id_npki_app_cmsSeed_wrap, PREFIX + "$KeyGen");
-
- addGMacAlgorithm(provider, "SEED", PREFIX + "$GMAC", PREFIX + "$KeyGen");
- addPoly1305Algorithm(provider, "SEED", PREFIX + "$Poly1305", PREFIX + "$Poly1305KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Salsa20.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Salsa20.java
deleted file mode 100644
index 88b27a6d..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Salsa20.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.Salsa20Engine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class Salsa20
-{
- private Salsa20()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new Salsa20Engine(), 8);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Salsa20", 128, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = Salsa20.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.SALSA20", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.SALSA20", PREFIX + "$KeyGen");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Serpent.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Serpent.java
deleted file mode 100644
index ec21880c..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Serpent.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.SerpentEngine;
-import org.bouncycastle.crypto.engines.TwofishEngine;
-import org.bouncycastle.crypto.generators.Poly1305KeyGenerator;
-import org.bouncycastle.crypto.macs.GMac;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-
-public final class Serpent
-{
- private Serpent()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new SerpentEngine();
- }
- });
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Serpent", 192, new CipherKeyGenerator());
- }
- }
-
- public static class SerpentGMAC
- extends BaseMac
- {
- public SerpentGMAC()
- {
- super(new GMac(new GCMBlockCipher(new SerpentEngine())));
- }
- }
-
- public static class Poly1305
- extends BaseMac
- {
- public Poly1305()
- {
- super(new org.bouncycastle.crypto.macs.Poly1305(new TwofishEngine()));
- }
- }
-
- public static class Poly1305KeyGen
- extends BaseKeyGenerator
- {
- public Poly1305KeyGen()
- {
- super("Poly1305-Serpent", 256, new Poly1305KeyGenerator());
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Serpent IV";
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = Serpent.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.Serpent", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.Serpent", PREFIX + "$KeyGen");
- provider.addAlgorithm("AlgorithmParameters.Serpent", PREFIX + "$AlgParams");
-
- addGMacAlgorithm(provider, "SERPENT", PREFIX + "$SerpentGMAC", PREFIX + "$KeyGen");
- addPoly1305Algorithm(provider, "SERPENT", PREFIX + "$Poly1305", PREFIX + "$Poly1305KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Shacal2.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Shacal2.java
deleted file mode 100644
index 81666af7..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Shacal2.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.Shacal2Engine;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseAlgorithmParameterGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public final class Shacal2
-{
- private Shacal2()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new Shacal2Engine();
- }
- });
- }
- }
-
- public static class CBC
- extends BaseBlockCipher
- {
- public CBC()
- {
- super(new CBCBlockCipher(new Shacal2Engine()), 256);//block size
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Shacal2", 512, new CipherKeyGenerator());//key size
- }
- }
-
- public static class AlgParamGen
- extends BaseAlgorithmParameterGenerator
- {
- protected void engineInit(
- AlgorithmParameterSpec genParamSpec,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for Shacal2 parameter generation.");
- }
-
- protected AlgorithmParameters engineGenerateParameters()
- {
- byte[] iv = new byte[32];// block size 256
-
- if (random == null)
- {
- random = new SecureRandom();
- }
-
- random.nextBytes(iv);
-
- AlgorithmParameters params;
-
- try
- {
- params = AlgorithmParameters.getInstance("Shacal2", BouncyCastleProvider.PROVIDER_NAME);
- params.init(new IvParameterSpec(iv));
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage());
- }
- return params;
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Shacal2 IV";
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = Shacal2.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.Shacal2", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.Shacal2", PREFIX + "$KeyGen");
- provider.addAlgorithm("AlgorithmParameterGenerator.Shacal2", PREFIX + "$AlgParamGen");
- provider.addAlgorithm("AlgorithmParameters.Shacal2", PREFIX + "$AlgParams");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SipHash.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SipHash.java
deleted file mode 100644
index 5a115318..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SipHash.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class SipHash
-{
- private SipHash()
- {
- }
-
- public static class Mac24
- extends BaseMac
- {
- public Mac24()
- {
- super(new org.bouncycastle.crypto.macs.SipHash());
- }
- }
-
- public static class Mac48
- extends BaseMac
- {
- public Mac48()
- {
- super(new org.bouncycastle.crypto.macs.SipHash(4, 8));
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("SipHash", 128, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = SipHash.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Mac.SIPHASH-2-4", PREFIX + "$Mac24");
- provider.addAlgorithm("Alg.Alias.Mac.SIPHASH", "SIPHASH-2-4");
- provider.addAlgorithm("Mac.SIPHASH-4-8", PREFIX + "$Mac48");
-
- provider.addAlgorithm("KeyGenerator.SIPHASH", PREFIX + "$KeyGen");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.SIPHASH-2-4", "SIPHASH");
- provider.addAlgorithm("Alg.Alias.KeyGenerator.SIPHASH-4-8", "SIPHASH");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Skipjack.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Skipjack.java
deleted file mode 100644
index ec75944c..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Skipjack.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.SkipjackEngine;
-import org.bouncycastle.crypto.macs.CBCBlockCipherMac;
-import org.bouncycastle.crypto.macs.CFBBlockCipherMac;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class Skipjack
-{
- private Skipjack()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new SkipjackEngine());
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Skipjack", 80, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Skipjack IV";
- }
- }
-
- public static class Mac
- extends BaseMac
- {
- public Mac()
- {
- super(new CBCBlockCipherMac(new SkipjackEngine()));
- }
- }
-
- public static class MacCFB8
- extends BaseMac
- {
- public MacCFB8()
- {
- super(new CFBBlockCipherMac(new SkipjackEngine()));
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = Skipjack.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.SKIPJACK", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.SKIPJACK", PREFIX + "$KeyGen");
- provider.addAlgorithm("AlgorithmParameters.SKIPJACK", PREFIX + "$AlgParams");
- provider.addAlgorithm("Mac.SKIPJACKMAC", PREFIX + "$Mac");
- provider.addAlgorithm("Alg.Alias.Mac.SKIPJACK", "SKIPJACKMAC");
- provider.addAlgorithm("Mac.SKIPJACKMAC/CFB8", PREFIX + "$MacCFB8");
- provider.addAlgorithm("Alg.Alias.Mac.SKIPJACK/CFB8", "SKIPJACKMAC/CFB8");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SymmetricAlgorithmProvider.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SymmetricAlgorithmProvider.java
deleted file mode 100644
index c1b3d199..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/SymmetricAlgorithmProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-abstract class SymmetricAlgorithmProvider
- extends AlgorithmProvider
-{
- protected void addGMacAlgorithm(
- ConfigurableProvider provider,
- String algorithm,
- String algorithmClassName,
- String keyGeneratorClassName)
- {
- provider.addAlgorithm("Mac." + algorithm + "-GMAC", algorithmClassName);
- provider.addAlgorithm("Alg.Alias.Mac." + algorithm + "GMAC", algorithm + "-GMAC");
-
- provider.addAlgorithm("KeyGenerator." + algorithm + "-GMAC", keyGeneratorClassName);
- provider.addAlgorithm("Alg.Alias.KeyGenerator." + algorithm + "GMAC", algorithm + "-GMAC");
- }
-
- protected void addPoly1305Algorithm(ConfigurableProvider provider,
- String algorithm,
- String algorithmClassName,
- String keyGeneratorClassName)
- {
- provider.addAlgorithm("Mac.POLY1305-" + algorithm, algorithmClassName);
- provider.addAlgorithm("Alg.Alias.Mac.POLY1305" + algorithm, "POLY1305-" + algorithm);
-
- provider.addAlgorithm("KeyGenerator.POLY1305-" + algorithm, keyGeneratorClassName);
- provider.addAlgorithm("Alg.Alias.KeyGenerator.POLY1305" + algorithm, "POLY1305-" + algorithm);
- }
-
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/TEA.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/TEA.java
deleted file mode 100644
index 4bc12c9f..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/TEA.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.TEAEngine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class TEA
-{
- private TEA()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new TEAEngine());
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("TEA", 128, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "TEA IV";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = TEA.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.TEA", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.TEA", PREFIX + "$KeyGen");
- provider.addAlgorithm("AlgorithmParameters.TEA", PREFIX + "$AlgParams");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Threefish.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Threefish.java
deleted file mode 100644
index 2970de6a..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Threefish.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.ThreefishEngine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class Threefish
-{
- private Threefish()
- {
- }
-
- public static class ECB_256
- extends BaseBlockCipher
- {
- public ECB_256()
- {
- super(new ThreefishEngine(ThreefishEngine.BLOCKSIZE_256));
- }
- }
-
- public static class ECB_512
- extends BaseBlockCipher
- {
- public ECB_512()
- {
- super(new ThreefishEngine(ThreefishEngine.BLOCKSIZE_512));
- }
- }
-
- public static class ECB_1024
- extends BaseBlockCipher
- {
- public ECB_1024()
- {
- super(new ThreefishEngine(ThreefishEngine.BLOCKSIZE_1024));
- }
- }
-
- public static class KeyGen_256
- extends BaseKeyGenerator
- {
- public KeyGen_256()
- {
- super("Threefish-256", 256, new CipherKeyGenerator());
- }
- }
-
- public static class KeyGen_512
- extends BaseKeyGenerator
- {
- public KeyGen_512()
- {
- super("Threefish-512", 512, new CipherKeyGenerator());
- }
- }
-
- public static class KeyGen_1024
- extends BaseKeyGenerator
- {
- public KeyGen_1024()
- {
- super("Threefish-1024", 1024, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParams_256
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Threefish-256 IV";
- }
- }
-
- public static class AlgParams_512
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Threefish-512 IV";
- }
- }
-
- public static class AlgParams_1024
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Threefish-1024 IV";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = Threefish.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.Threefish-256", PREFIX + "$ECB_256");
- provider.addAlgorithm("Cipher.Threefish-512", PREFIX + "$ECB_512");
- provider.addAlgorithm("Cipher.Threefish-1024", PREFIX + "$ECB_1024");
- provider.addAlgorithm("KeyGenerator.Threefish-256", PREFIX + "$KeyGen_256");
- provider.addAlgorithm("KeyGenerator.Threefish-512", PREFIX + "$KeyGen_512");
- provider.addAlgorithm("KeyGenerator.Threefish-1024", PREFIX + "$KeyGen_1024");
- provider.addAlgorithm("AlgorithmParameters.Threefish-256", PREFIX + "$AlgParams_256");
- provider.addAlgorithm("AlgorithmParameters.Threefish-512", PREFIX + "$AlgParams_512");
- provider.addAlgorithm("AlgorithmParameters.Threefish-1024", PREFIX + "$AlgParams_1024");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Twofish.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Twofish.java
deleted file mode 100644
index 4c3ab1c7..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Twofish.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.TwofishEngine;
-import org.bouncycastle.crypto.generators.Poly1305KeyGenerator;
-import org.bouncycastle.crypto.macs.GMac;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BlockCipherProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.symmetric.util.PBESecretKeyFactory;
-
-public final class Twofish
-{
- private Twofish()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new BlockCipherProvider()
- {
- public BlockCipher get()
- {
- return new TwofishEngine();
- }
- });
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("Twofish", 256, new CipherKeyGenerator());
- }
- }
-
- public static class GMAC
- extends BaseMac
- {
- public GMAC()
- {
- super(new GMac(new GCMBlockCipher(new TwofishEngine())));
- }
- }
-
- public static class Poly1305
- extends BaseMac
- {
- public Poly1305()
- {
- super(new org.bouncycastle.crypto.macs.Poly1305(new TwofishEngine()));
- }
- }
-
- public static class Poly1305KeyGen
- extends BaseKeyGenerator
- {
- public Poly1305KeyGen()
- {
- super("Poly1305-Twofish", 256, new Poly1305KeyGenerator());
- }
- }
-
- /**
- * PBEWithSHAAndTwofish-CBC
- */
- static public class PBEWithSHAKeyFactory
- extends PBESecretKeyFactory
- {
- public PBEWithSHAKeyFactory()
- {
- super("PBEwithSHAandTwofish-CBC", null, true, PKCS12, SHA1, 256, 128);
- }
- }
-
- /**
- * PBEWithSHAAndTwofish-CBC
- */
- static public class PBEWithSHA
- extends BaseBlockCipher
- {
- public PBEWithSHA()
- {
- super(new CBCBlockCipher(new TwofishEngine()));
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "Twofish IV";
- }
- }
-
- public static class Mappings
- extends SymmetricAlgorithmProvider
- {
- private static final String PREFIX = Twofish.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
- provider.addAlgorithm("Cipher.Twofish", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.Twofish", PREFIX + "$KeyGen");
- provider.addAlgorithm("AlgorithmParameters.Twofish", PREFIX + "$AlgParams");
-
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDTWOFISH", "PKCS12PBE");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDTWOFISH-CBC", "PKCS12PBE");
- provider.addAlgorithm("Cipher.PBEWITHSHAANDTWOFISH-CBC", PREFIX + "$PBEWithSHA");
- provider.addAlgorithm("SecretKeyFactory.PBEWITHSHAANDTWOFISH-CBC", PREFIX + "$PBEWithSHAKeyFactory");
-
- addGMacAlgorithm(provider, "Twofish", PREFIX + "$GMAC", PREFIX + "$KeyGen");
- addPoly1305Algorithm(provider, "Twofish", PREFIX + "$Poly1305", PREFIX + "$Poly1305KeyGen");
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/VMPC.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/VMPC.java
deleted file mode 100644
index 1e59e078..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/VMPC.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.VMPCEngine;
-import org.bouncycastle.crypto.macs.VMPCMac;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseMac;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class VMPC
-{
- private VMPC()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new VMPCEngine(), 16);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("VMPC", 128, new CipherKeyGenerator());
- }
- }
-
- public static class Mac
- extends BaseMac
- {
- public Mac()
- {
- super(new VMPCMac());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = VMPC.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.VMPC", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.VMPC", PREFIX + "$KeyGen");
- provider.addAlgorithm("Mac.VMPCMAC", PREFIX + "$Mac");
- provider.addAlgorithm("Alg.Alias.Mac.VMPC", "VMPCMAC");
- provider.addAlgorithm("Alg.Alias.Mac.VMPC-MAC", "VMPCMAC");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/VMPCKSA3.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/VMPCKSA3.java
deleted file mode 100644
index b5d8814a..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/VMPCKSA3.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.VMPCKSA3Engine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class VMPCKSA3
-{
- private VMPCKSA3()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new VMPCKSA3Engine(), 16);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("VMPC-KSA3", 128, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = VMPCKSA3.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.VMPC-KSA3", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.VMPC-KSA3", PREFIX + "$KeyGen");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/XSalsa20.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/XSalsa20.java
deleted file mode 100644
index 5be06401..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/XSalsa20.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.XSalsa20Engine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseStreamCipher;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class XSalsa20
-{
- private XSalsa20()
- {
- }
-
- public static class Base
- extends BaseStreamCipher
- {
- public Base()
- {
- super(new XSalsa20Engine(), 24);
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("XSalsa20", 256, new CipherKeyGenerator());
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = XSalsa20.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.XSALSA20", PREFIX + "$Base");
- provider.addAlgorithm("KeyGenerator.XSALSA20", PREFIX + "$KeyGen");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/XTEA.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/XTEA.java
deleted file mode 100644
index 2e946de1..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/XTEA.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.engines.XTEAEngine;
-import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
-import org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
-import org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
-import org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
-
-public final class XTEA
-{
- private XTEA()
- {
- }
-
- public static class ECB
- extends BaseBlockCipher
- {
- public ECB()
- {
- super(new XTEAEngine());
- }
- }
-
- public static class KeyGen
- extends BaseKeyGenerator
- {
- public KeyGen()
- {
- super("XTEA", 128, new CipherKeyGenerator());
- }
- }
-
- public static class AlgParams
- extends IvAlgorithmParameters
- {
- protected String engineToString()
- {
- return "XTEA IV";
- }
- }
-
- public static class Mappings
- extends AlgorithmProvider
- {
- private static final String PREFIX = XTEA.class.getName();
-
- public Mappings()
- {
- }
-
- public void configure(ConfigurableProvider provider)
- {
-
- provider.addAlgorithm("Cipher.XTEA", PREFIX + "$ECB");
- provider.addAlgorithm("KeyGenerator.XTEA", PREFIX + "$KeyGen");
- provider.addAlgorithm("AlgorithmParameters.XTEA", PREFIX + "$AlgParams");
-
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey.java
deleted file mode 100644
index a4719729..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import javax.crypto.interfaces.PBEKey;
-import javax.crypto.spec.PBEKeySpec;
-
-import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.PBEParametersGenerator;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.ParametersWithIV;
-
-public class BCPBEKey
- implements PBEKey
-{
- String algorithm;
- ASN1ObjectIdentifier oid;
- int type;
- int digest;
- int keySize;
- int ivSize;
- CipherParameters param;
- PBEKeySpec pbeKeySpec;
- boolean tryWrong = false;
-
- /**
- * @param param
- */
- public BCPBEKey(
- String algorithm,
- ASN1ObjectIdentifier oid,
- int type,
- int digest,
- int keySize,
- int ivSize,
- PBEKeySpec pbeKeySpec,
- CipherParameters param)
- {
- this.algorithm = algorithm;
- this.oid = oid;
- this.type = type;
- this.digest = digest;
- this.keySize = keySize;
- this.ivSize = ivSize;
- this.pbeKeySpec = pbeKeySpec;
- this.param = param;
- }
-
- public String getAlgorithm()
- {
- return algorithm;
- }
-
- public String getFormat()
- {
- return "RAW";
- }
-
- public byte[] getEncoded()
- {
- if (param != null)
- {
- KeyParameter kParam;
-
- if (param instanceof ParametersWithIV)
- {
- kParam = (KeyParameter)((ParametersWithIV)param).getParameters();
- }
- else
- {
- kParam = (KeyParameter)param;
- }
-
- return kParam.getKey();
- }
- else
- {
- if (type == PBE.PKCS12)
- {
- return PBEParametersGenerator.PKCS12PasswordToBytes(pbeKeySpec.getPassword());
- }
- else if (type == PBE.PKCS5S2_UTF8)
- {
- return PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(pbeKeySpec.getPassword());
- }
- else
- {
- return PBEParametersGenerator.PKCS5PasswordToBytes(pbeKeySpec.getPassword());
- }
- }
- }
-
- int getType()
- {
- return type;
- }
-
- int getDigest()
- {
- return digest;
- }
-
- int getKeySize()
- {
- return keySize;
- }
-
- public int getIvSize()
- {
- return ivSize;
- }
-
- public CipherParameters getParam()
- {
- return param;
- }
-
- /* (non-Javadoc)
- * @see javax.crypto.interfaces.PBEKey#getPassword()
- */
- public char[] getPassword()
- {
- return pbeKeySpec.getPassword();
- }
-
- /* (non-Javadoc)
- * @see javax.crypto.interfaces.PBEKey#getSalt()
- */
- public byte[] getSalt()
- {
- return pbeKeySpec.getSalt();
- }
-
- /* (non-Javadoc)
- * @see javax.crypto.interfaces.PBEKey#getIterationCount()
- */
- public int getIterationCount()
- {
- return pbeKeySpec.getIterationCount();
- }
-
- public ASN1ObjectIdentifier getOID()
- {
- return oid;
- }
-
- public void setTryWrongPKCS12Zero(boolean tryWrong)
- {
- this.tryWrong = tryWrong;
- }
-
- boolean shouldTryWrongPKCS12()
- {
- return tryWrong;
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseAlgorithmParameterGenerator.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseAlgorithmParameterGenerator.java
deleted file mode 100644
index 63d6548e..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseAlgorithmParameterGenerator.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.security.AlgorithmParameterGeneratorSpi;
-import java.security.SecureRandom;
-
-public abstract class BaseAlgorithmParameterGenerator
- extends AlgorithmParameterGeneratorSpi
-{
- protected SecureRandom random;
- protected int strength = 1024;
-
- protected void engineInit(
- int strength,
- SecureRandom random)
- {
- this.strength = strength;
- this.random = random;
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseAlgorithmParameters.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseAlgorithmParameters.java
deleted file mode 100644
index ec723db6..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseAlgorithmParameters.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.security.AlgorithmParametersSpi;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidParameterSpecException;
-
-public abstract class BaseAlgorithmParameters
- extends AlgorithmParametersSpi
-{
- protected boolean isASN1FormatString(String format)
- {
- return format == null || format.equals("ASN.1");
- }
-
- protected AlgorithmParameterSpec engineGetParameterSpec(
- Class paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec == null)
- {
- throw new NullPointerException("argument to getParameterSpec must not be null");
- }
-
- return localEngineGetParameterSpec(paramSpec);
- }
-
- protected abstract AlgorithmParameterSpec localEngineGetParameterSpec(Class paramSpec)
- throws InvalidParameterSpecException;
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java
deleted file mode 100644
index 01fe466d..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java
+++ /dev/null
@@ -1,1095 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.nio.ByteBuffer;
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.InvalidParameterException;
-import java.security.Key;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
-import javax.crypto.ShortBufferException;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.PBEParameterSpec;
-import javax.crypto.spec.RC2ParameterSpec;
-import javax.crypto.spec.RC5ParameterSpec;
-
-import org.bouncycastle.asn1.cms.GCMParameters;
-import org.bouncycastle.crypto.BlockCipher;
-import org.bouncycastle.crypto.BufferedBlockCipher;
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.DataLengthException;
-import org.bouncycastle.crypto.InvalidCipherTextException;
-import org.bouncycastle.crypto.OutputLengthException;
-import org.bouncycastle.crypto.modes.AEADBlockCipher;
-import org.bouncycastle.crypto.modes.CBCBlockCipher;
-import org.bouncycastle.crypto.modes.CCMBlockCipher;
-import org.bouncycastle.crypto.modes.CFBBlockCipher;
-import org.bouncycastle.crypto.modes.CTSBlockCipher;
-import org.bouncycastle.crypto.modes.EAXBlockCipher;
-import org.bouncycastle.crypto.modes.GCFBBlockCipher;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.crypto.modes.GOFBBlockCipher;
-import org.bouncycastle.crypto.modes.OCBBlockCipher;
-import org.bouncycastle.crypto.modes.OFBBlockCipher;
-import org.bouncycastle.crypto.modes.OpenPGPCFBBlockCipher;
-import org.bouncycastle.crypto.modes.PGPCFBBlockCipher;
-import org.bouncycastle.crypto.modes.SICBlockCipher;
-import org.bouncycastle.crypto.paddings.BlockCipherPadding;
-import org.bouncycastle.crypto.paddings.ISO10126d2Padding;
-import org.bouncycastle.crypto.paddings.ISO7816d4Padding;
-import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher;
-import org.bouncycastle.crypto.paddings.TBCPadding;
-import org.bouncycastle.crypto.paddings.X923Padding;
-import org.bouncycastle.crypto.paddings.ZeroBytePadding;
-import org.bouncycastle.crypto.params.AEADParameters;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.ParametersWithIV;
-import org.bouncycastle.crypto.params.ParametersWithRandom;
-import org.bouncycastle.crypto.params.ParametersWithSBox;
-import org.bouncycastle.crypto.params.RC2Parameters;
-import org.bouncycastle.crypto.params.RC5Parameters;
-import org.bouncycastle.jcajce.spec.GOST28147ParameterSpec;
-import org.bouncycastle.jcajce.spec.RepeatedSecretKeySpec;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-import org.bouncycastle.util.Strings;
-
-public class BaseBlockCipher
- extends BaseWrapCipher
- implements PBE
-{
- private static final Class gcmSpecClass = lookup("javax.crypto.spec.GCMParameterSpec");
-
- //
- // specs we can handle.
- //
- private Class[] availableSpecs =
- {
- RC2ParameterSpec.class,
- RC5ParameterSpec.class,
- IvParameterSpec.class,
- PBEParameterSpec.class,
- GOST28147ParameterSpec.class,
- gcmSpecClass
- };
-
- private BlockCipher baseEngine;
- private BlockCipherProvider engineProvider;
- private GenericBlockCipher cipher;
- private ParametersWithIV ivParam;
- private AEADParameters aeadParams;
-
- private int ivLength = 0;
-
- private boolean padded;
-
- private PBEParameterSpec pbeSpec = null;
- private String pbeAlgorithm = null;
-
- private String modeName = null;
-
- private static Class lookup(String className)
- {
- try
- {
- Class def = BaseBlockCipher.class.getClassLoader().loadClass(className);
-
- return def;
- }
- catch (Exception e)
- {
- return null;
- }
- }
-
- protected BaseBlockCipher(
- BlockCipher engine)
- {
- baseEngine = engine;
-
- cipher = new BufferedGenericBlockCipher(engine);
- }
-
- protected BaseBlockCipher(
- BlockCipherProvider provider)
- {
- baseEngine = provider.get();
- engineProvider = provider;
-
- cipher = new BufferedGenericBlockCipher(provider.get());
- }
-
- protected BaseBlockCipher(
- AEADBlockCipher engine)
- {
- baseEngine = engine.getUnderlyingCipher();
- ivLength = baseEngine.getBlockSize();
- cipher = new AEADGenericBlockCipher(engine);
- }
-
- protected BaseBlockCipher(
- org.bouncycastle.crypto.BlockCipher engine,
- int ivLength)
- {
- baseEngine = engine;
-
- this.cipher = new BufferedGenericBlockCipher(engine);
- this.ivLength = ivLength / 8;
- }
-
- protected BaseBlockCipher(
- BufferedBlockCipher engine,
- int ivLength)
- {
- baseEngine = engine.getUnderlyingCipher();
-
- this.cipher = new BufferedGenericBlockCipher(engine);
- this.ivLength = ivLength / 8;
- }
-
- protected int engineGetBlockSize()
- {
- return baseEngine.getBlockSize();
- }
-
- protected byte[] engineGetIV()
- {
- if (aeadParams != null)
- {
- return aeadParams.getNonce();
- }
-
- return (ivParam != null) ? ivParam.getIV() : null;
- }
-
- protected int engineGetKeySize(
- Key key)
- {
- return key.getEncoded().length * 8;
- }
-
- protected int engineGetOutputSize(
- int inputLen)
- {
- return cipher.getOutputSize(inputLen);
- }
-
- protected AlgorithmParameters engineGetParameters()
- {
- if (engineParams == null)
- {
- if (pbeSpec != null)
- {
- try
- {
- engineParams = AlgorithmParameters.getInstance(pbeAlgorithm, BouncyCastleProvider.PROVIDER_NAME);
- engineParams.init(pbeSpec);
- }
- catch (Exception e)
- {
- return null;
- }
- }
- else if (ivParam != null)
- {
- String name = cipher.getUnderlyingCipher().getAlgorithmName();
-
- if (name.indexOf('/') >= 0)
- {
- name = name.substring(0, name.indexOf('/'));
- }
-
- try
- {
- engineParams = AlgorithmParameters.getInstance(name, BouncyCastleProvider.PROVIDER_NAME);
- engineParams.init(ivParam.getIV());
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.toString());
- }
- }
- else if (aeadParams != null)
- {
- try
- {
- engineParams = AlgorithmParameters.getInstance("GCM", BouncyCastleProvider.PROVIDER_NAME);
- engineParams.init(new GCMParameters(aeadParams.getNonce(), aeadParams.getMacSize()).getEncoded());
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.toString());
- }
- }
- }
-
- return engineParams;
- }
-
- protected void engineSetMode(
- String mode)
- throws NoSuchAlgorithmException
- {
- modeName = Strings.toUpperCase(mode);
-
- if (modeName.equals("ECB"))
- {
- ivLength = 0;
- cipher = new BufferedGenericBlockCipher(baseEngine);
- }
- else if (modeName.equals("CBC"))
- {
- ivLength = baseEngine.getBlockSize();
- cipher = new BufferedGenericBlockCipher(
- new CBCBlockCipher(baseEngine));
- }
- else if (modeName.startsWith("OFB"))
- {
- ivLength = baseEngine.getBlockSize();
- if (modeName.length() != 3)
- {
- int wordSize = Integer.parseInt(modeName.substring(3));
-
- cipher = new BufferedGenericBlockCipher(
- new OFBBlockCipher(baseEngine, wordSize));
- }
- else
- {
- cipher = new BufferedGenericBlockCipher(
- new OFBBlockCipher(baseEngine, 8 * baseEngine.getBlockSize()));
- }
- }
- else if (modeName.startsWith("CFB"))
- {
- ivLength = baseEngine.getBlockSize();
- if (modeName.length() != 3)
- {
- int wordSize = Integer.parseInt(modeName.substring(3));
-
- cipher = new BufferedGenericBlockCipher(
- new CFBBlockCipher(baseEngine, wordSize));
- }
- else
- {
- cipher = new BufferedGenericBlockCipher(
- new CFBBlockCipher(baseEngine, 8 * baseEngine.getBlockSize()));
- }
- }
- else if (modeName.startsWith("PGP"))
- {
- boolean inlineIV = modeName.equalsIgnoreCase("PGPCFBwithIV");
-
- ivLength = baseEngine.getBlockSize();
- cipher = new BufferedGenericBlockCipher(
- new PGPCFBBlockCipher(baseEngine, inlineIV));
- }
- else if (modeName.equalsIgnoreCase("OpenPGPCFB"))
- {
- ivLength = 0;
- cipher = new BufferedGenericBlockCipher(
- new OpenPGPCFBBlockCipher(baseEngine));
- }
- else if (modeName.startsWith("SIC"))
- {
- ivLength = baseEngine.getBlockSize();
- if (ivLength < 16)
- {
- throw new IllegalArgumentException("Warning: SIC-Mode can become a twotime-pad if the blocksize of the cipher is too small. Use a cipher with a block size of at least 128 bits (e.g. AES)");
- }
- cipher = new BufferedGenericBlockCipher(new BufferedBlockCipher(
- new SICBlockCipher(baseEngine)));
- }
- else if (modeName.startsWith("CTR"))
- {
- ivLength = baseEngine.getBlockSize();
- cipher = new BufferedGenericBlockCipher(new BufferedBlockCipher(
- new SICBlockCipher(baseEngine)));
- }
- else if (modeName.startsWith("GOFB"))
- {
- ivLength = baseEngine.getBlockSize();
- cipher = new BufferedGenericBlockCipher(new BufferedBlockCipher(
- new GOFBBlockCipher(baseEngine)));
- }
- else if (modeName.startsWith("GCFB"))
- {
- ivLength = baseEngine.getBlockSize();
- cipher = new BufferedGenericBlockCipher(new BufferedBlockCipher(
- new GCFBBlockCipher(baseEngine)));
- }
- else if (modeName.startsWith("CTS"))
- {
- ivLength = baseEngine.getBlockSize();
- cipher = new BufferedGenericBlockCipher(new CTSBlockCipher(new CBCBlockCipher(baseEngine)));
- }
- else if (modeName.startsWith("CCM"))
- {
- ivLength = 13; // CCM nonce 7..13 bytes
- cipher = new AEADGenericBlockCipher(new CCMBlockCipher(baseEngine));
- }
- else if (modeName.startsWith("OCB"))
- {
- if (engineProvider != null)
- {
- /*
- * RFC 7253 4.2. Nonce is a string of no more than 120 bits
- */
- ivLength = 15;
- cipher = new AEADGenericBlockCipher(new OCBBlockCipher(baseEngine, engineProvider.get()));
- }
- else
- {
- throw new NoSuchAlgorithmException("can't support mode " + mode);
- }
- }
- else if (modeName.startsWith("EAX"))
- {
- ivLength = baseEngine.getBlockSize();
- cipher = new AEADGenericBlockCipher(new EAXBlockCipher(baseEngine));
- }
- else if (modeName.startsWith("GCM"))
- {
- ivLength = baseEngine.getBlockSize();
- cipher = new AEADGenericBlockCipher(new GCMBlockCipher(baseEngine));
- }
- else
- {
- throw new NoSuchAlgorithmException("can't support mode " + mode);
- }
- }
-
- protected void engineSetPadding(
- String padding)
- throws NoSuchPaddingException
- {
- String paddingName = Strings.toUpperCase(padding);
-
- if (paddingName.equals("NOPADDING"))
- {
- if (cipher.wrapOnNoPadding())
- {
- cipher = new BufferedGenericBlockCipher(new BufferedBlockCipher(cipher.getUnderlyingCipher()));
- }
- }
- else if (paddingName.equals("WITHCTS"))
- {
- cipher = new BufferedGenericBlockCipher(new CTSBlockCipher(cipher.getUnderlyingCipher()));
- }
- else
- {
- padded = true;
-
- if (isAEADModeName(modeName))
- {
- throw new NoSuchPaddingException("Only NoPadding can be used with AEAD modes.");
- }
- else if (paddingName.equals("PKCS5PADDING") || paddingName.equals("PKCS7PADDING"))
- {
- cipher = new BufferedGenericBlockCipher(cipher.getUnderlyingCipher());
- }
- else if (paddingName.equals("ZEROBYTEPADDING"))
- {
- cipher = new BufferedGenericBlockCipher(cipher.getUnderlyingCipher(), new ZeroBytePadding());
- }
- else if (paddingName.equals("ISO10126PADDING") || paddingName.equals("ISO10126-2PADDING"))
- {
- cipher = new BufferedGenericBlockCipher(cipher.getUnderlyingCipher(), new ISO10126d2Padding());
- }
- else if (paddingName.equals("X9.23PADDING") || paddingName.equals("X923PADDING"))
- {
- cipher = new BufferedGenericBlockCipher(cipher.getUnderlyingCipher(), new X923Padding());
- }
- else if (paddingName.equals("ISO7816-4PADDING") || paddingName.equals("ISO9797-1PADDING"))
- {
- cipher = new BufferedGenericBlockCipher(cipher.getUnderlyingCipher(), new ISO7816d4Padding());
- }
- else if (paddingName.equals("TBCPADDING"))
- {
- cipher = new BufferedGenericBlockCipher(cipher.getUnderlyingCipher(), new TBCPadding());
- }
- else
- {
- throw new NoSuchPaddingException("Padding " + padding + " unknown.");
- }
- }
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- AlgorithmParameterSpec params,
- SecureRandom random)
- throws InvalidKeyException, InvalidAlgorithmParameterException
- {
- CipherParameters param;
-
- this.pbeSpec = null;
- this.pbeAlgorithm = null;
- this.engineParams = null;
- this.aeadParams = null;
-
- //
- // basic key check
- //
- if (!(key instanceof SecretKey))
- {
- 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.");
- }
-
- //
- // a note on iv's - if ivLength is zero the IV gets ignored (we don't use it).
- //
- if (key instanceof BCPBEKey)
- {
- BCPBEKey k = (BCPBEKey)key;
-
- if (k.getOID() != null)
- {
- pbeAlgorithm = k.getOID().getId();
- }
- else
- {
- pbeAlgorithm = k.getAlgorithm();
- }
-
- if (k.getParam() != null)
- {
- param = k.getParam();
- if (params instanceof IvParameterSpec)
- {
- IvParameterSpec iv = (IvParameterSpec)params;
-
- param = new ParametersWithIV(param, iv.getIV());
- }
- else if (params instanceof GOST28147ParameterSpec)
- {
- // need to pick up IV and SBox.
- GOST28147ParameterSpec gost28147Param = (GOST28147ParameterSpec)params;
-
- param = new ParametersWithSBox(param, gost28147Param.getSbox());
-
- if (gost28147Param.getIV() != null && ivLength != 0)
- {
- param = new ParametersWithIV(param, gost28147Param.getIV());
- }
- }
- }
- else if (params instanceof PBEParameterSpec)
- {
- pbeSpec = (PBEParameterSpec)params;
- param = PBE.Util.makePBEParameters(k, params, cipher.getUnderlyingCipher().getAlgorithmName());
- }
- else
- {
- throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");
- }
-
- if (param instanceof ParametersWithIV)
- {
- ivParam = (ParametersWithIV)param;
- }
- }
- else if (params == null)
- {
- param = new KeyParameter(key.getEncoded());
- }
- else if (params instanceof IvParameterSpec)
- {
- if (ivLength != 0)
- {
- IvParameterSpec p = (IvParameterSpec)params;
-
- if (p.getIV().length != ivLength && !isAEADModeName(modeName))
- {
- throw new InvalidAlgorithmParameterException("IV must be " + ivLength + " bytes long.");
- }
-
- if (key instanceof RepeatedSecretKeySpec)
- {
- param = new ParametersWithIV(null, p.getIV());
- ivParam = (ParametersWithIV)param;
- }
- else
- {
- param = new ParametersWithIV(new KeyParameter(key.getEncoded()), p.getIV());
- ivParam = (ParametersWithIV)param;
- }
- }
- else
- {
- if (modeName != null && modeName.equals("ECB"))
- {
- throw new InvalidAlgorithmParameterException("ECB mode does not use an IV");
- }
-
- param = new KeyParameter(key.getEncoded());
- }
- }
- else if (params instanceof GOST28147ParameterSpec)
- {
- GOST28147ParameterSpec gost28147Param = (GOST28147ParameterSpec)params;
-
- param = new ParametersWithSBox(
- new KeyParameter(key.getEncoded()), ((GOST28147ParameterSpec)params).getSbox());
-
- if (gost28147Param.getIV() != null && ivLength != 0)
- {
- param = new ParametersWithIV(param, gost28147Param.getIV());
- 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;
- }
- }
- else if (gcmSpecClass != null && gcmSpecClass.isInstance(params))
- {
- if (!isAEADModeName(modeName) && !(cipher instanceof AEADGenericBlockCipher))
- {
- throw new InvalidAlgorithmParameterException("GCMParameterSpec can only be used with AEAD modes.");
- }
-
- try
- {
- Method tLen = gcmSpecClass.getDeclaredMethod("getTLen", new Class[0]);
- Method iv= gcmSpecClass.getDeclaredMethod("getIV", new Class[0]);
-
- if (key instanceof RepeatedSecretKeySpec)
- {
- param = aeadParams = new AEADParameters(null, ((Integer)tLen.invoke(params, new Object[0])).intValue(), (byte[])iv.invoke(params, new Object[0]));
- }
- else
- {
- param = aeadParams = new AEADParameters(new KeyParameter(key.getEncoded()), ((Integer)tLen.invoke(params, new Object[0])).intValue(), (byte[])iv.invoke(params, new Object[0]));
- }
- }
- catch (Exception e)
- {
- throw new InvalidAlgorithmParameterException("Cannot process GCMParameterSpec.");
- }
- }
- else
- {
- throw new InvalidAlgorithmParameterException("unknown parameter type.");
- }
-
- if ((ivLength != 0) && !(param instanceof ParametersWithIV) && !(param instanceof AEADParameters))
- {
- SecureRandom ivRandom = random;
-
- if (ivRandom == null)
- {
- ivRandom = new SecureRandom();
- }
-
- if ((opmode == Cipher.ENCRYPT_MODE) || (opmode == Cipher.WRAP_MODE))
- {
- byte[] iv = new byte[ivLength];
-
- ivRandom.nextBytes(iv);
- param = new ParametersWithIV(param, iv);
- ivParam = (ParametersWithIV)param;
- }
- else if (cipher.getUnderlyingCipher().getAlgorithmName().indexOf("PGPCFB") < 0)
- {
- throw new InvalidAlgorithmParameterException("no IV set when one expected");
- }
- }
-
- if (random != null && padded)
- {
- param = new ParametersWithRandom(param, random);
- }
-
- try
- {
- switch (opmode)
- {
- case Cipher.ENCRYPT_MODE:
- case Cipher.WRAP_MODE:
- cipher.init(true, param);
- break;
- case Cipher.DECRYPT_MODE:
- case Cipher.UNWRAP_MODE:
- cipher.init(false, param);
- break;
- default:
- throw new InvalidParameterException("unknown opmode " + opmode + " passed");
- }
- }
- catch (Exception e)
- {
- throw new InvalidKeyException(e.getMessage());
- }
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- AlgorithmParameters params,
- SecureRandom random)
- throws InvalidKeyException, InvalidAlgorithmParameterException
- {
- AlgorithmParameterSpec paramSpec = null;
-
- if (params != null)
- {
- for (int i = 0; i != availableSpecs.length; i++)
- {
- if (availableSpecs[i] == null)
- {
- continue;
- }
-
- try
- {
- paramSpec = params.getParameterSpec(availableSpecs[i]);
- break;
- }
- catch (Exception e)
- {
- // try again if possible
- }
- }
-
- if (paramSpec == null)
- {
- throw new InvalidAlgorithmParameterException("can't handle parameter " + params.toString());
- }
- }
-
- engineInit(opmode, key, paramSpec, random);
-
- engineParams = params;
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- SecureRandom random)
- throws InvalidKeyException
- {
- try
- {
- engineInit(opmode, key, (AlgorithmParameterSpec)null, random);
- }
- catch (InvalidAlgorithmParameterException e)
- {
- throw new InvalidKeyException(e.getMessage());
- }
- }
-
- protected void engineUpdateAAD(byte[] input, int offset, int length)
- {
- cipher.updateAAD(input, offset, length);
- }
-
- protected void engineUpdateAAD(ByteBuffer bytebuffer)
- {
- int offset = bytebuffer.arrayOffset() + bytebuffer.position();
- int length = bytebuffer.limit() - bytebuffer.position();
- engineUpdateAAD(bytebuffer.array(), offset, length);
- }
-
- protected byte[] engineUpdate(
- byte[] input,
- int inputOffset,
- int inputLen)
- {
- int length = cipher.getUpdateOutputSize(inputLen);
-
- if (length > 0)
- {
- byte[] out = new byte[length];
-
- int len = cipher.processBytes(input, inputOffset, inputLen, out, 0);
-
- if (len == 0)
- {
- return null;
- }
- else if (len != out.length)
- {
- byte[] tmp = new byte[len];
-
- System.arraycopy(out, 0, tmp, 0, len);
-
- return tmp;
- }
-
- return out;
- }
-
- cipher.processBytes(input, inputOffset, inputLen, null, 0);
-
- return null;
- }
-
- protected int engineUpdate(
- byte[] input,
- int inputOffset,
- int inputLen,
- byte[] output,
- int outputOffset)
- throws ShortBufferException
- {
- try
- {
- return cipher.processBytes(input, inputOffset, inputLen, output, outputOffset);
- }
- catch (DataLengthException e)
- {
- throw new ShortBufferException(e.getMessage());
- }
- }
-
- protected byte[] engineDoFinal(
- byte[] input,
- int inputOffset,
- int inputLen)
- throws IllegalBlockSizeException, BadPaddingException
- {
- int len = 0;
- byte[] tmp = new byte[engineGetOutputSize(inputLen)];
-
- if (inputLen != 0)
- {
- len = cipher.processBytes(input, inputOffset, inputLen, tmp, 0);
- }
-
- try
- {
- len += cipher.doFinal(tmp, len);
- }
- catch (DataLengthException e)
- {
- throw new IllegalBlockSizeException(e.getMessage());
- }
-
- if (len == tmp.length)
- {
- return tmp;
- }
-
- byte[] out = new byte[len];
-
- System.arraycopy(tmp, 0, out, 0, len);
-
- return out;
- }
-
- protected int engineDoFinal(
- byte[] input,
- int inputOffset,
- int inputLen,
- byte[] output,
- int outputOffset)
- throws IllegalBlockSizeException, BadPaddingException, ShortBufferException
- {
- try
- {
- int len = 0;
-
- if (inputLen != 0)
- {
- len = cipher.processBytes(input, inputOffset, inputLen, output, outputOffset);
- }
-
- return (len + cipher.doFinal(output, outputOffset + len));
- }
- catch (OutputLengthException e)
- {
- throw new ShortBufferException(e.getMessage());
- }
- catch (DataLengthException e)
- {
- throw new IllegalBlockSizeException(e.getMessage());
- }
- }
-
- private boolean isAEADModeName(
- String modeName)
- {
- return "CCM".equals(modeName) || "EAX".equals(modeName) || "GCM".equals(modeName) || "OCB".equals(modeName);
- }
-
- /*
- * The ciphers that inherit from us.
- */
-
- static private interface GenericBlockCipher
- {
- public void init(boolean forEncryption, CipherParameters params)
- throws IllegalArgumentException;
-
- public boolean wrapOnNoPadding();
-
- public String getAlgorithmName();
-
- public org.bouncycastle.crypto.BlockCipher getUnderlyingCipher();
-
- public int getOutputSize(int len);
-
- public int getUpdateOutputSize(int len);
-
- public void updateAAD(byte[] input, int offset, int length);
-
- public int processByte(byte in, byte[] out, int outOff)
- throws DataLengthException;
-
- public int processBytes(byte[] in, int inOff, int len, byte[] out, int outOff)
- throws DataLengthException;
-
- public int doFinal(byte[] out, int outOff)
- throws IllegalStateException,
- BadPaddingException;
- }
-
- private static class BufferedGenericBlockCipher
- implements GenericBlockCipher
- {
- private BufferedBlockCipher cipher;
-
- BufferedGenericBlockCipher(BufferedBlockCipher cipher)
- {
- this.cipher = cipher;
- }
-
- BufferedGenericBlockCipher(org.bouncycastle.crypto.BlockCipher cipher)
- {
- this.cipher = new PaddedBufferedBlockCipher(cipher);
- }
-
- BufferedGenericBlockCipher(org.bouncycastle.crypto.BlockCipher cipher, BlockCipherPadding padding)
- {
- this.cipher = new PaddedBufferedBlockCipher(cipher, padding);
- }
-
- public void init(boolean forEncryption, CipherParameters params)
- throws IllegalArgumentException
- {
- cipher.init(forEncryption, params);
- }
-
- public boolean wrapOnNoPadding()
- {
- return !(cipher instanceof CTSBlockCipher);
- }
-
- public String getAlgorithmName()
- {
- return cipher.getUnderlyingCipher().getAlgorithmName();
- }
-
- public org.bouncycastle.crypto.BlockCipher getUnderlyingCipher()
- {
- return cipher.getUnderlyingCipher();
- }
-
- public int getOutputSize(int len)
- {
- return cipher.getOutputSize(len);
- }
-
- public int getUpdateOutputSize(int len)
- {
- return cipher.getUpdateOutputSize(len);
- }
-
- public void updateAAD(byte[] input, int offset, int length)
- {
- throw new UnsupportedOperationException("AAD is not supported in the current mode.");
- }
-
- public int processByte(byte in, byte[] out, int outOff) throws DataLengthException
- {
- return cipher.processByte(in, out, outOff);
- }
-
- public int processBytes(byte[] in, int inOff, int len, byte[] out, int outOff) throws DataLengthException
- {
- return cipher.processBytes(in, inOff, len, out, outOff);
- }
-
- public int doFinal(byte[] out, int outOff) throws IllegalStateException, BadPaddingException
- {
- try
- {
- return cipher.doFinal(out, outOff);
- }
- catch (InvalidCipherTextException e)
- {
- throw new BadPaddingException(e.getMessage());
- }
- }
- }
-
- private static class AEADGenericBlockCipher
- implements GenericBlockCipher
- {
- private static final Constructor aeadBadTagConstructor;
-
- static {
- Class aeadBadTagClass = lookup("javax.crypto.AEADBadTagException");
- if (aeadBadTagClass != null)
- {
- aeadBadTagConstructor = findExceptionConstructor(aeadBadTagClass);
- }
- else
- {
- aeadBadTagConstructor = null;
- }
- }
-
- private static Constructor findExceptionConstructor(Class clazz)
- {
- try
- {
- return clazz.getConstructor(new Class[]{String.class});
- }
- catch (Exception e)
- {
- return null;
- }
- }
-
- private AEADBlockCipher cipher;
-
- AEADGenericBlockCipher(AEADBlockCipher cipher)
- {
- this.cipher = cipher;
- }
-
- public void init(boolean forEncryption, CipherParameters params)
- throws IllegalArgumentException
- {
- cipher.init(forEncryption, params);
- }
-
- public String getAlgorithmName()
- {
- return cipher.getUnderlyingCipher().getAlgorithmName();
- }
-
- public boolean wrapOnNoPadding()
- {
- return false;
- }
-
- public org.bouncycastle.crypto.BlockCipher getUnderlyingCipher()
- {
- return cipher.getUnderlyingCipher();
- }
-
- public int getOutputSize(int len)
- {
- return cipher.getOutputSize(len);
- }
-
- public int getUpdateOutputSize(int len)
- {
- return cipher.getUpdateOutputSize(len);
- }
-
- public void updateAAD(byte[] input, int offset, int length)
- {
- cipher.processAADBytes(input, offset, length);
- }
-
- public int processByte(byte in, byte[] out, int outOff) throws DataLengthException
- {
- return cipher.processByte(in, out, outOff);
- }
-
- public int processBytes(byte[] in, int inOff, int len, byte[] out, int outOff) throws DataLengthException
- {
- return cipher.processBytes(in, inOff, len, out, outOff);
- }
-
- public int doFinal(byte[] out, int outOff) throws IllegalStateException, BadPaddingException
- {
- try
- {
- return cipher.doFinal(out, outOff);
- }
- catch (InvalidCipherTextException e)
- {
- if (aeadBadTagConstructor != null)
- {
- BadPaddingException aeadBadTag = null;
- try
- {
- aeadBadTag = (BadPaddingException)aeadBadTagConstructor
- .newInstance(new Object[]{e.getMessage()});
- }
- catch (Exception i)
- {
- // Shouldn't happen, but fall through to BadPaddingException
- }
- if (aeadBadTag != null)
- {
- throw aeadBadTag;
- }
- }
- throw new BadPaddingException(e.getMessage());
- }
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseKeyGenerator.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseKeyGenerator.java
deleted file mode 100644
index 12d2b851..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseKeyGenerator.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidParameterException;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.KeyGeneratorSpi;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-
-import org.bouncycastle.crypto.CipherKeyGenerator;
-import org.bouncycastle.crypto.KeyGenerationParameters;
-
-public class BaseKeyGenerator
- extends KeyGeneratorSpi
-{
- protected String algName;
- protected int keySize;
- protected int defaultKeySize;
- protected CipherKeyGenerator engine;
-
- protected boolean uninitialised = true;
-
- protected BaseKeyGenerator(
- String algName,
- int defaultKeySize,
- CipherKeyGenerator engine)
- {
- this.algName = algName;
- this.keySize = this.defaultKeySize = defaultKeySize;
- this.engine = engine;
- }
-
- protected void engineInit(
- AlgorithmParameterSpec params,
- SecureRandom random)
- throws InvalidAlgorithmParameterException
- {
- throw new InvalidAlgorithmParameterException("Not Implemented");
- }
-
- protected void engineInit(
- SecureRandom random)
- {
- if (random != null)
- {
- engine.init(new KeyGenerationParameters(random, defaultKeySize));
- uninitialised = false;
- }
- }
-
- protected void engineInit(
- int keySize,
- SecureRandom random)
- {
- try
- {
- if (random == null)
- {
- random = new SecureRandom();
- }
- engine.init(new KeyGenerationParameters(random, keySize));
- uninitialised = false;
- }
- catch (IllegalArgumentException e)
- {
- throw new InvalidParameterException(e.getMessage());
- }
- }
-
- protected SecretKey engineGenerateKey()
- {
- if (uninitialised)
- {
- engine.init(new KeyGenerationParameters(new SecureRandom(), defaultKeySize));
- uninitialised = false;
- }
-
- return new SecretKeySpec(engine.generateKey(), algName);
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseMac.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseMac.java
deleted file mode 100644
index 270d6486..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseMac.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.Key;
-import java.security.spec.AlgorithmParameterSpec;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.crypto.MacSpi;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.PBEParameterSpec;
-
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.Mac;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.ParametersWithIV;
-import org.bouncycastle.crypto.params.SkeinParameters;
-import org.bouncycastle.jcajce.spec.SkeinParameterSpec;
-
-public class BaseMac
- extends MacSpi implements PBE
-{
- private Mac macEngine;
-
- private int pbeType = PKCS12;
- private int pbeHash = SHA1;
- private int keySize = 160;
-
- protected BaseMac(
- Mac macEngine)
- {
- this.macEngine = macEngine;
- }
-
- protected BaseMac(
- Mac macEngine,
- int pbeType,
- int pbeHash,
- int keySize)
- {
- this.macEngine = macEngine;
- this.pbeType = pbeType;
- this.pbeHash = pbeHash;
- this.keySize = keySize;
- }
-
- protected void engineInit(
- Key key,
- AlgorithmParameterSpec params)
- throws InvalidKeyException, InvalidAlgorithmParameterException
- {
- CipherParameters param;
-
- if (key == null)
- {
- throw new InvalidKeyException("key is null");
- }
-
- if (key instanceof BCPBEKey)
- {
- BCPBEKey k = (BCPBEKey)key;
-
- if (k.getParam() != null)
- {
- param = k.getParam();
- }
- else if (params instanceof PBEParameterSpec)
- {
- param = PBE.Util.makePBEMacParameters(k, params);
- }
- else
- {
- throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");
- }
- }
- else if (params instanceof IvParameterSpec)
- {
- param = new ParametersWithIV(new KeyParameter(key.getEncoded()), ((IvParameterSpec)params).getIV());
- }
- else if (params instanceof SkeinParameterSpec)
- {
- param = new SkeinParameters.Builder(copyMap(((SkeinParameterSpec)params).getParameters())).setKey(key.getEncoded()).build();
- }
- else if (params == null)
- {
- param = new KeyParameter(key.getEncoded());
- }
- else
- {
- throw new InvalidAlgorithmParameterException("unknown parameter type.");
- }
-
- macEngine.init(param);
- }
-
- protected int engineGetMacLength()
- {
- return macEngine.getMacSize();
- }
-
- protected void engineReset()
- {
- macEngine.reset();
- }
-
- protected void engineUpdate(
- byte input)
- {
- macEngine.update(input);
- }
-
- protected void engineUpdate(
- byte[] input,
- int offset,
- int len)
- {
- macEngine.update(input, offset, len);
- }
-
- protected byte[] engineDoFinal()
- {
- byte[] out = new byte[engineGetMacLength()];
-
- macEngine.doFinal(out, 0);
-
- return out;
- }
-
- private static Hashtable copyMap(Map paramsMap)
- {
- Hashtable newTable = new Hashtable();
-
- Iterator keys = paramsMap.keySet().iterator();
- while (keys.hasNext())
- {
- Object key = keys.next();
- newTable.put(key, paramsMap.get(key));
- }
-
- return newTable;
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory.java
deleted file mode 100644
index 31896cd2..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.lang.reflect.Constructor;
-import java.security.InvalidKeyException;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.KeySpec;
-
-import javax.crypto.SecretKey;
-import javax.crypto.SecretKeyFactorySpi;
-import javax.crypto.spec.SecretKeySpec;
-
-import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-
-public class BaseSecretKeyFactory
- extends SecretKeyFactorySpi
- implements PBE
-{
- protected String algName;
- protected ASN1ObjectIdentifier algOid;
-
- protected BaseSecretKeyFactory(
- String algName,
- ASN1ObjectIdentifier algOid)
- {
- this.algName = algName;
- this.algOid = algOid;
- }
-
- protected SecretKey engineGenerateSecret(
- KeySpec keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec instanceof SecretKeySpec)
- {
- return (SecretKey)keySpec;
- }
-
- throw new InvalidKeySpecException("Invalid KeySpec");
- }
-
- protected KeySpec engineGetKeySpec(
- SecretKey key,
- Class keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec == null)
- {
- throw new InvalidKeySpecException("keySpec parameter is null");
- }
- if (key == null)
- {
- throw new InvalidKeySpecException("key parameter is null");
- }
-
- if (SecretKeySpec.class.isAssignableFrom(keySpec))
- {
- return new SecretKeySpec(key.getEncoded(), algName);
- }
-
- try
- {
- Class[] parameters = { byte[].class };
-
- Constructor c = keySpec.getConstructor(parameters);
- Object[] p = new Object[1];
-
- p[0] = key.getEncoded();
-
- return (KeySpec)c.newInstance(p);
- }
- catch (Exception e)
- {
- throw new InvalidKeySpecException(e.toString());
- }
- }
-
- protected SecretKey engineTranslateKey(
- SecretKey key)
- throws InvalidKeyException
- {
- if (key == null)
- {
- throw new InvalidKeyException("key parameter is null");
- }
-
- if (!key.getAlgorithm().equalsIgnoreCase(algName))
- {
- throw new InvalidKeyException("Key not of type " + algName + ".");
- }
-
- return new SecretKeySpec(key.getEncoded(), algName);
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseStreamCipher.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseStreamCipher.java
deleted file mode 100644
index f376aa2c..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseStreamCipher.java
+++ /dev/null
@@ -1,359 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.InvalidParameterException;
-import java.security.Key;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.Cipher;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
-import javax.crypto.ShortBufferException;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.PBEParameterSpec;
-import javax.crypto.spec.RC2ParameterSpec;
-import javax.crypto.spec.RC5ParameterSpec;
-
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.DataLengthException;
-import org.bouncycastle.crypto.StreamCipher;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.ParametersWithIV;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public class BaseStreamCipher
- extends BaseWrapCipher
- implements PBE
-{
- //
- // specs we can handle.
- //
- private Class[] availableSpecs =
- {
- RC2ParameterSpec.class,
- RC5ParameterSpec.class,
- IvParameterSpec.class,
- PBEParameterSpec.class
- };
-
- private StreamCipher cipher;
- private ParametersWithIV ivParam;
-
- private int ivLength = 0;
-
- private PBEParameterSpec pbeSpec = null;
- private String pbeAlgorithm = null;
-
- protected BaseStreamCipher(
- StreamCipher engine,
- int ivLength)
- {
- cipher = engine;
- this.ivLength = ivLength;
- }
-
- protected int engineGetBlockSize()
- {
- return 0;
- }
-
- protected byte[] engineGetIV()
- {
- return (ivParam != null) ? ivParam.getIV() : null;
- }
-
- protected int engineGetKeySize(
- Key key)
- {
- return key.getEncoded().length * 8;
- }
-
- protected int engineGetOutputSize(
- int inputLen)
- {
- return inputLen;
- }
-
- protected AlgorithmParameters engineGetParameters()
- {
- if (engineParams == null)
- {
- if (pbeSpec != null)
- {
- try
- {
- AlgorithmParameters engineParams = AlgorithmParameters.getInstance(pbeAlgorithm, BouncyCastleProvider.PROVIDER_NAME);
- engineParams.init(pbeSpec);
-
- return engineParams;
- }
- catch (Exception e)
- {
- return null;
- }
- }
- }
-
- return engineParams;
- }
-
- /**
- * should never be called.
- */
- protected void engineSetMode(
- String mode)
- {
- if (!mode.equalsIgnoreCase("ECB"))
- {
- throw new IllegalArgumentException("can't support mode " + mode);
- }
- }
-
- /**
- * should never be called.
- */
- protected void engineSetPadding(
- String padding)
- throws NoSuchPaddingException
- {
- if (!padding.equalsIgnoreCase("NoPadding"))
- {
- throw new NoSuchPaddingException("Padding " + padding + " unknown.");
- }
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- AlgorithmParameterSpec params,
- SecureRandom random)
- throws InvalidKeyException, InvalidAlgorithmParameterException
- {
- CipherParameters param;
-
- this.pbeSpec = null;
- this.pbeAlgorithm = null;
-
- this.engineParams = null;
-
- //
- // basic key check
- //
- if (!(key instanceof SecretKey))
- {
- throw new InvalidKeyException("Key for algorithm " + key.getAlgorithm() + " not suitable for symmetric enryption.");
- }
-
- if (key instanceof BCPBEKey)
- {
- BCPBEKey k = (BCPBEKey)key;
-
- if (k.getOID() != null)
- {
- pbeAlgorithm = k.getOID().getId();
- }
- else
- {
- pbeAlgorithm = k.getAlgorithm();
- }
-
- if (k.getParam() != null)
- {
- param = k.getParam();
- pbeSpec = new PBEParameterSpec(k.getSalt(), k.getIterationCount());
- }
- else if (params instanceof PBEParameterSpec)
- {
- param = PBE.Util.makePBEParameters(k, params, cipher.getAlgorithmName());
- pbeSpec = (PBEParameterSpec)params;
- }
- else
- {
- throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");
- }
-
- if (k.getIvSize() != 0)
- {
- ivParam = (ParametersWithIV)param;
- }
- }
- else if (params == null)
- {
- param = new KeyParameter(key.getEncoded());
- }
- else if (params instanceof IvParameterSpec)
- {
- param = new ParametersWithIV(new KeyParameter(key.getEncoded()), ((IvParameterSpec)params).getIV());
- ivParam = (ParametersWithIV)param;
- }
- else
- {
- throw new InvalidAlgorithmParameterException("unknown parameter type.");
- }
-
- if ((ivLength != 0) && !(param instanceof ParametersWithIV))
- {
- SecureRandom ivRandom = random;
-
- if (ivRandom == null)
- {
- ivRandom = new SecureRandom();
- }
-
- if ((opmode == Cipher.ENCRYPT_MODE) || (opmode == Cipher.WRAP_MODE))
- {
- byte[] iv = new byte[ivLength];
-
- ivRandom.nextBytes(iv);
- param = new ParametersWithIV(param, iv);
- ivParam = (ParametersWithIV)param;
- }
- else
- {
- throw new InvalidAlgorithmParameterException("no IV set when one expected");
- }
- }
-
- try
- {
- switch (opmode)
- {
- case Cipher.ENCRYPT_MODE:
- case Cipher.WRAP_MODE:
- cipher.init(true, param);
- break;
- case Cipher.DECRYPT_MODE:
- case Cipher.UNWRAP_MODE:
- cipher.init(false, param);
- break;
- default:
- throw new InvalidParameterException("unknown opmode " + opmode + " passed");
- }
- }
- catch (Exception e)
- {
- throw new InvalidKeyException(e.getMessage());
- }
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- AlgorithmParameters params,
- SecureRandom random)
- throws InvalidKeyException, InvalidAlgorithmParameterException
- {
- AlgorithmParameterSpec paramSpec = null;
-
- if (params != null)
- {
- for (int i = 0; i != availableSpecs.length; i++)
- {
- try
- {
- paramSpec = params.getParameterSpec(availableSpecs[i]);
- break;
- }
- catch (Exception e)
- {
- continue;
- }
- }
-
- if (paramSpec == null)
- {
- throw new InvalidAlgorithmParameterException("can't handle parameter " + params.toString());
- }
- }
-
- engineInit(opmode, key, paramSpec, random);
- engineParams = params;
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- SecureRandom random)
- throws InvalidKeyException
- {
- try
- {
- engineInit(opmode, key, (AlgorithmParameterSpec)null, random);
- }
- catch (InvalidAlgorithmParameterException e)
- {
- throw new InvalidKeyException(e.getMessage());
- }
- }
-
- protected byte[] engineUpdate(
- byte[] input,
- int inputOffset,
- int inputLen)
- {
- byte[] out = new byte[inputLen];
-
- cipher.processBytes(input, inputOffset, inputLen, out, 0);
-
- return out;
- }
-
- protected int engineUpdate(
- byte[] input,
- int inputOffset,
- int inputLen,
- byte[] output,
- int outputOffset)
- throws ShortBufferException
- {
- try
- {
- cipher.processBytes(input, inputOffset, inputLen, output, outputOffset);
-
- return inputLen;
- }
- catch (DataLengthException e)
- {
- throw new ShortBufferException(e.getMessage());
- }
- }
-
- protected byte[] engineDoFinal(
- byte[] input,
- int inputOffset,
- int inputLen)
- {
- if (inputLen != 0)
- {
- byte[] out = engineUpdate(input, inputOffset, inputLen);
-
- cipher.reset();
-
- return out;
- }
-
- cipher.reset();
-
- return new byte[0];
- }
-
- protected int engineDoFinal(
- byte[] input,
- int inputOffset,
- int inputLen,
- byte[] output,
- int outputOffset)
- {
- if (inputLen != 0)
- {
- cipher.processBytes(input, inputOffset, inputLen, output, outputOffset);
- }
-
- cipher.reset();
-
- return inputLen;
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher.java
deleted file mode 100644
index 42ab6217..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher.java
+++ /dev/null
@@ -1,394 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.security.AlgorithmParameters;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.Key;
-import java.security.KeyFactory;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.PrivateKey;
-import java.security.SecureRandom;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.PKCS8EncodedKeySpec;
-import java.security.spec.X509EncodedKeySpec;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.CipherSpi;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.ShortBufferException;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.PBEParameterSpec;
-import javax.crypto.spec.RC2ParameterSpec;
-import javax.crypto.spec.RC5ParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-
-import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.InvalidCipherTextException;
-import org.bouncycastle.crypto.Wrapper;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.ParametersWithIV;
-import org.bouncycastle.crypto.params.ParametersWithRandom;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-public abstract class BaseWrapCipher
- extends CipherSpi
- implements PBE
-{
- //
- // specs we can handle.
- //
- private Class[] availableSpecs =
- {
- IvParameterSpec.class,
- PBEParameterSpec.class,
- RC2ParameterSpec.class,
- RC5ParameterSpec.class
- };
-
- protected int pbeType = PKCS12;
- protected int pbeHash = SHA1;
- protected int pbeKeySize;
- protected int pbeIvSize;
-
- protected AlgorithmParameters engineParams = null;
-
- protected Wrapper wrapEngine = null;
-
- private int ivSize;
- private byte[] iv;
-
- protected BaseWrapCipher()
- {
- }
-
- protected BaseWrapCipher(
- Wrapper wrapEngine)
- {
- this(wrapEngine, 0);
- }
-
- protected BaseWrapCipher(
- Wrapper wrapEngine,
- int ivSize)
- {
- this.wrapEngine = wrapEngine;
- this.ivSize = ivSize;
- }
-
- protected int engineGetBlockSize()
- {
- return 0;
- }
-
- protected byte[] engineGetIV()
- {
- return (byte[])iv.clone();
- }
-
- protected int engineGetKeySize(
- Key key)
- {
- return key.getEncoded().length;
- }
-
- protected int engineGetOutputSize(
- int inputLen)
- {
- return -1;
- }
-
- protected AlgorithmParameters engineGetParameters()
- {
- return null;
- }
-
- protected void engineSetMode(
- String mode)
- throws NoSuchAlgorithmException
- {
- throw new NoSuchAlgorithmException("can't support mode " + mode);
- }
-
- protected void engineSetPadding(
- String padding)
- throws NoSuchPaddingException
- {
- throw new NoSuchPaddingException("Padding " + padding + " unknown.");
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- AlgorithmParameterSpec params,
- SecureRandom random)
- throws InvalidKeyException, InvalidAlgorithmParameterException
- {
- CipherParameters param;
-
- if (key instanceof BCPBEKey)
- {
- BCPBEKey k = (BCPBEKey)key;
-
- if (params instanceof PBEParameterSpec)
- {
- param = PBE.Util.makePBEParameters(k, params, wrapEngine.getAlgorithmName());
- }
- else if (k.getParam() != null)
- {
- param = k.getParam();
- }
- else
- {
- throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");
- }
- }
- else
- {
- param = new KeyParameter(key.getEncoded());
- }
-
- if (params instanceof IvParameterSpec)
- {
- IvParameterSpec iv = (IvParameterSpec) params;
- param = new ParametersWithIV(param, iv.getIV());
- }
-
- if (param instanceof KeyParameter && ivSize != 0)
- {
- iv = new byte[ivSize];
- random.nextBytes(iv);
- param = new ParametersWithIV(param, iv);
- }
-
- if (random != null)
- {
- param = new ParametersWithRandom(param, random);
- }
-
- switch (opmode)
- {
- case Cipher.WRAP_MODE:
- wrapEngine.init(true, param);
- break;
- case Cipher.UNWRAP_MODE:
- wrapEngine.init(false, param);
- break;
- case Cipher.ENCRYPT_MODE:
- case Cipher.DECRYPT_MODE:
- throw new IllegalArgumentException("engine only valid for wrapping");
- default:
- System.out.println("eeek!");
- }
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- AlgorithmParameters params,
- SecureRandom random)
- throws InvalidKeyException, InvalidAlgorithmParameterException
- {
- AlgorithmParameterSpec paramSpec = null;
-
- if (params != null)
- {
- for (int i = 0; i != availableSpecs.length; i++)
- {
- try
- {
- paramSpec = params.getParameterSpec(availableSpecs[i]);
- break;
- }
- catch (Exception e)
- {
- // try next spec
- }
- }
-
- if (paramSpec == null)
- {
- throw new InvalidAlgorithmParameterException("can't handle parameter " + params.toString());
- }
- }
-
- engineParams = params;
- engineInit(opmode, key, paramSpec, random);
- }
-
- protected void engineInit(
- int opmode,
- Key key,
- SecureRandom random)
- throws InvalidKeyException
- {
- try
- {
- engineInit(opmode, key, (AlgorithmParameterSpec)null, random);
- }
- catch (InvalidAlgorithmParameterException e)
- {
- throw new IllegalArgumentException(e.getMessage());
- }
- }
-
- protected byte[] engineUpdate(
- byte[] input,
- int inputOffset,
- int inputLen)
- {
- throw new RuntimeException("not supported for wrapping");
- }
-
- protected int engineUpdate(
- byte[] input,
- int inputOffset,
- int inputLen,
- byte[] output,
- int outputOffset)
- throws ShortBufferException
- {
- throw new RuntimeException("not supported for wrapping");
- }
-
- protected byte[] engineDoFinal(
- byte[] input,
- int inputOffset,
- int inputLen)
- throws IllegalBlockSizeException, BadPaddingException
- {
- return null;
- }
-
- protected int engineDoFinal(
- byte[] input,
- int inputOffset,
- int inputLen,
- byte[] output,
- int outputOffset)
- throws IllegalBlockSizeException, BadPaddingException, ShortBufferException
- {
- return 0;
- }
-
- protected byte[] engineWrap(
- Key key)
- throws IllegalBlockSizeException, InvalidKeyException
- {
- byte[] encoded = key.getEncoded();
- if (encoded == null)
- {
- throw new InvalidKeyException("Cannot wrap key, null encoding.");
- }
-
- try
- {
- if (wrapEngine == null)
- {
- return engineDoFinal(encoded, 0, encoded.length);
- }
- else
- {
- return wrapEngine.wrap(encoded, 0, encoded.length);
- }
- }
- catch (BadPaddingException e)
- {
- throw new IllegalBlockSizeException(e.getMessage());
- }
- }
-
- protected Key engineUnwrap(
- byte[] wrappedKey,
- String wrappedKeyAlgorithm,
- int wrappedKeyType)
- throws InvalidKeyException, NoSuchAlgorithmException
- {
- byte[] encoded;
- try
- {
- if (wrapEngine == null)
- {
- encoded = engineDoFinal(wrappedKey, 0, wrappedKey.length);
- }
- else
- {
- encoded = wrapEngine.unwrap(wrappedKey, 0, wrappedKey.length);
- }
- }
- catch (InvalidCipherTextException e)
- {
- throw new InvalidKeyException(e.getMessage());
- }
- catch (BadPaddingException e)
- {
- throw new InvalidKeyException(e.getMessage());
- }
- catch (IllegalBlockSizeException e2)
- {
- throw new InvalidKeyException(e2.getMessage());
- }
-
- if (wrappedKeyType == Cipher.SECRET_KEY)
- {
- return new SecretKeySpec(encoded, wrappedKeyAlgorithm);
- }
- else if (wrappedKeyAlgorithm.equals("") && wrappedKeyType == Cipher.PRIVATE_KEY)
- {
- /*
- * The caller doesn't know the algorithm as it is part of
- * the encrypted data.
- */
- try
- {
- PrivateKeyInfo in = PrivateKeyInfo.getInstance(encoded);
-
- PrivateKey privKey = BouncyCastleProvider.getPrivateKey(in);
-
- if (privKey != null)
- {
- return privKey;
- }
- else
- {
- throw new InvalidKeyException("algorithm " + in.getPrivateKeyAlgorithm().getAlgorithm() + " not supported");
- }
- }
- catch (Exception e)
- {
- throw new InvalidKeyException("Invalid key encoding.");
- }
- }
- else
- {
- try
- {
- KeyFactory kf = KeyFactory.getInstance(wrappedKeyAlgorithm, BouncyCastleProvider.PROVIDER_NAME);
-
- if (wrappedKeyType == Cipher.PUBLIC_KEY)
- {
- return kf.generatePublic(new X509EncodedKeySpec(encoded));
- }
- else if (wrappedKeyType == Cipher.PRIVATE_KEY)
- {
- return kf.generatePrivate(new PKCS8EncodedKeySpec(encoded));
- }
- }
- catch (NoSuchProviderException e)
- {
- throw new InvalidKeyException("Unknown key type " + e.getMessage());
- }
- catch (InvalidKeySpecException e2)
- {
- throw new InvalidKeyException("Unknown key type " + e2.getMessage());
- }
-
- throw new InvalidKeyException("Unknown key type " + wrappedKeyType);
- }
- }
-
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BlockCipherProvider.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BlockCipherProvider.java
deleted file mode 100644
index f5ab9ad0..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BlockCipherProvider.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import org.bouncycastle.crypto.BlockCipher;
-
-public interface BlockCipherProvider
-{
- BlockCipher get();
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/IvAlgorithmParameters.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/IvAlgorithmParameters.java
deleted file mode 100644
index b5a95526..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/IvAlgorithmParameters.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.io.IOException;
-import java.security.spec.AlgorithmParameterSpec;
-import java.security.spec.InvalidParameterSpecException;
-
-import javax.crypto.spec.IvParameterSpec;
-
-import org.bouncycastle.asn1.ASN1OctetString;
-import org.bouncycastle.asn1.ASN1Primitive;
-import org.bouncycastle.asn1.DEROctetString;
-import org.bouncycastle.util.Arrays;
-
-public class IvAlgorithmParameters
- extends BaseAlgorithmParameters
-{
- private byte[] iv;
-
- protected byte[] engineGetEncoded()
- throws IOException
- {
- return engineGetEncoded("ASN.1");
- }
-
- protected byte[] engineGetEncoded(
- String format)
- throws IOException
- {
- if (isASN1FormatString(format))
- {
- return new DEROctetString(engineGetEncoded("RAW")).getEncoded();
- }
-
- if (format.equals("RAW"))
- {
- return Arrays.clone(iv);
- }
-
- return null;
- }
-
- protected AlgorithmParameterSpec localEngineGetParameterSpec(
- Class paramSpec)
- throws InvalidParameterSpecException
- {
- if (paramSpec == IvParameterSpec.class)
- {
- return new IvParameterSpec(iv);
- }
-
- throw new InvalidParameterSpecException("unknown parameter spec passed to IV parameters object.");
- }
-
- protected void engineInit(
- AlgorithmParameterSpec paramSpec)
- throws InvalidParameterSpecException
- {
- if (!(paramSpec instanceof IvParameterSpec))
- {
- throw new InvalidParameterSpecException("IvParameterSpec required to initialise a IV parameters algorithm parameters object");
- }
-
- this.iv = ((IvParameterSpec)paramSpec).getIV();
- }
-
- protected void engineInit(
- byte[] params)
- throws IOException
- {
- //
- // check that we don't have a DER encoded octet string
- //
- if ((params.length % 8) != 0
- && params[0] == 0x04 && params[1] == params.length - 2)
- {
- ASN1OctetString oct = (ASN1OctetString)ASN1Primitive.fromByteArray(params);
-
- params = oct.getOctets();
- }
-
- this.iv = Arrays.clone(params);
- }
-
- protected void engineInit(
- byte[] params,
- String format)
- throws IOException
- {
- if (isASN1FormatString(format))
- {
- try
- {
- ASN1OctetString oct = (ASN1OctetString)ASN1Primitive.fromByteArray(params);
-
- engineInit(oct.getOctets());
- }
- catch (Exception e)
- {
- throw new IOException("Exception decoding: " + e);
- }
-
- return;
- }
-
- if (format.equals("RAW"))
- {
- engineInit(params);
- return;
- }
-
- throw new IOException("Unknown parameters format in IV parameters object");
- }
-
- protected String engineToString()
- {
- return "IV Parameters";
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/PBE.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/PBE.java
deleted file mode 100644
index fac3ead0..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/PBE.java
+++ /dev/null
@@ -1,319 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.security.spec.AlgorithmParameterSpec;
-
-import javax.crypto.spec.PBEKeySpec;
-import javax.crypto.spec.PBEParameterSpec;
-
-import org.bouncycastle.crypto.CipherParameters;
-import org.bouncycastle.crypto.PBEParametersGenerator;
-import org.bouncycastle.crypto.digests.GOST3411Digest;
-import org.bouncycastle.crypto.digests.MD2Digest;
-import org.bouncycastle.crypto.digests.MD5Digest;
-import org.bouncycastle.crypto.digests.RIPEMD160Digest;
-import org.bouncycastle.crypto.digests.SHA1Digest;
-import org.bouncycastle.crypto.digests.SHA256Digest;
-import org.bouncycastle.crypto.digests.TigerDigest;
-import org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator;
-import org.bouncycastle.crypto.generators.PKCS12ParametersGenerator;
-import org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator;
-import org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator;
-import org.bouncycastle.crypto.params.DESParameters;
-import org.bouncycastle.crypto.params.KeyParameter;
-import org.bouncycastle.crypto.params.ParametersWithIV;
-
-public interface PBE
-{
- //
- // PBE Based encryption constants - by default we do PKCS12 with SHA-1
- //
- static final int MD5 = 0;
- static final int SHA1 = 1;
- static final int RIPEMD160 = 2;
- static final int TIGER = 3;
- static final int SHA256 = 4;
- static final int MD2 = 5;
- static final int GOST3411 = 6;
-
- static final int PKCS5S1 = 0;
- static final int PKCS5S2 = 1;
- static final int PKCS12 = 2;
- static final int OPENSSL = 3;
- static final int PKCS5S1_UTF8 = 4;
- static final int PKCS5S2_UTF8 = 5;
-
- /**
- * uses the appropriate mixer to generate the key and IV if necessary.
- */
- static class Util
- {
- static private PBEParametersGenerator makePBEGenerator(
- int type,
- int hash)
- {
- PBEParametersGenerator generator;
-
- if (type == PKCS5S1 || type == PKCS5S1_UTF8)
- {
- switch (hash)
- {
- case MD2:
- generator = new PKCS5S1ParametersGenerator(new MD2Digest());
- break;
- case MD5:
- generator = new PKCS5S1ParametersGenerator(new MD5Digest());
- break;
- case SHA1:
- generator = new PKCS5S1ParametersGenerator(new SHA1Digest());
- break;
- default:
- throw new IllegalStateException("PKCS5 scheme 1 only supports MD2, MD5 and SHA1.");
- }
- }
- else if (type == PKCS5S2 || type == PKCS5S2_UTF8)
- {
- switch (hash)
- {
- case MD2:
- generator = new PKCS5S2ParametersGenerator(new MD2Digest());
- break;
- case MD5:
- generator = new PKCS5S2ParametersGenerator(new MD5Digest());
- break;
- case SHA1:
- generator = new PKCS5S2ParametersGenerator(new SHA1Digest());
- break;
- case RIPEMD160:
- generator = new PKCS5S2ParametersGenerator(new RIPEMD160Digest());
- break;
- case TIGER:
- generator = new PKCS5S2ParametersGenerator(new TigerDigest());
- break;
- case SHA256:
- generator = new PKCS5S2ParametersGenerator(new SHA256Digest());
- break;
- case GOST3411:
- generator = new PKCS5S2ParametersGenerator(new GOST3411Digest());
- break;
- default:
- throw new IllegalStateException("unknown digest scheme for PBE PKCS5S2 encryption.");
- }
- }
- else if (type == PKCS12)
- {
- switch (hash)
- {
- case MD2:
- generator = new PKCS12ParametersGenerator(new MD2Digest());
- break;
- case MD5:
- generator = new PKCS12ParametersGenerator(new MD5Digest());
- break;
- case SHA1:
- generator = new PKCS12ParametersGenerator(new SHA1Digest());
- break;
- case RIPEMD160:
- generator = new PKCS12ParametersGenerator(new RIPEMD160Digest());
- break;
- case TIGER:
- generator = new PKCS12ParametersGenerator(new TigerDigest());
- break;
- case SHA256:
- generator = new PKCS12ParametersGenerator(new SHA256Digest());
- break;
- case GOST3411:
- generator = new PKCS12ParametersGenerator(new GOST3411Digest());
- break;
- default:
- throw new IllegalStateException("unknown digest scheme for PBE encryption.");
- }
- }
- else
- {
- generator = new OpenSSLPBEParametersGenerator();
- }
-
- return generator;
- }
-
- /**
- * construct a key and iv (if necessary) suitable for use with a
- * Cipher.
- */
- public static CipherParameters makePBEParameters(
- BCPBEKey pbeKey,
- AlgorithmParameterSpec spec,
- String targetAlgorithm)
- {
- if ((spec == null) || !(spec instanceof PBEParameterSpec))
- {
- throw new IllegalArgumentException("Need a PBEParameter spec with a PBE key.");
- }
-
- PBEParameterSpec pbeParam = (PBEParameterSpec)spec;
- PBEParametersGenerator generator = makePBEGenerator(pbeKey.getType(), pbeKey.getDigest());
- byte[] key = pbeKey.getEncoded();
- CipherParameters param;
-
- if (pbeKey.shouldTryWrongPKCS12())
- {
- key = new byte[2];
- }
-
- generator.init(key, pbeParam.getSalt(), pbeParam.getIterationCount());
-
- if (pbeKey.getIvSize() != 0)
- {
- param = generator.generateDerivedParameters(pbeKey.getKeySize(), pbeKey.getIvSize());
- }
- else
- {
- param = generator.generateDerivedParameters(pbeKey.getKeySize());
- }
-
- if (targetAlgorithm.startsWith("DES"))
- {
- if (param instanceof ParametersWithIV)
- {
- KeyParameter kParam = (KeyParameter)((ParametersWithIV)param).getParameters();
-
- DESParameters.setOddParity(kParam.getKey());
- }
- else
- {
- KeyParameter kParam = (KeyParameter)param;
-
- DESParameters.setOddParity(kParam.getKey());
- }
- }
-
- for (int i = 0; i != key.length; i++)
- {
- key[i] = 0;
- }
-
- return param;
- }
-
- /**
- * generate a PBE based key suitable for a MAC algorithm, the
- * key size is chosen according the MAC size, or the hashing algorithm,
- * whichever is greater.
- */
- public static CipherParameters makePBEMacParameters(
- BCPBEKey pbeKey,
- AlgorithmParameterSpec spec)
- {
- if ((spec == null) || !(spec instanceof PBEParameterSpec))
- {
- throw new IllegalArgumentException("Need a PBEParameter spec with a PBE key.");
- }
-
- PBEParameterSpec pbeParam = (PBEParameterSpec)spec;
- PBEParametersGenerator generator = makePBEGenerator(pbeKey.getType(), pbeKey.getDigest());
- byte[] key = pbeKey.getEncoded();
- CipherParameters param;
-
- if (pbeKey.shouldTryWrongPKCS12())
- {
- key = new byte[2];
- }
-
- generator.init(key, pbeParam.getSalt(), pbeParam.getIterationCount());
-
- param = generator.generateDerivedMacParameters(pbeKey.getKeySize());
-
- for (int i = 0; i != key.length; i++)
- {
- key[i] = 0;
- }
-
- return param;
- }
-
- /**
- * construct a key and iv (if necessary) suitable for use with a
- * Cipher.
- */
- public static CipherParameters makePBEParameters(
- PBEKeySpec keySpec,
- int type,
- int hash,
- int keySize,
- int ivSize)
- {
- PBEParametersGenerator generator = makePBEGenerator(type, hash);
- byte[] key;
- CipherParameters param;
-
- key = convertPassword(type, keySpec);
-
- generator.init(key, keySpec.getSalt(), keySpec.getIterationCount());
-
- if (ivSize != 0)
- {
- param = generator.generateDerivedParameters(keySize, ivSize);
- }
- else
- {
- param = generator.generateDerivedParameters(keySize);
- }
-
- for (int i = 0; i != key.length; i++)
- {
- key[i] = 0;
- }
-
- return param;
- }
-
-
- /**
- * generate a PBE based key suitable for a MAC algorithm, the
- * key size is chosen according the MAC size, or the hashing algorithm,
- * whichever is greater.
- */
- public static CipherParameters makePBEMacParameters(
- PBEKeySpec keySpec,
- int type,
- int hash,
- int keySize)
- {
- PBEParametersGenerator generator = makePBEGenerator(type, hash);
- byte[] key;
- CipherParameters param;
-
- key = convertPassword(type, keySpec);
-
- generator.init(key, keySpec.getSalt(), keySpec.getIterationCount());
-
- param = generator.generateDerivedMacParameters(keySize);
-
- for (int i = 0; i != key.length; i++)
- {
- key[i] = 0;
- }
-
- return param;
- }
-
- private static byte[] convertPassword(int type, PBEKeySpec keySpec)
- {
- byte[] key;
-
- if (type == PKCS12)
- {
- key = PBEParametersGenerator.PKCS12PasswordToBytes(keySpec.getPassword());
- }
- else if (type == PKCS5S2_UTF8 || type == PKCS5S1_UTF8)
- {
- key = PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(keySpec.getPassword());
- }
- else
- {
- key = PBEParametersGenerator.PKCS5PasswordToBytes(keySpec.getPassword());
- }
- return key;
- }
- }
-}
diff --git a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/PBESecretKeyFactory.java b/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/PBESecretKeyFactory.java
deleted file mode 100644
index 434f6bb8..00000000
--- a/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/PBESecretKeyFactory.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.bouncycastle.jcajce.provider.symmetric.util;
-
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.KeySpec;
-
-import javax.crypto.SecretKey;
-import javax.crypto.spec.PBEKeySpec;
-
-import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.crypto.CipherParameters;
-
-public class PBESecretKeyFactory
- extends BaseSecretKeyFactory
- implements PBE
-{
- private boolean forCipher;
- private int scheme;
- private int digest;
- private int keySize;
- private int ivSize;
-
- public PBESecretKeyFactory(
- String algorithm,
- ASN1ObjectIdentifier oid,
- boolean forCipher,
- int scheme,
- int digest,
- int keySize,
- int ivSize)
- {
- super(algorithm, oid);
-
- this.forCipher = forCipher;
- this.scheme = scheme;
- this.digest = digest;
- this.keySize = keySize;
- this.ivSize = ivSize;
- }
-
- protected SecretKey engineGenerateSecret(
- KeySpec keySpec)
- throws InvalidKeySpecException
- {
- if (keySpec instanceof PBEKeySpec)
- {
- PBEKeySpec pbeSpec = (PBEKeySpec)keySpec;
- CipherParameters param;
-
- if (pbeSpec.getSalt() == null)
- {
- return new BCPBEKey(this.algName, this.algOid, scheme, digest, keySize, ivSize, pbeSpec, null);
- }
-
- if (forCipher)
- {
- param = PBE.Util.makePBEParameters(pbeSpec, scheme, digest, keySize, ivSize);
- }
- else
- {
- param = PBE.Util.makePBEMacParameters(pbeSpec, scheme, digest, keySize);
- }
-
- return new BCPBEKey(this.algName, this.algOid, scheme, digest, keySize, ivSize, pbeSpec, param);
- }
-
- throw new InvalidKeySpecException("Invalid KeySpec");
- }
-}