1 package org.bouncycastle.jce.provider.asymmetric; 2 3 import java.util.HashMap; 4 5 import org.bouncycastle.asn1.DERObjectIdentifier; 6 import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 7 // BEGIN android-removed 8 // import org.bouncycastle.asn1.eac.EACObjectIdentifiers; 9 // import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; 10 // END android-removed 11 import org.bouncycastle.asn1.x9.X9ObjectIdentifiers; 12 13 public class EC 14 { 15 public static class Mappings 16 extends HashMap 17 { 18 public Mappings() 19 { 20 put("KeyAgreement.ECDH", "org.bouncycastle.jce.provider.asymmetric.ec.KeyAgreement$DH"); 21 // BEGIN android-removed 22 // put("KeyAgreement.ECDHC", "org.bouncycastle.jce.provider.asymmetric.ec.KeyAgreement$DHC"); 23 // put("KeyAgreement.ECMQV", "org.bouncycastle.jce.provider.asymmetric.ec.KeyAgreement$MQV"); 24 // put("KeyAgreement." + X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, "org.bouncycastle.jce.provider.asymmetric.ec.KeyAgreement$DHwithSHA1KDF"); 25 // put("KeyAgreement." + X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, "org.bouncycastle.jce.provider.asymmetric.ec.KeyAgreement$MQVwithSHA1KDF"); 26 // END android-removed 27 28 put("KeyFactory.EC", "org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$EC"); 29 // BEGIN android-removed 30 // put("KeyFactory.ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDSA"); 31 // put("KeyFactory.ECDH", "org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDH"); 32 // put("KeyFactory.ECDHC", "org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDHC"); 33 // put("KeyFactory.ECMQV", "org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECMQV"); 34 // END android-removed 35 put("Alg.Alias.KeyFactory." + X9ObjectIdentifiers.id_ecPublicKey, "EC"); 36 // TODO Should this be an alias for ECDH? 37 put("Alg.Alias.KeyFactory." + X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, "EC"); 38 // BEGIN android-removed 39 // put("Alg.Alias.KeyFactory." + X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, "ECMQV"); 40 // 41 // put("KeyFactory.ECGOST3410", "org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECGOST3410"); 42 // put("Alg.Alias.KeyFactory.GOST-3410-2001", "ECGOST3410"); 43 // put("Alg.Alias.KeyFactory.ECGOST-3410", "ECGOST3410"); 44 // put("Alg.Alias.KeyFactory." + CryptoProObjectIdentifiers.gostR3410_2001, "ECGOST3410"); 45 // END android-removed 46 47 put("KeyPairGenerator.EC", "org.bouncycastle.jce.provider.asymmetric.ec.KeyPairGenerator$EC"); 48 // BEGIN android-removed 49 // put("KeyPairGenerator.ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.KeyPairGenerator$ECDSA"); 50 // put("KeyPairGenerator.ECDH", "org.bouncycastle.jce.provider.asymmetric.ec.KeyPairGenerator$ECDH"); 51 // put("KeyPairGenerator.ECDHC", "org.bouncycastle.jce.provider.asymmetric.ec.KeyPairGenerator$ECDHC"); 52 // put("KeyPairGenerator.ECIES", "org.bouncycastle.jce.provider.asymmetric.ec.KeyPairGenerator$ECDH"); 53 // put("KeyPairGenerator.ECMQV", "org.bouncycastle.jce.provider.asymmetric.ec.KeyPairGenerator$ECMQV"); 54 // END android-removed 55 // TODO Should this be an alias for ECDH? 56 put("Alg.Alias.KeyPairGenerator." + X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, "EC"); 57 // BEGIN android-removed 58 // put("Alg.Alias.KeyPairGenerator." + X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, "ECMQV"); 59 // 60 // put("KeyPairGenerator.ECGOST3410", "org.bouncycastle.jce.provider.asymmetric.ec.KeyPairGenerator$ECGOST3410"); 61 // put("Alg.Alias.KeyPairGenerator.ECGOST-3410", "ECGOST3410"); 62 // put("Alg.Alias.KeyPairGenerator.GOST-3410-2001", "ECGOST3410"); 63 // END android-removed 64 65 put("Signature.ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecDSA"); 66 put("Signature.NONEwithECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecDSAnone"); 67 68 put("Alg.Alias.Signature.SHA1withECDSA", "ECDSA"); 69 put("Alg.Alias.Signature.ECDSAwithSHA1", "ECDSA"); 70 put("Alg.Alias.Signature.SHA1WITHECDSA", "ECDSA"); 71 put("Alg.Alias.Signature.ECDSAWITHSHA1", "ECDSA"); 72 put("Alg.Alias.Signature.SHA1WithECDSA", "ECDSA"); 73 put("Alg.Alias.Signature.ECDSAWithSHA1", "ECDSA"); 74 put("Alg.Alias.Signature.1.2.840.10045.4.1", "ECDSA"); 75 // BEGIN android-removed 76 // put("Alg.Alias.Signature." + TeleTrusTObjectIdentifiers.ecSignWithSha1, "ECDSA"); 77 // 78 // addSignatureAlgorithm("SHA224", "ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecDSA224", X9ObjectIdentifiers.ecdsa_with_SHA224); 79 // END android-removed 80 addSignatureAlgorithm("SHA256", "ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecDSA256", X9ObjectIdentifiers.ecdsa_with_SHA256); 81 addSignatureAlgorithm("SHA384", "ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecDSA384", X9ObjectIdentifiers.ecdsa_with_SHA384); 82 addSignatureAlgorithm("SHA512", "ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecDSA512", X9ObjectIdentifiers.ecdsa_with_SHA512); 83 // BEGIN android-removed 84 // addSignatureAlgorithm("RIPEMD160", "ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecDSARipeMD160",TeleTrusTObjectIdentifiers.ecSignWithRipemd160); 85 // 86 // put("Signature.SHA1WITHECNR", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecNR"); 87 // put("Signature.SHA224WITHECNR", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecNR224"); 88 // put("Signature.SHA256WITHECNR", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecNR256"); 89 // put("Signature.SHA384WITHECNR", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecNR384"); 90 // put("Signature.SHA512WITHECNR", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecNR512"); 91 // 92 // addSignatureAlgorithm("SHA1", "CVC-ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecCVCDSA", EACObjectIdentifiers.id_TA_ECDSA_SHA_1); 93 // addSignatureAlgorithm("SHA224", "CVC-ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecCVCDSA224", EACObjectIdentifiers.id_TA_ECDSA_SHA_224); 94 // addSignatureAlgorithm("SHA256", "CVC-ECDSA", "org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecCVCDSA256", EACObjectIdentifiers.id_TA_ECDSA_SHA_256); 95 // END android-removed 96 } 97 98 private void addSignatureAlgorithm( 99 String digest, 100 String algorithm, 101 String className, 102 DERObjectIdentifier oid) 103 { 104 String mainName = digest + "WITH" + algorithm; 105 String jdk11Variation1 = digest + "with" + algorithm; 106 String jdk11Variation2 = digest + "With" + algorithm; 107 String alias = digest + "/" + algorithm; 108 109 put("Signature." + mainName, className); 110 put("Alg.Alias.Signature." + jdk11Variation1, mainName); 111 put("Alg.Alias.Signature." + jdk11Variation2, mainName); 112 put("Alg.Alias.Signature." + alias, mainName); 113 put("Alg.Alias.Signature." + oid, mainName); 114 put("Alg.Alias.Signature.OID." + oid, mainName); 115 } 116 } 117 } 118