/projs./apk/samsung-SGH-I727-Email/src/myorg/bouncycastle/jce/provider/JCEKeyGenerator.java

https://github.com/xl8or/- · Java · 369 lines · 287 code · 82 blank · 0 comment · 6 complexity · 7f7a62f5ebb650442e30a7818020cc0e MD5 · raw file

  1. package myorg.bouncycastle.jce.provider;
  2. import java.security.InvalidAlgorithmParameterException;
  3. import java.security.InvalidParameterException;
  4. import java.security.SecureRandom;
  5. import java.security.spec.AlgorithmParameterSpec;
  6. import javax.crypto.KeyGeneratorSpi;
  7. import javax.crypto.SecretKey;
  8. import javax.crypto.spec.SecretKeySpec;
  9. import myorg.bouncycastle.crypto.CipherKeyGenerator;
  10. import myorg.bouncycastle.crypto.KeyGenerationParameters;
  11. import myorg.bouncycastle.crypto.generators.DESKeyGenerator;
  12. import myorg.bouncycastle.crypto.generators.DESedeKeyGenerator;
  13. public class JCEKeyGenerator extends KeyGeneratorSpi {
  14. protected String algName;
  15. protected int defaultKeySize;
  16. protected CipherKeyGenerator engine;
  17. protected int keySize;
  18. protected boolean uninitialised = 1;
  19. protected JCEKeyGenerator(String var1, int var2, CipherKeyGenerator var3) {
  20. this.algName = var1;
  21. this.defaultKeySize = var2;
  22. this.keySize = var2;
  23. this.engine = var3;
  24. }
  25. protected SecretKey engineGenerateKey() {
  26. if(this.uninitialised) {
  27. CipherKeyGenerator var1 = this.engine;
  28. SecureRandom var2 = new SecureRandom();
  29. int var3 = this.defaultKeySize;
  30. KeyGenerationParameters var4 = new KeyGenerationParameters(var2, var3);
  31. var1.init(var4);
  32. this.uninitialised = (boolean)0;
  33. }
  34. byte[] var5 = this.engine.generateKey();
  35. String var6 = this.algName;
  36. return new SecretKeySpec(var5, var6);
  37. }
  38. protected void engineInit(int var1, SecureRandom var2) {
  39. try {
  40. CipherKeyGenerator var3 = this.engine;
  41. KeyGenerationParameters var4 = new KeyGenerationParameters(var2, var1);
  42. var3.init(var4);
  43. this.uninitialised = (boolean)0;
  44. } catch (IllegalArgumentException var6) {
  45. String var5 = var6.getMessage();
  46. throw new InvalidParameterException(var5);
  47. }
  48. }
  49. protected void engineInit(SecureRandom var1) {
  50. if(var1 != null) {
  51. CipherKeyGenerator var2 = this.engine;
  52. int var3 = this.defaultKeySize;
  53. KeyGenerationParameters var4 = new KeyGenerationParameters(var1, var3);
  54. var2.init(var4);
  55. this.uninitialised = (boolean)0;
  56. }
  57. }
  58. protected void engineInit(AlgorithmParameterSpec var1, SecureRandom var2) throws InvalidAlgorithmParameterException {
  59. throw new InvalidAlgorithmParameterException("Not Implemented");
  60. }
  61. public static class HMACSHA384 extends JCEKeyGenerator {
  62. public HMACSHA384() {
  63. CipherKeyGenerator var1 = new CipherKeyGenerator();
  64. super("HMACSHA384", 384, var1);
  65. }
  66. }
  67. public static class Blowfish extends JCEKeyGenerator {
  68. public Blowfish() {
  69. CipherKeyGenerator var1 = new CipherKeyGenerator();
  70. super("Blowfish", 128, var1);
  71. }
  72. }
  73. public static class MD4HMAC extends JCEKeyGenerator {
  74. public MD4HMAC() {
  75. CipherKeyGenerator var1 = new CipherKeyGenerator();
  76. super("HMACMD4", 128, var1);
  77. }
  78. }
  79. public static class RC564 extends JCEKeyGenerator {
  80. public RC564() {
  81. CipherKeyGenerator var1 = new CipherKeyGenerator();
  82. super("RC5-64", 256, var1);
  83. }
  84. }
  85. public static class CAST6 extends JCEKeyGenerator {
  86. public CAST6() {
  87. CipherKeyGenerator var1 = new CipherKeyGenerator();
  88. super("CAST6", 256, var1);
  89. }
  90. }
  91. public static class RC2 extends JCEKeyGenerator {
  92. public RC2() {
  93. CipherKeyGenerator var1 = new CipherKeyGenerator();
  94. super("RC2", 128, var1);
  95. }
  96. }
  97. public static class RC5 extends JCEKeyGenerator {
  98. public RC5() {
  99. CipherKeyGenerator var1 = new CipherKeyGenerator();
  100. super("RC5", 128, var1);
  101. }
  102. }
  103. public static class RC4 extends JCEKeyGenerator {
  104. public RC4() {
  105. CipherKeyGenerator var1 = new CipherKeyGenerator();
  106. super("RC4", 128, var1);
  107. }
  108. }
  109. public static class HC256 extends JCEKeyGenerator {
  110. public HC256() {
  111. CipherKeyGenerator var1 = new CipherKeyGenerator();
  112. super("HC256", 256, var1);
  113. }
  114. }
  115. public static class RC6 extends JCEKeyGenerator {
  116. public RC6() {
  117. CipherKeyGenerator var1 = new CipherKeyGenerator();
  118. super("RC6", 256, var1);
  119. }
  120. }
  121. public static class MD2HMAC extends JCEKeyGenerator {
  122. public MD2HMAC() {
  123. CipherKeyGenerator var1 = new CipherKeyGenerator();
  124. super("HMACMD2", 128, var1);
  125. }
  126. }
  127. public static class GOST28147 extends JCEKeyGenerator {
  128. public GOST28147() {
  129. CipherKeyGenerator var1 = new CipherKeyGenerator();
  130. super("GOST28147", 256, var1);
  131. }
  132. }
  133. public static class MD5HMAC extends JCEKeyGenerator {
  134. public MD5HMAC() {
  135. CipherKeyGenerator var1 = new CipherKeyGenerator();
  136. super("HMACMD5", 128, var1);
  137. }
  138. }
  139. public static class DESede3 extends JCEKeyGenerator {
  140. public DESede3() {
  141. DESedeKeyGenerator var1 = new DESedeKeyGenerator();
  142. super("DESede3", 192, var1);
  143. }
  144. }
  145. public static class DESede extends JCEKeyGenerator {
  146. private boolean keySizeSet;
  147. public DESede() {
  148. DESedeKeyGenerator var1 = new DESedeKeyGenerator();
  149. super("DESede", 192, var1);
  150. this.keySizeSet = (boolean)0;
  151. }
  152. protected SecretKey engineGenerateKey() {
  153. if(this.uninitialised) {
  154. CipherKeyGenerator var1 = this.engine;
  155. SecureRandom var2 = new SecureRandom();
  156. int var3 = this.defaultKeySize;
  157. KeyGenerationParameters var4 = new KeyGenerationParameters(var2, var3);
  158. var1.init(var4);
  159. this.uninitialised = (boolean)0;
  160. }
  161. SecretKeySpec var7;
  162. if(!this.keySizeSet) {
  163. byte[] var5 = this.engine.generateKey();
  164. System.arraycopy(var5, 0, var5, 16, 8);
  165. String var6 = this.algName;
  166. var7 = new SecretKeySpec(var5, var6);
  167. } else {
  168. byte[] var8 = this.engine.generateKey();
  169. String var9 = this.algName;
  170. var7 = new SecretKeySpec(var8, var9);
  171. }
  172. return var7;
  173. }
  174. protected void engineInit(int var1, SecureRandom var2) {
  175. super.engineInit(var1, var2);
  176. this.keySizeSet = (boolean)1;
  177. }
  178. }
  179. public static class HMACSHA256 extends JCEKeyGenerator {
  180. public HMACSHA256() {
  181. CipherKeyGenerator var1 = new CipherKeyGenerator();
  182. super("HMACSHA256", 256, var1);
  183. }
  184. }
  185. public static class HMACSHA512 extends JCEKeyGenerator {
  186. public HMACSHA512() {
  187. CipherKeyGenerator var1 = new CipherKeyGenerator();
  188. super("HMACSHA512", 512, var1);
  189. }
  190. }
  191. public static class HMACTIGER extends JCEKeyGenerator {
  192. public HMACTIGER() {
  193. CipherKeyGenerator var1 = new CipherKeyGenerator();
  194. super("HMACTIGER", 192, var1);
  195. }
  196. }
  197. public static class Salsa20 extends JCEKeyGenerator {
  198. public Salsa20() {
  199. CipherKeyGenerator var1 = new CipherKeyGenerator();
  200. super("Salsa20", 128, var1);
  201. }
  202. }
  203. public static class Serpent extends JCEKeyGenerator {
  204. public Serpent() {
  205. CipherKeyGenerator var1 = new CipherKeyGenerator();
  206. super("Serpent", 192, var1);
  207. }
  208. }
  209. public static class HC128 extends JCEKeyGenerator {
  210. public HC128() {
  211. CipherKeyGenerator var1 = new CipherKeyGenerator();
  212. super("HC128", 128, var1);
  213. }
  214. }
  215. public static class TEA extends JCEKeyGenerator {
  216. public TEA() {
  217. CipherKeyGenerator var1 = new CipherKeyGenerator();
  218. super("TEA", 128, var1);
  219. }
  220. }
  221. public static class RIPEMD128HMAC extends JCEKeyGenerator {
  222. public RIPEMD128HMAC() {
  223. CipherKeyGenerator var1 = new CipherKeyGenerator();
  224. super("HMACRIPEMD128", 128, var1);
  225. }
  226. }
  227. public static class Twofish extends JCEKeyGenerator {
  228. public Twofish() {
  229. CipherKeyGenerator var1 = new CipherKeyGenerator();
  230. super("Twofish", 256, var1);
  231. }
  232. }
  233. public static class VMPCKSA3 extends JCEKeyGenerator {
  234. public VMPCKSA3() {
  235. CipherKeyGenerator var1 = new CipherKeyGenerator();
  236. super("VMPC-KSA3", 128, var1);
  237. }
  238. }
  239. public static class XTEA extends JCEKeyGenerator {
  240. public XTEA() {
  241. CipherKeyGenerator var1 = new CipherKeyGenerator();
  242. super("XTEA", 128, var1);
  243. }
  244. }
  245. public static class RIPEMD160HMAC extends JCEKeyGenerator {
  246. public RIPEMD160HMAC() {
  247. CipherKeyGenerator var1 = new CipherKeyGenerator();
  248. super("HMACRIPEMD160", 160, var1);
  249. }
  250. }
  251. public static class DES extends JCEKeyGenerator {
  252. public DES() {
  253. DESKeyGenerator var1 = new DESKeyGenerator();
  254. super("DES", 64, var1);
  255. }
  256. }
  257. public static class Skipjack extends JCEKeyGenerator {
  258. public Skipjack() {
  259. CipherKeyGenerator var1 = new CipherKeyGenerator();
  260. super("SKIPJACK", 80, var1);
  261. }
  262. }
  263. public static class HMACSHA1 extends JCEKeyGenerator {
  264. public HMACSHA1() {
  265. CipherKeyGenerator var1 = new CipherKeyGenerator();
  266. super("HMACSHA1", 160, var1);
  267. }
  268. }
  269. public static class Rijndael extends JCEKeyGenerator {
  270. public Rijndael() {
  271. CipherKeyGenerator var1 = new CipherKeyGenerator();
  272. super("Rijndael", 192, var1);
  273. }
  274. }
  275. public static class VMPC extends JCEKeyGenerator {
  276. public VMPC() {
  277. CipherKeyGenerator var1 = new CipherKeyGenerator();
  278. super("VMPC", 128, var1);
  279. }
  280. }
  281. public static class HMACSHA224 extends JCEKeyGenerator {
  282. public HMACSHA224() {
  283. CipherKeyGenerator var1 = new CipherKeyGenerator();
  284. super("HMACSHA224", 224, var1);
  285. }
  286. }
  287. }