/P9-8.0/src/main/java/com/android/org/bouncycastle/jcajce/provider/symmetric/Blowfish.java

https://github.com/dstmath/HWFramework · Java · 53 lines · 44 code · 9 blank · 0 comment · 0 complexity · 047f3987c448e4fe628c0c48f763ce46 MD5 · raw file

  1. package com.android.org.bouncycastle.jcajce.provider.symmetric;
  2. import com.android.org.bouncycastle.asn1.misc.MiscObjectIdentifiers;
  3. import com.android.org.bouncycastle.crypto.CipherKeyGenerator;
  4. import com.android.org.bouncycastle.crypto.engines.BlowfishEngine;
  5. import com.android.org.bouncycastle.crypto.modes.CBCBlockCipher;
  6. import com.android.org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
  7. import com.android.org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher;
  8. import com.android.org.bouncycastle.jcajce.provider.symmetric.util.BaseKeyGenerator;
  9. import com.android.org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters;
  10. import com.android.org.bouncycastle.jcajce.provider.util.AlgorithmProvider;
  11. public final class Blowfish {
  12. public static class AlgParams extends IvAlgorithmParameters {
  13. protected String engineToString() {
  14. return "Blowfish IV";
  15. }
  16. }
  17. public static class CBC extends BaseBlockCipher {
  18. public CBC() {
  19. super(new CBCBlockCipher(new BlowfishEngine()), 64);
  20. }
  21. }
  22. public static class ECB extends BaseBlockCipher {
  23. public ECB() {
  24. super(new BlowfishEngine());
  25. }
  26. }
  27. public static class KeyGen extends BaseKeyGenerator {
  28. public KeyGen() {
  29. super("Blowfish", 128, new CipherKeyGenerator());
  30. }
  31. }
  32. public static class Mappings extends AlgorithmProvider {
  33. private static final String PREFIX = Blowfish.class.getName();
  34. public void configure(ConfigurableProvider provider) {
  35. provider.addAlgorithm("Cipher.BLOWFISH", PREFIX + "$ECB");
  36. provider.addAlgorithm("KeyGenerator.BLOWFISH", PREFIX + "$KeyGen");
  37. provider.addAlgorithm("Alg.Alias.KeyGenerator", MiscObjectIdentifiers.cryptlib_algorithm_blowfish_CBC, "BLOWFISH");
  38. provider.addAlgorithm("AlgorithmParameters.BLOWFISH", PREFIX + "$AlgParams");
  39. provider.addAlgorithm("Alg.Alias.AlgorithmParameters", MiscObjectIdentifiers.cryptlib_algorithm_blowfish_CBC, "BLOWFISH");
  40. }
  41. }
  42. private Blowfish() {
  43. }
  44. }