1package org.bouncycastle.jce.provider.symmetric; 2 3import java.util.HashMap; 4 5import org.bouncycastle.crypto.CipherKeyGenerator; 6import org.bouncycastle.crypto.engines.BlowfishEngine; 7import org.bouncycastle.crypto.modes.CBCBlockCipher; 8import org.bouncycastle.jce.provider.JCEBlockCipher; 9import org.bouncycastle.jce.provider.JCEKeyGenerator; 10import org.bouncycastle.jce.provider.JDKAlgorithmParameters; 11 12public final class Blowfish 13{ 14 private Blowfish() 15 { 16 } 17 18 public static class ECB 19 extends JCEBlockCipher 20 { 21 public ECB() 22 { 23 super(new BlowfishEngine()); 24 } 25 } 26 27 public static class CBC 28 extends JCEBlockCipher 29 { 30 public CBC() 31 { 32 super(new CBCBlockCipher(new BlowfishEngine()), 64); 33 } 34 } 35 36 public static class KeyGen 37 extends JCEKeyGenerator 38 { 39 public KeyGen() 40 { 41 super("Blowfish", 128, new CipherKeyGenerator()); 42 } 43 } 44 45 public static class AlgParams 46 extends JDKAlgorithmParameters.IVAlgorithmParameters 47 { 48 protected String engineToString() 49 { 50 return "Blowfish IV"; 51 } 52 } 53 54 public static class Mappings 55 extends HashMap 56 { 57 public Mappings() 58 { 59 put("Cipher.BLOWFISH", "org.bouncycastle.jce.provider.symmetric.Blowfish$ECB"); 60 // BEGIN android-removed 61 // put("Cipher.1.3.6.1.4.1.3029.1.2", "org.bouncycastle.jce.provider.symmetric.Blowfish$CBC"); 62 // END android-removed 63 put("KeyGenerator.BLOWFISH", "org.bouncycastle.jce.provider.symmetric.Blowfish$KeyGen"); 64 put("Alg.Alias.KeyGenerator.1.3.6.1.4.1.3029.1.2", "BLOWFISH"); 65 put("AlgorithmParameters.BLOWFISH", "org.bouncycastle.jce.provider.symmetric.Blowfish$AlgParams"); 66 put("Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.3029.1.2", "BLOWFISH"); 67 } 68 } 69} 70