Home | History | Annotate | Download | only in asymmetric
      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