/Mate20_9_0_0/src/main/java/com/android/org/bouncycastle/jcajce/provider/symmetric/Blowfish.java

https://github.com/SivanLiu/HwFrameWorkSource · Java · 62 lines · 53 code · 9 blank · 0 comment · 0 complexity · 4f4d01c6cbe405b502886427a971043d 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 KeyGen extends BaseKeyGenerator {
  13. public KeyGen() {
  14. super("Blowfish", 128, new CipherKeyGenerator());
  15. }
  16. }
  17. public static class Mappings extends AlgorithmProvider {
  18. private static final String PREFIX = Blowfish.class.getName();
  19. public void configure(ConfigurableProvider provider) {
  20. StringBuilder stringBuilder = new StringBuilder();
  21. stringBuilder.append(PREFIX);
  22. stringBuilder.append("$ECB");
  23. provider.addAlgorithm("Cipher.BLOWFISH", stringBuilder.toString());
  24. stringBuilder = new StringBuilder();
  25. stringBuilder.append(PREFIX);
  26. stringBuilder.append("$KeyGen");
  27. provider.addAlgorithm("KeyGenerator.BLOWFISH", stringBuilder.toString());
  28. provider.addAlgorithm("Alg.Alias.KeyGenerator", MiscObjectIdentifiers.cryptlib_algorithm_blowfish_CBC, "BLOWFISH");
  29. stringBuilder = new StringBuilder();
  30. stringBuilder.append(PREFIX);
  31. stringBuilder.append("$AlgParams");
  32. provider.addAlgorithm("AlgorithmParameters.BLOWFISH", stringBuilder.toString());
  33. provider.addAlgorithm("Alg.Alias.AlgorithmParameters", MiscObjectIdentifiers.cryptlib_algorithm_blowfish_CBC, "BLOWFISH");
  34. }
  35. }
  36. public static class AlgParams extends IvAlgorithmParameters {
  37. protected String engineToString() {
  38. return "Blowfish IV";
  39. }
  40. }
  41. public static class CBC extends BaseBlockCipher {
  42. public CBC() {
  43. super(new CBCBlockCipher(new BlowfishEngine()), 64);
  44. }
  45. }
  46. public static class ECB extends BaseBlockCipher {
  47. public ECB() {
  48. super(new BlowfishEngine());
  49. }
  50. }
  51. private Blowfish() {
  52. }
  53. }