/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/Blowfish.java
Java | 88 lines | 76 code | 12 blank | 0 comment | 0 complexity | 53cb41abaa4fb10cf4f967cd4492c3b2 MD5 | raw file
- package org.bouncycastle.jcajce.provider.symmetric;
- import org.bouncycastle.asn1.misc.MiscObjectIdentifiers;
- import org.bouncycastle.crypto.CipherKeyGenerator;
- import org.bouncycastle.crypto.engines.BlowfishEngine;
- import org.bouncycastle.crypto.macs.CMac;
- 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.BaseMac;
- 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 CMAC
- extends BaseMac
- {
- public CMAC()
- {
- super(new CMac(new BlowfishEngine()));
- }
- }
- 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("Mac.BLOWFISHCMAC", PREFIX + "$CMAC");
- provider.addAlgorithm("Cipher.BLOWFISH", PREFIX + "$ECB");
- provider.addAlgorithm("Cipher", MiscObjectIdentifiers.cryptlib_algorithm_blowfish_CBC, PREFIX + "$CBC");
- provider.addAlgorithm("KeyGenerator.BLOWFISH", PREFIX + "$KeyGen");
- provider.addAlgorithm("Alg.Alias.KeyGenerator", MiscObjectIdentifiers.cryptlib_algorithm_blowfish_CBC, "BLOWFISH");
- provider.addAlgorithm("AlgorithmParameters.BLOWFISH", PREFIX + "$AlgParams");
- provider.addAlgorithm("Alg.Alias.AlgorithmParameters", MiscObjectIdentifiers.cryptlib_algorithm_blowfish_CBC, "BLOWFISH");
- }
- }
- }