BouncyCastleProvider.java 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. /*
  2. * FileName:BouncyCastleProvider.java
  3. * <p>
  4. * Copyright (c) 2017-2020, <a href="http://www.webcsn.com">hermit (794890569@qq.com)</a>.
  5. * <p>
  6. * Licensed under the GNU General Public License, Version 3 (the "License");
  7. * you may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. * <p>
  10. * http://www.gnu.org/licenses/gpl-3.0.html
  11. * <p>
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. *
  18. */
  19. package cn.com.lzt.common.util.security;
  20. import java.security.Provider;
  21. /**
  22. * To add the provider at runtime use:
  23. * <pre>
  24. * import java.security.Security;
  25. * import org.security.provider.BouncyCastleProvider;
  26. *
  27. * Security.addProvider(new BouncyCastleProvider());
  28. * </pre>
  29. * The provider can also be configured as part of your environment via
  30. * static registration by adding an entry to the java.security properties
  31. * file (found in $JAVA_HOME/jre/lib/security/java.security, where
  32. * $JAVA_HOME is the location of your JDK/JRE distribution). You'll find
  33. * detailed instructions in the file but basically it comes down to adding
  34. * a line:
  35. * <pre>
  36. * <code>
  37. * security.provider.&lt;n&gt;=org.bouncycastle.jce.provider.BouncyCastleProvider
  38. * </code>
  39. * </pre>
  40. * Where &lt;n&gt; is the preference you want the provider at (1 being the
  41. * most prefered).
  42. * <p>Note: JCE algorithm names should be uppercase only so the case insensitive
  43. * test for getInstance works.
  44. * @author ShenHuaJie
  45. * @version $Id: BouncyCastleProvider.java, v 0.1 2014年3月25日 上午9:40:17 ShenHuaJie Exp $
  46. */
  47. @SuppressWarnings("serial")
  48. public class BouncyCastleProvider extends Provider {
  49. private static final String info = "BouncyCastle Security Provider v1.23";
  50. public static final String PROVIDER_NAME = "BC";
  51. /**
  52. * Construct a new provider. This should only be required when
  53. * using runtime registration of the provider using the
  54. * <code>Security.addProvider()</code> mechanism.
  55. */
  56. public BouncyCastleProvider() {
  57. super(PROVIDER_NAME, 1.23, info);
  58. //
  59. // KeyStore
  60. //
  61. put("KeyStore.BKS", "org.bouncycastle.jce.provider.JDKKeyStore");
  62. put("KeyStore.BouncyCastle", "org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore");
  63. put("KeyStore.PKCS12", "org.bouncycastle.jce.provider.JDKPKCS12KeyStore$BCPKCS12KeyStore");
  64. put("KeyStore.BCPKCS12", "org.bouncycastle.jce.provider.JDKPKCS12KeyStore$BCPKCS12KeyStore");
  65. put("KeyStore.PKCS12-DEF",
  66. "org.bouncycastle.jce.provider.JDKPKCS12KeyStore$DefPKCS12KeyStore");
  67. put("Alg.Alias.KeyStore.UBER", "BouncyCastle");
  68. put("Alg.Alias.KeyStore.BOUNCYCASTLE", "BouncyCastle");
  69. put("Alg.Alias.KeyStore.bouncycastle", "BouncyCastle");
  70. //
  71. // certificate factories.
  72. //
  73. put("CertificateFactory.X.509", "org.bouncycastle.jce.provider.JDKX509CertificateFactory");
  74. put("Alg.Alias.CertificateFactory.X509", "X.509");
  75. //
  76. // algorithm parameter generators
  77. //
  78. put("AlgorithmParameterGenerator.DH",
  79. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH");
  80. put("AlgorithmParameterGenerator.DSA",
  81. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DSA");
  82. put("AlgorithmParameterGenerator.ELGAMAL",
  83. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal");
  84. put("AlgorithmParameterGenerator.DES",
  85. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DES");
  86. put("AlgorithmParameterGenerator.DESEDE",
  87. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DES");
  88. put("AlgorithmParameterGenerator.1.2.840.113549.3.7",
  89. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DES");
  90. put("AlgorithmParameterGenerator.1.3.14.3.2.7",
  91. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DES");
  92. put("AlgorithmParameterGenerator.IDEA",
  93. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$IDEA");
  94. put("AlgorithmParameterGenerator.1.3.6.1.4.1.188.7.1.1.2",
  95. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$IDEA");
  96. put("AlgorithmParameterGenerator.RC2",
  97. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$RC2");
  98. put("AlgorithmParameterGenerator.1.2.840.113549.3.2",
  99. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$RC2");
  100. put("AlgorithmParameterGenerator.CAST5",
  101. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$CAST5");
  102. put("AlgorithmParameterGenerator.1.2.840.113533.7.66.10",
  103. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$CAST5");
  104. put("AlgorithmParameterGenerator.AES",
  105. "org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$AES");
  106. put("Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.2", "AES"); // these first 3 are wrong, but seem to have got around
  107. put("Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.22", "AES");
  108. put("Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.42", "AES");
  109. put("Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.1.2", "AES");
  110. put("Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.1.22", "AES");
  111. put("Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.1.42", "AES");
  112. //
  113. // algorithm parameters
  114. //
  115. put("AlgorithmParameters.DH", "org.bouncycastle.jce.provider.JDKAlgorithmParameters$DH");
  116. put("AlgorithmParameters.DSA", "org.bouncycastle.jce.provider.JDKAlgorithmParameters$DSA");
  117. put("AlgorithmParameters.ELGAMAL",
  118. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$ElGamal");
  119. put("AlgorithmParameters.IES", "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IES");
  120. put("AlgorithmParameters.PKCS12PBE",
  121. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$PKCS12PBE");
  122. put("AlgorithmParameters.1.2.840.113549.3.7",
  123. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  124. put("AlgorithmParameters.IDEA",
  125. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IDEAAlgorithmParameters");
  126. put("AlgorithmParameters.1.3.6.1.4.1.188.7.1.1.2",
  127. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IDEAAlgorithmParameters");
  128. put("AlgorithmParameters.CAST5",
  129. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$CAST5AlgorithmParameters");
  130. put("AlgorithmParameters.1.2.840.113533.7.66.10",
  131. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$CAST5AlgorithmParameters");
  132. put("Alg.Alias.AlgorithmParameters.PBEWITHSHA1ANDRC2", "PKCS12PBE");
  133. put("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND3-KEYTRIPLEDES", "PKCS12PBE");
  134. put("Alg.Alias.AlgorithmParameters.PBEWITHSHAAND2-KEYTRIPLEDES", "PKCS12PBE");
  135. put("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDRC2", "PKCS12PBE");
  136. put("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDRC4", "PKCS12PBE");
  137. put("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDTWOFISH", "PKCS12PBE");
  138. put("Alg.Alias.AlgorithmParameters.PBEWITHSHAANDIDEA", "PKCS12PBE");
  139. put("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.1", "PKCS12PBE");
  140. put("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.2", "PKCS12PBE");
  141. put("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.3", "PKCS12PBE");
  142. put("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.4", "PKCS12PBE");
  143. put("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.5", "PKCS12PBE");
  144. put("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.6", "PKCS12PBE");
  145. //
  146. // key agreement
  147. //
  148. put("KeyAgreement.DH", "org.bouncycastle.jce.provider.JCEDHKeyAgreement");
  149. put("KeyAgreement.ECDH", "org.bouncycastle.jce.provider.JCEECDHKeyAgreement$DH");
  150. put("KeyAgreement.ECDHC", "org.bouncycastle.jce.provider.JCEECDHKeyAgreement$DHC");
  151. //
  152. // cipher engines
  153. //
  154. put("Cipher.DES", "org.bouncycastle.jce.provider.JCEBlockCipher$DES");
  155. put("Cipher.DESEDE", "org.bouncycastle.jce.provider.JCEBlockCipher$DESede");
  156. put("Cipher.1.2.840.113549.3.7", "org.bouncycastle.jce.provider.JCEBlockCipher$DESedeCBC");
  157. put("Cipher.1.3.14.3.2.7", "org.bouncycastle.jce.provider.JCEBlockCipher$DESCBC");
  158. put("Cipher.DESEDEWRAP", "org.bouncycastle.jce.provider.WrapCipherSpi$DESEDEWrap");
  159. put("Cipher.1.2.840.113549.1.9.16.3.6",
  160. "org.bouncycastle.jce.provider.WrapCipherSpi$DESEDEWrap");
  161. put("Cipher.SKIPJACK", "org.bouncycastle.jce.provider.JCEBlockCipher$Skipjack");
  162. put("Cipher.BLOWFISH", "org.bouncycastle.jce.provider.JCEBlockCipher$Blowfish");
  163. put("Cipher.TWOFISH", "org.bouncycastle.jce.provider.JCEBlockCipher$Twofish");
  164. put("Cipher.RC2", "org.bouncycastle.jce.provider.JCEBlockCipher$RC2");
  165. put("Cipher.RC2WRAP", "org.bouncycastle.jce.provider.WrapCipherSpi$RC2Wrap");
  166. put("Cipher.1.2.840.113549.1.9.16.3.7",
  167. "org.bouncycastle.jce.provider.WrapCipherSpi$RC2Wrap");
  168. put("Cipher.ARC4", "org.bouncycastle.jce.provider.JCEStreamCipher$RC4");
  169. put("Cipher.RC4", "org.bouncycastle.jce.provider.JCEStreamCipher$RC4");
  170. put("Alg.Alias.Cipher.1.2.840.113549.3.4", "RC4");
  171. put("Cipher.RC5", "org.bouncycastle.jce.provider.JCEBlockCipher$RC5");
  172. put("Cipher.1.2.840.113549.3.2", "org.bouncycastle.jce.provider.JCEBlockCipher$RC2CBC");
  173. put("Alg.Alias.Cipher.RC5-32", "RC5");
  174. put("Cipher.RC5-64", "org.bouncycastle.jce.provider.JCEBlockCipher$RC564");
  175. put("Cipher.RC6", "org.bouncycastle.jce.provider.JCEBlockCipher$RC6");
  176. put("Cipher.RIJNDAEL", "org.bouncycastle.jce.provider.JCEBlockCipher$Rijndael");
  177. put("Cipher.AES", "org.bouncycastle.jce.provider.JCEBlockCipher$AES");
  178. put("Alg.Alias.Cipher.2.16.840.1.101.3.4.2", "AES");
  179. put("Alg.Alias.Cipher.2.16.840.1.101.3.4.22", "AES");
  180. put("Alg.Alias.Cipher.2.16.840.1.101.3.4.42", "AES");
  181. put("Cipher.2.16.840.1.101.3.4.1.2", "org.bouncycastle.jce.provider.JCEBlockCipher$AESCBC");
  182. put("Cipher.2.16.840.1.101.3.4.1.22", "org.bouncycastle.jce.provider.JCEBlockCipher$AESCBC");
  183. put("Cipher.2.16.840.1.101.3.4.1.42", "org.bouncycastle.jce.provider.JCEBlockCipher$AESCBC");
  184. put("Cipher.AESWRAP", "org.bouncycastle.jce.provider.WrapCipherSpi$AESWrap");
  185. put("Cipher.SERPENT", "org.bouncycastle.jce.provider.JCEBlockCipher$Serpent");
  186. put("Cipher.CAST5", "org.bouncycastle.jce.provider.JCEBlockCipher$CAST5");
  187. put("Cipher.1.2.840.113533.7.66.10",
  188. "org.bouncycastle.jce.provider.JCEBlockCipher$CAST5CBC");
  189. put("Cipher.CAST6", "org.bouncycastle.jce.provider.JCEBlockCipher$CAST6");
  190. put("Cipher.IDEA", "org.bouncycastle.jce.provider.JCEBlockCipher$IDEA");
  191. put("Cipher.1.3.6.1.4.1.188.7.1.1.2",
  192. "org.bouncycastle.jce.provider.JCEBlockCipher$IDEACBC");
  193. /*
  194. put("Cipher.DES/CFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$DES_CFB8");
  195. put("Cipher.DESEDE/CFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$DESede_CFB8");
  196. put("Cipher.SKIPJACK/CFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$Skipjack_CFB8");
  197. put("Cipher.BLOWFISH/CFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$Blowfish_CFB8");
  198. put("Cipher.TWOFISH/CFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$Twofish_CFB8");
  199. put("Cipher.IDEA/CFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$IDEA_CFB8");
  200. put("Alg.Alias.Cipher.DES/CFB8/NOPADDING", "DES/CFB8");
  201. put("Alg.Alias.Cipher.DESEDE/CFB8/NOPADDING", "DESEDE/CFB8");
  202. put("Alg.Alias.Cipher.SKIPJACK/CFB8/NOPADDING", "SKIPJACK/CFB8");
  203. put("Alg.Alias.Cipher.BLOWFISH/CFB8/NOPADDING", "Blowfish/CFB8");
  204. put("Alg.Alias.Cipher.TWOFISH/CFB8/NOPADDING", "Twofish/CFB8");
  205. put("Alg.Alias.Cipher.IDEA/CFB8/NOPADDING", "IDEA/CFB8");
  206. put("Cipher.DES/OFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$DES_OFB8");
  207. put("Cipher.DESEDE/OFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$DESede_OFB8");
  208. put("Cipher.SKIPJACK/OFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$Skipjack_OFB8");
  209. put("Cipher.BLOWFISH/OFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$Blowfish_OFB8");
  210. put("Cipher.TWOFISH/OFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$Twofish_OFB8");
  211. put("Cipher.IDEA/OFB8", "org.bouncycastle.jce.provider.JCEStreamCipher$IDEA_OFB8");
  212. put("Alg.Alias.Cipher.DES/OFB8/NOPADDING", "DES/OFB8");
  213. put("Alg.Alias.Cipher.DESEDE/OFB8/NOPADDING", "DESEDE/OFB8");
  214. put("Alg.Alias.Cipher.SKIPJACK/OFB8/NOPADDING", "SKIPJACK/OFB8");
  215. put("Alg.Alias.Cipher.BLOWFISH/OFB8/NOPADDING", "BLOWFISH/OFB8");
  216. put("Alg.Alias.Cipher.TWOFISH/OFB8/NOPADDING", "TWOFISH/OFB8");
  217. put("Alg.Alias.Cipher.IDEA/OFB8/NOPADDING", "IDEA/OFB8");
  218. */
  219. put("Cipher.RSA", "org.bouncycastle.jce.provider.JCERSACipher$NoPadding");
  220. put("Cipher.RSA/RAW", "org.bouncycastle.jce.provider.JCERSACipher$NoPadding");
  221. put("Cipher.RSA/PKCS1", "org.bouncycastle.jce.provider.JCERSACipher$PKCS1v1_5Padding");
  222. put("Cipher.1.2.840.113549.1.1.1",
  223. "org.bouncycastle.jce.provider.JCERSACipher$PKCS1v1_5Padding");
  224. put("Cipher.2.5.8.1.1", "org.bouncycastle.jce.provider.JCERSACipher$PKCS1v1_5Padding");
  225. put("Cipher.RSA/1",
  226. "org.bouncycastle.jce.provider.JCERSACipher$PKCS1v1_5Padding_PrivateOnly");
  227. put("Cipher.RSA/2",
  228. "org.bouncycastle.jce.provider.JCERSACipher$PKCS1v1_5Padding_PublicOnly");
  229. put("Cipher.RSA/OAEP", "org.bouncycastle.jce.provider.JCERSACipher$OAEPPadding");
  230. put("Cipher.1.2.840.113549.1.1.7", "org.bouncycastle.jce.provider.JCERSACipher$OAEPPadding");
  231. put("Cipher.RSA/ISO9796-1", "org.bouncycastle.jce.provider.JCERSACipher$ISO9796d1Padding");
  232. put("Cipher.ECIES", "org.bouncycastle.jce.provider.JCEIESCipher$ECIES");
  233. put("Cipher.ELGAMAL", "org.bouncycastle.jce.provider.JCEElGamalCipher$NoPadding");
  234. put("Cipher.ELGAMAL/PKCS1",
  235. "org.bouncycastle.jce.provider.JCEElGamalCipher$PKCS1v1_5Padding");
  236. put("Alg.Alias.Cipher.RSA//RAW", "RSA");
  237. put("Alg.Alias.Cipher.RSA//NOPADDING", "RSA");
  238. put("Alg.Alias.Cipher.RSA//PKCS1PADDING", "RSA/PKCS1");
  239. put("Alg.Alias.Cipher.RSA//OAEPPADDING", "RSA/OAEP");
  240. put("Alg.Alias.Cipher.RSA//ISO9796-1PADDING", "RSA/ISO9796-1");
  241. put("Alg.Alias.Cipher.RSA/ECB/NOPADDING", "RSA");
  242. put("Alg.Alias.Cipher.RSA/ECB/PKCS1PADDING", "RSA/PKCS1");
  243. put("Alg.Alias.Cipher.RSA/ECB/OAEPPADDING", "RSA/OAEP");
  244. put("Alg.Alias.Cipher.RSA/ECB/ISO9796-1PADDING", "RSA/ISO9796-1");
  245. put("Alg.Alias.Cipher.RSA/NONE/NOPADDING", "RSA");
  246. put("Alg.Alias.Cipher.RSA/NONE/PKCS1PADDING", "RSA/PKCS1");
  247. put("Alg.Alias.Cipher.RSA/NONE/OAEPPADDING", "RSA/OAEP");
  248. put("Alg.Alias.Cipher.RSA/NONE/ISO9796-1PADDING", "RSA/ISO9796-1");
  249. put("Alg.Alias.Cipher.RSA/1/PCKS1PADDING", "RSA/1");
  250. put("Alg.Alias.Cipher.RSA/2/PCKS1PADDING", "RSA/2");
  251. put("Alg.Alias.Cipher.ELGAMAL/ECB/PKCS1PADDING", "ELGAMAL/PKCS1");
  252. put("Alg.Alias.Cipher.ELGAMAL/NONE/PKCS1PADDING", "ELGAMAL/PKCS1");
  253. put("Cipher.PBEWITHMD5ANDDES",
  254. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithMD5AndDES");
  255. put("Cipher.BROKENPBEWITHMD5ANDDES",
  256. "org.bouncycastle.jce.provider.BrokenJCEBlockCipher$BrokePBEWithMD5AndDES");
  257. put("Cipher.PBEWITHMD5ANDRC2",
  258. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithMD5AndRC2");
  259. put("Cipher.PBEWITHSHA1ANDDES",
  260. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHA1AndDES");
  261. put("Cipher.BROKENPBEWITHSHA1ANDDES",
  262. "org.bouncycastle.jce.provider.BrokenJCEBlockCipher$BrokePBEWithSHA1AndDES");
  263. put("Cipher.PBEWITHSHA1ANDRC2",
  264. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHA1AndRC2");
  265. put("Cipher.PBEWITHSHAAND3-KEYTRIPLEDES-CBC",
  266. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndDES3Key");
  267. put("Cipher.BROKENPBEWITHSHAAND3-KEYTRIPLEDES-CBC",
  268. "org.bouncycastle.jce.provider.BrokenJCEBlockCipher$BrokePBEWithSHAAndDES3Key");
  269. put("Cipher.OLDPBEWITHSHAAND3-KEYTRIPLEDES-CBC",
  270. "org.bouncycastle.jce.provider.BrokenJCEBlockCipher$OldPBEWithSHAAndDES3Key");
  271. put("Cipher.PBEWITHSHAAND2-KEYTRIPLEDES-CBC",
  272. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndDES2Key");
  273. put("Cipher.BROKENPBEWITHSHAAND2-KEYTRIPLEDES-CBC",
  274. "org.bouncycastle.jce.provider.BrokenJCEBlockCipher$BrokePBEWithSHAAndDES2Key");
  275. put("Cipher.PBEWITHSHAAND128BITRC2-CBC",
  276. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAnd128BitRC2");
  277. put("Cipher.PBEWITHSHAAND40BITRC2-CBC",
  278. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAnd40BitRC2");
  279. put("Cipher.PBEWITHSHAAND128BITRC4",
  280. "org.bouncycastle.jce.provider.JCEStreamCipher$PBEWithSHAAnd128BitRC4");
  281. put("Cipher.PBEWITHSHAAND40BITRC4",
  282. "org.bouncycastle.jce.provider.JCEStreamCipher$PBEWithSHAAnd40BitRC4");
  283. put("Cipher.PBEWITHSHAANDTWOFISH-CBC",
  284. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndTwofish");
  285. put("Cipher.OLDPBEWITHSHAANDTWOFISH-CBC",
  286. "org.bouncycastle.jce.provider.BrokenJCEBlockCipher$OldPBEWithSHAAndTwofish");
  287. put("Cipher.PBEWITHSHAANDIDEA-CBC",
  288. "org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndIDEA");
  289. put("Alg.Alias.Cipher.1.2.840.113549.1.12.1.1", "PBEWITHSHAAND128BITRC4");
  290. put("Alg.Alias.Cipher.1.2.840.113549.1.12.1.2", "PBEWITHSHAAND40BITRC4");
  291. put("Alg.Alias.Cipher.1.2.840.113549.1.12.1.3", "PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
  292. put("Alg.Alias.Cipher.1.2.840.113549.1.12.1.4", "PBEWITHSHAAND2-KEYTRIPLEDES-CBC");
  293. put("Alg.Alias.Cipher.1.2.840.113549.1.12.1.5", "PBEWITHSHAAND128BITRC2-CBC");
  294. put("Alg.Alias.Cipher.1.2.840.113549.1.12.1.6", "PBEWITHSHAAND40BITRC2-CBC");
  295. //
  296. // key generators.
  297. //
  298. put("KeyGenerator.DES", "org.bouncycastle.jce.provider.JCEKeyGenerator$DES");
  299. put("Alg.Alias.KeyGenerator.1.3.14.3.2.7", "DES");
  300. put("KeyGenerator.DESEDE", "org.bouncycastle.jce.provider.JCEKeyGenerator$DESede");
  301. put("KeyGenerator.1.2.840.113549.3.7",
  302. "org.bouncycastle.jce.provider.JCEKeyGenerator$DESede3");
  303. put("KeyGenerator.DESEDEWRAP", "org.bouncycastle.jce.provider.JCEKeyGenerator$DESede");
  304. put("KeyGenerator.SKIPJACK", "org.bouncycastle.jce.provider.JCEKeyGenerator$Skipjack");
  305. put("KeyGenerator.BLOWFISH", "org.bouncycastle.jce.provider.JCEKeyGenerator$Blowfish");
  306. put("KeyGenerator.TWOFISH", "org.bouncycastle.jce.provider.JCEKeyGenerator$Twofish");
  307. put("KeyGenerator.RC2", "org.bouncycastle.jce.provider.JCEKeyGenerator$RC2");
  308. put("KeyGenerator.1.2.840.113549.3.2", "org.bouncycastle.jce.provider.JCEKeyGenerator$RC2");
  309. put("KeyGenerator.RC4", "org.bouncycastle.jce.provider.JCEKeyGenerator$RC4");
  310. put("Alg.Alias.KeyGenerator.ARC4", "RC4");
  311. put("Alg.Alias.KeyGenerator.1.2.840.113549.3.4", "RC4");
  312. put("KeyGenerator.RC5", "org.bouncycastle.jce.provider.JCEKeyGenerator$RC5");
  313. put("Alg.Alias.KeyGenerator.RC5-32", "RC5");
  314. put("KeyGenerator.RC5-64", "org.bouncycastle.jce.provider.JCEKeyGenerator$RC564");
  315. put("KeyGenerator.RC6", "org.bouncycastle.jce.provider.JCEKeyGenerator$RC6");
  316. put("KeyGenerator.RIJNDAEL", "org.bouncycastle.jce.provider.JCEKeyGenerator$Rijndael");
  317. put("KeyGenerator.AES", "org.bouncycastle.jce.provider.JCEKeyGenerator$AES");
  318. put("KeyGenerator.2.16.840.1.101.3.4.2",
  319. "org.bouncycastle.jce.provider.JCEKeyGenerator$AES128");
  320. put("KeyGenerator.2.16.840.1.101.3.4.22",
  321. "org.bouncycastle.jce.provider.JCEKeyGenerator$AES192");
  322. put("KeyGenerator.2.16.840.1.101.3.4.42",
  323. "org.bouncycastle.jce.provider.JCEKeyGenerator$AES256");
  324. put("KeyGenerator.2.16.840.1.101.3.4.1.2",
  325. "org.bouncycastle.jce.provider.JCEKeyGenerator$AES128");
  326. put("KeyGenerator.2.16.840.1.101.3.4.1.22",
  327. "org.bouncycastle.jce.provider.JCEKeyGenerator$AES192");
  328. put("KeyGenerator.2.16.840.1.101.3.4.1.42",
  329. "org.bouncycastle.jce.provider.JCEKeyGenerator$AES256");
  330. put("KeyGenerator.AESWRAP", "org.bouncycastle.jce.provider.JCEKeyGenerator$AES");
  331. put("KeyGenerator.SERPENT", "org.bouncycastle.jce.provider.JCEKeyGenerator$Serpent");
  332. put("KeyGenerator.CAST5", "org.bouncycastle.jce.provider.JCEKeyGenerator$CAST5");
  333. put("KeyGenerator.1.2.840.113533.7.66.10",
  334. "org.bouncycastle.jce.provider.JCEKeyGenerator$CAST5");
  335. put("KeyGenerator.CAST6", "org.bouncycastle.jce.provider.JCEKeyGenerator$CAST6");
  336. put("KeyGenerator.IDEA", "org.bouncycastle.jce.provider.JCEKeyGenerator$IDEA");
  337. put("KeyGenerator.1.3.6.1.4.1.188.7.1.1.2",
  338. "org.bouncycastle.jce.provider.JCEKeyGenerator$IDEA");
  339. put("KeyGenerator.HMACMD2", "org.bouncycastle.jce.provider.JCEKeyGenerator$MD2HMAC");
  340. put("KeyGenerator.HMACMD4", "org.bouncycastle.jce.provider.JCEKeyGenerator$MD4HMAC");
  341. put("KeyGenerator.HMACMD5", "org.bouncycastle.jce.provider.JCEKeyGenerator$MD5HMAC");
  342. put("KeyGenerator.HMACRIPEMD128",
  343. "org.bouncycastle.jce.provider.JCEKeyGenerator$RIPEMD128HMAC");
  344. put("KeyGenerator.HMACRIPEMD160",
  345. "org.bouncycastle.jce.provider.JCEKeyGenerator$RIPEMD160HMAC");
  346. put("KeyGenerator.HMACSHA1", "org.bouncycastle.jce.provider.JCEKeyGenerator$HMACSHA1");
  347. put("KeyGenerator.HMACTIGER", "org.bouncycastle.jce.provider.JCEKeyGenerator$HMACTIGER");
  348. //
  349. // key pair generators.
  350. //
  351. put("KeyPairGenerator.RSA", "org.bouncycastle.jce.provider.JDKKeyPairGenerator$RSA");
  352. put("KeyPairGenerator.DH", "org.bouncycastle.jce.provider.JDKKeyPairGenerator$DH");
  353. put("KeyPairGenerator.DSA", "org.bouncycastle.jce.provider.JDKKeyPairGenerator$DSA");
  354. put("KeyPairGenerator.ELGAMAL", "org.bouncycastle.jce.provider.JDKKeyPairGenerator$ElGamal");
  355. put("KeyPairGenerator.ECDSA", "org.bouncycastle.jce.provider.JDKKeyPairGenerator$ECDSA");
  356. put("KeyPairGenerator.ECDH", "org.bouncycastle.jce.provider.JDKKeyPairGenerator$ECDH");
  357. put("KeyPairGenerator.ECDHC", "org.bouncycastle.jce.provider.JDKKeyPairGenerator$ECDHC");
  358. put("KeyPairGenerator.ECIES", "org.bouncycastle.jce.provider.JDKKeyPairGenerator$ECDH");
  359. put("Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1.1", "RSA");
  360. //
  361. // key factories
  362. //
  363. put("KeyFactory.RSA", "org.bouncycastle.jce.provider.JDKKeyFactory$RSA");
  364. put("KeyFactory.DH", "org.bouncycastle.jce.provider.JDKKeyFactory$DH");
  365. put("KeyFactory.DSA", "org.bouncycastle.jce.provider.JDKKeyFactory$DSA");
  366. put("KeyFactory.ELGAMAL", "org.bouncycastle.jce.provider.JDKKeyFactory$ElGamal");
  367. put("KeyFactory.ElGamal", "org.bouncycastle.jce.provider.JDKKeyFactory$ElGamal");
  368. put("KeyFactory.EC", "org.bouncycastle.jce.provider.JDKKeyFactory$EC");
  369. put("KeyFactory.ECDSA", "org.bouncycastle.jce.provider.JDKKeyFactory$ECDSA");
  370. put("KeyFactory.ECDH", "org.bouncycastle.jce.provider.JDKKeyFactory$ECDH");
  371. put("KeyFactory.ECDHC", "org.bouncycastle.jce.provider.JDKKeyFactory$ECDHC");
  372. put("Alg.Alias.KeyFactory.1.2.840.113549.1.1.1", "RSA");
  373. put("Alg.Alias.KeyFactory.1.2.840.10040.4.1", "DSA");
  374. //
  375. // Algorithm parameters
  376. //
  377. put("AlgorithmParameters.DES",
  378. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  379. put("Alg.Alias.AlgorithmParameters.1.3.14.3.2.7", "DES");
  380. put("AlgorithmParameters.DESEDE",
  381. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  382. put("AlgorithmParameters.1.2.840.113549.3.7",
  383. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  384. put("AlgorithmParameters.RC2",
  385. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$RC2AlgorithmParameters");
  386. put("AlgorithmParameters.1.2.840.113549.3.2",
  387. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$RC2AlgorithmParameters");
  388. put("AlgorithmParameters.RC5",
  389. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  390. put("AlgorithmParameters.RC6",
  391. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  392. put("AlgorithmParameters.IDEA",
  393. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IDEAAlgorithmParameters");
  394. put("AlgorithmParameters.BLOWFISH",
  395. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  396. put("AlgorithmParameters.TWOFISH",
  397. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  398. put("AlgorithmParameters.SKIPJACK",
  399. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  400. put("AlgorithmParameters.RIJNDAEL",
  401. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  402. put("AlgorithmParameters.AES",
  403. "org.bouncycastle.jce.provider.JDKAlgorithmParameters$IVAlgorithmParameters");
  404. put("Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.2", "AES");
  405. put("Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.22", "AES");
  406. put("Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.42", "AES");
  407. put("Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.2", "AES");
  408. put("Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.22", "AES");
  409. put("Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.42", "AES");
  410. //
  411. // secret key factories.
  412. //
  413. put("SecretKeyFactory.PBE/PKCS5",
  414. "org.bouncycastle.jce.provider.JCESecretKeyFactory$PBE_PKCS5");
  415. put("SecretKeyFactory.PBE/PKCS12",
  416. "org.bouncycastle.jce.provider.JCESecretKeyFactory$PBE_PKCS12");
  417. put("SecretKeyFactory.DES", "org.bouncycastle.jce.provider.JCESecretKeyFactory$DES");
  418. put("SecretKeyFactory.DESEDE", "org.bouncycastle.jce.provider.JCESecretKeyFactory$DESede");
  419. put("SecretKeyFactory.DESEDE", "org.bouncycastle.jce.provider.JCESecretKeyFactory$DESede");
  420. put("Alg.Alias.SecretKeyFactory.PBE", "PBE/PKCS5");
  421. put("Alg.Alias.SecretKeyFactory.PBEWITHMD5ANDDES", "PBE/PKCS5");
  422. put("Alg.Alias.SecretKeyFactory.BROKENPBEWITHMD5ANDDES", "PBE/PKCS5");
  423. put("Alg.Alias.SecretKeyFactory.PBEWITHMD5ANDRC2", "PBE/PKCS5");
  424. put("Alg.Alias.SecretKeyFactory.PBEWITHSHA1ANDDES", "PBE/PKCS5");
  425. put("Alg.Alias.SecretKeyFactory.BROKENPBEWITHSHA1ANDDES", "PBE/PKCS5");
  426. put("Alg.Alias.SecretKeyFactory.PBEWITHSHA1ANDRC2", "PBE/PKCS5");
  427. put("Alg.Alias.SecretKeyFactory.PBEWITHSHAAND3-KEYTRIPLEDES-CBC", "PBE/PKCS12");
  428. put("Alg.Alias.SecretKeyFactory.OLDPBEWITHSHAAND3-KEYTRIPLEDES-CBC", "PBE/PKCS12");
  429. put("Alg.Alias.SecretKeyFactory.BROKENPBEWITHSHAAND3-KEYTRIPLEDES-CBC", "PBE/PKCS12");
  430. put("Alg.Alias.SecretKeyFactory.PBEWITHSHAAND2-KEYTRIPLEDES-CBC", "PBE/PKCS12");
  431. put("Alg.Alias.SecretKeyFactory.BROKENPBEWITHSHAAND2-KEYTRIPLEDES-CBC", "PBE/PKCS12");
  432. put("Alg.Alias.SecretKeyFactory.PBEWITHSHAAND128BITRC4", "PBE/PKCS12");
  433. put("Alg.Alias.SecretKeyFactory.PBEWITHSHAAND40BITRC4", "PBE/PKCS12");
  434. put("Alg.Alias.SecretKeyFactory.PBEWITHSHAAND128BITRC2-CBC", "PBE/PKCS12");
  435. put("Alg.Alias.SecretKeyFactory.PBEWITHSHAAND40BITRC2-CBC", "PBE/PKCS12");
  436. put("Alg.Alias.SecretKeyFactory.PBEWITHSHAANDTWOFISH-CBC", "PBE/PKCS12");
  437. put("Alg.Alias.SecretKeyFactory.OLDPBEWITHSHAANDTWOFISH-CBC", "PBE/PKCS12");
  438. put("Alg.Alias.SecretKeyFactory.PBEWITHSHAANDIDEA-CBC", "PBE/PKCS12");
  439. put("Alg.Alias.SecretKeyFactory.PBEWITHHMACSHA", "PBE/PKCS12");
  440. put("Alg.Alias.SecretKeyFactory.PBEWITHHMACRIPEMD160", "PBE/PKCS12");
  441. put("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.1", "PBE/PKCS12");
  442. put("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.2", "PBE/PKCS12");
  443. put("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.3", "PBE/PKCS12");
  444. put("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.4", "PBE/PKCS12");
  445. put("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.5", "PBE/PKCS12");
  446. put("Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.6", "PBE/PKCS12");
  447. put("Alg.Alias.SecretKeyFactory.1.3.14.3.2.26", "PBE/PKCS12");
  448. //
  449. // MAC's
  450. //
  451. put("Mac.DESMAC", "org.bouncycastle.jce.provider.JCEMac$DES");
  452. put("Alg.Alias.Mac.DES", "DESMAC");
  453. put("Mac.DESMAC/CFB8", "org.bouncycastle.jce.provider.JCEMac$DESCFB8");
  454. put("Alg.Alias.Mac.DES/CFB8", "DESMAC/CFB8");
  455. put("Mac.DESEDEMAC", "org.bouncycastle.jce.provider.JCEMac$DESede");
  456. put("Alg.Alias.Mac.DESEDE", "DESEDEMAC");
  457. put("Mac.DESEDEMAC/CFB8", "org.bouncycastle.jce.provider.JCEMac$DESedeCFB8");
  458. put("Alg.Alias.Mac.DESEDE/CFB8", "DESEDEMAC/CFB8");
  459. put("Mac.SKIPJACKMAC", "org.bouncycastle.jce.provider.JCEMac$Skipjack");
  460. put("Alg.Alias.Mac.SKIPJACK", "SKIPJACKMAC");
  461. put("Mac.SKIPJACKMAC/CFB8", "org.bouncycastle.jce.provider.JCEMac$SkipjackCFB8");
  462. put("Alg.Alias.Mac.SKIPJACK/CFB8", "SKIPJACKMAC/CFB8");
  463. put("Mac.IDEAMAC", "org.bouncycastle.jce.provider.JCEMac$IDEA");
  464. put("Alg.Alias.Mac.IDEA", "IDEAMAC");
  465. put("Mac.IDEAMAC/CFB8", "org.bouncycastle.jce.provider.JCEMac$IDEACFB8");
  466. put("Alg.Alias.Mac.IDEA/CFB8", "IDEAMAC/CFB8");
  467. put("Mac.RC2MAC", "org.bouncycastle.jce.provider.JCEMac$RC2");
  468. put("Alg.Alias.Mac.RC2", "RC2MAC");
  469. put("Mac.RC2MAC/CFB8", "org.bouncycastle.jce.provider.JCEMac$RC2CFB8");
  470. put("Alg.Alias.Mac.RC2/CFB8", "RC2MAC/CFB8");
  471. put("Mac.RC5MAC", "org.bouncycastle.jce.provider.JCEMac$RC5");
  472. put("Alg.Alias.Mac.RC5", "RC5MAC");
  473. put("Mac.RC5MAC/CFB8", "org.bouncycastle.jce.provider.JCEMac$RC5CFB8");
  474. put("Alg.Alias.Mac.RC5/CFB8", "RC5MAC/CFB8");
  475. put("Mac.HMACMD2", "org.bouncycastle.jce.provider.JCEMac$MD2");
  476. put("Alg.Alias.Mac.HMAC-MD2", "HMACMD2");
  477. put("Alg.Alias.Mac.HMAC/MD2", "HMACMD2");
  478. put("Mac.HMACMD4", "org.bouncycastle.jce.provider.JCEMac$MD4");
  479. put("Alg.Alias.Mac.HMAC-MD4", "HMACMD4");
  480. put("Alg.Alias.Mac.HMAC/MD4", "HMACMD4");
  481. put("Mac.HMACMD5", "org.bouncycastle.jce.provider.JCEMac$MD5");
  482. put("Alg.Alias.Mac.HMAC-MD5", "HMACMD5");
  483. put("Alg.Alias.Mac.HMAC/MD5", "HMACMD5");
  484. put("Mac.HMACRIPEMD128", "org.bouncycastle.jce.provider.JCEMac$RIPEMD128");
  485. put("Alg.Alias.Mac.HMAC-RIPEMD128", "HMACRIPEMD128");
  486. put("Alg.Alias.Mac.HMAC/RIPEMD128", "HMACRIPEMD128");
  487. put("Mac.HMACRIPEMD160", "org.bouncycastle.jce.provider.JCEMac$RIPEMD160");
  488. put("Alg.Alias.Mac.HMAC-RIPEMD160", "HMACRIPEMD160");
  489. put("Alg.Alias.Mac.HMAC/RIPEMD160", "HMACRIPEMD160");
  490. put("Mac.HMACSHA1", "org.bouncycastle.jce.provider.JCEMac$SHA1");
  491. put("Alg.Alias.Mac.HMAC-SHA1", "HMACSHA1");
  492. put("Alg.Alias.Mac.HMAC/SHA1", "HMACSHA1");
  493. put("Mac.HMACSHA256", "org.bouncycastle.jce.provider.JCEMac$SHA256");
  494. put("Alg.Alias.Mac.HMAC-SHA256", "HMACSHA256");
  495. put("Alg.Alias.Mac.HMAC/SHA256", "HMACSHA256");
  496. put("Mac.HMACSHA384", "org.bouncycastle.jce.provider.JCEMac$SHA384");
  497. put("Alg.Alias.Mac.HMAC-SHA384", "HMACSHA384");
  498. put("Alg.Alias.Mac.HMAC/SHA384", "HMACSHA384");
  499. put("Mac.HMACSHA512", "org.bouncycastle.jce.provider.JCEMac$SHA512");
  500. put("Alg.Alias.Mac.HMAC-SHA512", "HMACSHA512");
  501. put("Alg.Alias.Mac.HMAC/SHA512", "HMACSHA512");
  502. put("Mac.HMACTiger", "org.bouncycastle.jce.provider.JCEMac$Tiger");
  503. put("Alg.Alias.Mac.HMAC-Tiger", "HMACTiger");
  504. put("Alg.Alias.Mac.HMAC/Tiger", "HMACTiger");
  505. put("Mac.PBEWITHHMACSHA", "org.bouncycastle.jce.provider.JCEMac$PBEWithSHA");
  506. put("Mac.PBEWITHHMACRIPEMD160", "org.bouncycastle.jce.provider.JCEMac$PBEWithRIPEMD160");
  507. put("Alg.Alias.Mac.1.3.14.3.2.26", "PBEWITHHMACSHA");
  508. //
  509. // MessageDigests
  510. //
  511. put("MessageDigest.SHA-1", "org.bouncycastle.jce.provider.JDKMessageDigest$SHA1");
  512. put("Alg.Alias.MessageDigest.SHA1", "SHA-1");
  513. put("Alg.Alias.MessageDigest.SHA", "SHA-1");
  514. put("Alg.Alias.MessageDigest.1.3.14.3.2.26", "SHA-1");
  515. put("MessageDigest.SHA-256", "org.bouncycastle.jce.provider.JDKMessageDigest$SHA256");
  516. put("MessageDigest.SHA-384", "org.bouncycastle.jce.provider.JDKMessageDigest$SHA384");
  517. put("MessageDigest.SHA-512", "org.bouncycastle.jce.provider.JDKMessageDigest$SHA512");
  518. put("MessageDigest.MD2", "org.bouncycastle.jce.provider.JDKMessageDigest$MD2");
  519. put("MessageDigest.MD4", "org.bouncycastle.jce.provider.JDKMessageDigest$MD4");
  520. put("MessageDigest.MD5", "org.bouncycastle.jce.provider.JDKMessageDigest$MD5");
  521. put("MessageDigest.1.2.840.113549.2.5",
  522. "org.bouncycastle.jce.provider.JDKMessageDigest$MD5");
  523. put("MessageDigest.RIPEMD128", "org.bouncycastle.jce.provider.JDKMessageDigest$RIPEMD128");
  524. put("MessageDigest.RIPEMD160", "org.bouncycastle.jce.provider.JDKMessageDigest$RIPEMD160");
  525. put("MessageDigest.RIPEMD256", "org.bouncycastle.jce.provider.JDKMessageDigest$RIPEMD256");
  526. put("MessageDigest.RIPEMD320", "org.bouncycastle.jce.provider.JDKMessageDigest$RIPEMD320");
  527. put("MessageDigest.Tiger", "org.bouncycastle.jce.provider.JDKMessageDigest$Tiger");
  528. //
  529. // signature algorithms.
  530. //
  531. put("Signature.MD2WithRSAEncryption",
  532. "org.bouncycastle.jce.provider.JDKDigestSignature$MD2WithRSAEncryption");
  533. put("Signature.MD5WithRSAEncryption",
  534. "org.bouncycastle.jce.provider.JDKDigestSignature$MD5WithRSAEncryption");
  535. put("Signature.SHA1WithRSAEncryption",
  536. "org.bouncycastle.jce.provider.JDKDigestSignature$SHA1WithRSAEncryption");
  537. put("Signature.RIPEMD160WithRSAEncryption",
  538. "org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD160WithRSAEncryption");
  539. put("Signature.RIPEMD128WithRSAEncryption",
  540. "org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD128WithRSAEncryption");
  541. put("Signature.RIPEMD256WithRSAEncryption",
  542. "org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD256WithRSAEncryption");
  543. put("Signature.DSA", "org.bouncycastle.jce.provider.JDKDSASigner$stdDSA");
  544. put("Signature.ECDSA", "org.bouncycastle.jce.provider.JDKDSASigner$ecDSA");
  545. put("Signature.SHA1withRSA/ISO9796-2",
  546. "org.bouncycastle.jce.provider.JDKISOSignature$SHA1WithRSAEncryption");
  547. put("Signature.MD5withRSA/ISO9796-2",
  548. "org.bouncycastle.jce.provider.JDKISOSignature$MD5WithRSAEncryption");
  549. put("Signature.RIPEMD160withRSA/ISO9796-2",
  550. "org.bouncycastle.jce.provider.JDKISOSignature$RIPEMD160WithRSAEncryption");
  551. put("Signature.SHA1withRSA/PSS", "org.bouncycastle.jce.provider.JDKPSSSigner$SHA1withRSA");
  552. put("Signature.SHA256withRSA/PSS",
  553. "org.bouncycastle.jce.provider.JDKPSSSigner$SHA256withRSA");
  554. put("Signature.SHA384withRSA/PSS",
  555. "org.bouncycastle.jce.provider.JDKPSSSigner$SHA384withRSA");
  556. put("Signature.SHA512withRSA/PSS",
  557. "org.bouncycastle.jce.provider.JDKPSSSigner$SHA512withRSA");
  558. put("Alg.Alias.Signature.MD2withRSAEncryption", "MD2WithRSAEncryption");
  559. put("Alg.Alias.Signature.MD5withRSAEncryption", "MD5WithRSAEncryption");
  560. put("Alg.Alias.Signature.SHA1withRSAEncryption", "SHA1WithRSAEncryption");
  561. put("Alg.Alias.Signature.SHA256withRSAEncryption", "SHA256withRSA/PSS");
  562. put("Alg.Alias.Signature.SHA384withRSAEncryption", "SHA384withRSA/PSS");
  563. put("Alg.Alias.Signature.SHA512withRSAEncryption", "SHA512withRSA/PSS");
  564. put("Alg.Alias.Signature.SHA256WithRSAEncryption", "SHA256withRSA/PSS");
  565. put("Alg.Alias.Signature.SHA384WithRSAEncryption", "SHA384withRSA/PSS");
  566. put("Alg.Alias.Signature.SHA512WithRSAEncryption", "SHA512withRSA/PSS");
  567. put("Alg.Alias.Signature.SHA256WITHRSAENCRYPTION", "SHA256withRSA/PSS");
  568. put("Alg.Alias.Signature.SHA384WITHRSAENCRYPTION", "SHA384withRSA/PSS");
  569. put("Alg.Alias.Signature.SHA512WITHRSAENCRYPTION", "SHA512withRSA/PSS");
  570. put("Alg.Alias.Signature.RIPEMD160withRSAEncryption", "RIPEMD160WithRSAEncryption");
  571. put("Alg.Alias.Signature.1.2.840.113549.1.1.2", "MD2WithRSAEncryption");
  572. put("Alg.Alias.Signature.MD2WithRSA", "MD2WithRSAEncryption");
  573. put("Alg.Alias.Signature.MD2withRSA", "MD2WithRSAEncryption");
  574. put("Alg.Alias.Signature.MD2/RSA", "MD2WithRSAEncryption");
  575. put("Alg.Alias.Signature.MD5WithRSA", "MD5WithRSAEncryption");
  576. put("Alg.Alias.Signature.MD5withRSA", "MD5WithRSAEncryption");
  577. put("Alg.Alias.Signature.MD5/RSA", "MD5WithRSAEncryption");
  578. put("Alg.Alias.Signature.1.2.840.113549.1.1.4", "MD5WithRSAEncryption");
  579. put("Alg.Alias.Signature.SHA1WithRSA", "SHA1WithRSAEncryption");
  580. put("Alg.Alias.Signature.SHA1withRSA", "SHA1WithRSAEncryption");
  581. put("Alg.Alias.Signature.SHA1/RSA", "SHA1WithRSAEncryption");
  582. put("Alg.Alias.Signature.SHA-1/RSA", "SHA1WithRSAEncryption");
  583. put("Alg.Alias.Signature.1.2.840.113549.1.1.5", "SHA1WithRSAEncryption");
  584. put("Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.113549.1.1.1", "SHA1WithRSAEncryption");
  585. put("Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.113549.1.1.5", "SHA1WithRSAEncryption");
  586. put("Alg.Alias.Signature.1.2.840.113549.2.5with1.2.840.113549.1.1.1",
  587. "MD5WithRSAEncryption");
  588. put("Alg.Alias.Signature.RIPEMD160WithRSA", "RIPEMD160WithRSAEncryption");
  589. put("Alg.Alias.Signature.RIPEMD160withRSA", "RIPEMD160WithRSAEncryption");
  590. put("Alg.Alias.Signature.RIPEMD128WithRSA", "RIPEMD128WithRSAEncryption");
  591. put("Alg.Alias.Signature.RIPEMD128withRSA", "RIPEMD128WithRSAEncryption");
  592. put("Alg.Alias.Signature.RIPEMD256WithRSA", "RIPEMD256WithRSAEncryption");
  593. put("Alg.Alias.Signature.RIPEMD256withRSA", "RIPEMD256WithRSAEncryption");
  594. put("Alg.Alias.Signature.RIPEMD-160/RSA", "RIPEMD160WithRSAEncryption");
  595. put("Alg.Alias.Signature.RMD160withRSA", "RIPEMD160WithRSAEncryption");
  596. put("Alg.Alias.Signature.RMD160/RSA", "RIPEMD160WithRSAEncryption");
  597. put("Alg.Alias.Signature.1.3.36.3.3.1.2", "RIPEMD160WithRSAEncryption");
  598. put("Alg.Alias.Signature.1.3.36.3.3.1.3", "RIPEMD128WithRSAEncryption");
  599. put("Alg.Alias.Signature.1.3.36.3.3.1.4", "RIPEMD256WithRSAEncryption");
  600. put("Alg.Alias.Signature.MD2WITHRSAENCRYPTION", "MD2WithRSAEncryption");
  601. put("Alg.Alias.Signature.MD5WITHRSAENCRYPTION", "MD5WithRSAEncryption");
  602. put("Alg.Alias.Signature.SHA1WITHRSAENCRYPTION", "SHA1WithRSAEncryption");
  603. put("Alg.Alias.Signature.RIPEMD160WITHRSAENCRYPTION", "RIPEMD160WithRSAEncryption");
  604. put("Alg.Alias.Signature.MD5WITHRSA", "MD5WithRSAEncryption");
  605. put("Alg.Alias.Signature.SHA1WITHRSA", "SHA1WithRSAEncryption");
  606. put("Alg.Alias.Signature.RIPEMD160WITHRSA", "RIPEMD160WithRSAEncryption");
  607. put("Alg.Alias.Signature.RMD160WITHRSA", "RIPEMD160WithRSAEncryption");
  608. put("Alg.Alias.Signature.RIPEMD160WITHRSA", "RIPEMD160WithRSAEncryption");
  609. put("Alg.Alias.Signature.SHA1withECDSA", "ECDSA");
  610. put("Alg.Alias.Signature.ECDSAwithSHA1", "ECDSA");
  611. put("Alg.Alias.Signature.SHA1WITHECDSA", "ECDSA");
  612. put("Alg.Alias.Signature.ECDSAWITHSHA1", "ECDSA");
  613. put("Alg.Alias.Signature.SHA1WithECDSA", "ECDSA");
  614. put("Alg.Alias.Signature.ECDSAWithSHA1", "ECDSA");
  615. put("Alg.Alias.Signature.1.2.840.10045.4.1", "ECDSA");
  616. put("Alg.Alias.Signature.SHA/DSA", "DSA");
  617. put("Alg.Alias.Signature.SHA1withDSA", "DSA");
  618. put("Alg.Alias.Signature.SHA1WITHDSA", "DSA");
  619. put("Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10040.4.1", "DSA");
  620. put("Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10040.4.3", "DSA");
  621. put("Alg.Alias.Signature.DSAwithSHA1", "DSA");
  622. put("Alg.Alias.Signature.DSAWITHSHA1", "DSA");
  623. put("Alg.Alias.Signature.SHA1WithDSA", "DSA");
  624. put("Alg.Alias.Signature.DSAWithSHA1", "DSA");
  625. put("Alg.Alias.Signature.1.2.840.10040.4.3", "DSA");
  626. put("Alg.Alias.Signature.MD5WithRSA/ISO9796-2", "MD5withRSA/ISO9796-2");
  627. put("Alg.Alias.Signature.SHA1WithRSA/ISO9796-2", "SHA1withRSA/ISO9796-2");
  628. put("Alg.Alias.Signature.RIPEMD160WithRSA/ISO9796-2", "RIPEMD160withRSA/ISO9796-2");
  629. // Certification Path API
  630. put("CertPathValidator.PKIX", "org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi");
  631. put("CertPathValidator.PKIX ValidationAlgorithm", "RFC2459");
  632. put("CertPathBuilder.PKIX", "org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi");
  633. put("CertPathBuilder.PKIX ValidationAlgorithm", "RFC2459");
  634. put("CertStore.Collection", "org.bouncycastle.jce.provider.CertStoreCollectionSpi");
  635. }
  636. }