15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)package org.bouncycastle.jcajce.provider.asymmetric;
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// BEGIN android-removed
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// import org.bouncycastle.asn1.eac.EACObjectIdentifiers;
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers;
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// END android-removed
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.bouncycastle.asn1.x9.X9ObjectIdentifiers;
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi;
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider;
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public class EC
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    private static final String PREFIX = "org.bouncycastle.jcajce.provider.asymmetric" + ".ec.";
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    public static class Mappings
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        extends AsymmetricAlgorithmProvider
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        public Mappings()
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }
22
23        public void configure(ConfigurableProvider provider)
24        {
25            provider.addAlgorithm("KeyAgreement.ECDH", PREFIX + "KeyAgreementSpi$DH");
26            // BEGIN android-removed
27            // provider.addAlgorithm("KeyAgreement.ECDHC", PREFIX + "KeyAgreementSpi$DHC");
28            // provider.addAlgorithm("KeyAgreement.ECMQV", PREFIX + "KeyAgreementSpi$MQV");
29            // provider.addAlgorithm("KeyAgreement." + X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, PREFIX + "KeyAgreementSpi$DHwithSHA1KDF");
30            // provider.addAlgorithm("KeyAgreement." + X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, PREFIX + "KeyAgreementSpi$MQVwithSHA1KDF");
31            // END android-removed
32
33            registerOid(provider, X9ObjectIdentifiers.id_ecPublicKey, "EC", new KeyFactorySpi.EC());
34            // TODO Should this be an alias for ECDH?
35            registerOid(provider, X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, "EC", new KeyFactorySpi.EC());
36            // BEGIN android-removed
37            // registerOid(provider, X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, "ECMQV", new KeyFactorySpi.ECMQV());
38            // END android-removed
39
40            // BEGIN android-removed
41            // registerOidAlgorithmParameters(provider, X9ObjectIdentifiers.id_ecPublicKey, "EC");
42            // // TODO Should this be an alias for ECDH?
43            // registerOidAlgorithmParameters(provider, X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, "EC");
44            // registerOidAlgorithmParameters(provider, X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, "EC");
45            // END android-removed
46
47            provider.addAlgorithm("KeyFactory.EC", PREFIX + "KeyFactorySpi$EC");
48            // BEGIN android-removed
49            // provider.addAlgorithm("KeyFactory.ECDSA", PREFIX + "KeyFactorySpi$ECDSA");
50            // provider.addAlgorithm("KeyFactory.ECDH", PREFIX + "KeyFactorySpi$ECDH");
51            // provider.addAlgorithm("KeyFactory.ECDHC", PREFIX + "KeyFactorySpi$ECDHC");
52            // provider.addAlgorithm("KeyFactory.ECMQV", PREFIX + "KeyFactorySpi$ECMQV");
53            // END android-removed
54
55            provider.addAlgorithm("KeyPairGenerator.EC", PREFIX + "KeyPairGeneratorSpi$EC");
56            // BEGIN android-removed
57            // provider.addAlgorithm("KeyPairGenerator.ECDSA", PREFIX + "KeyPairGeneratorSpi$ECDSA");
58            // provider.addAlgorithm("KeyPairGenerator.ECDH", PREFIX + "KeyPairGeneratorSpi$ECDH");
59            // provider.addAlgorithm("KeyPairGenerator.ECDHC", PREFIX + "KeyPairGeneratorSpi$ECDHC");
60            // provider.addAlgorithm("KeyPairGenerator.ECIES", PREFIX + "KeyPairGeneratorSpi$ECDH");
61            // provider.addAlgorithm("KeyPairGenerator.ECMQV", PREFIX + "KeyPairGeneratorSpi$ECMQV");
62            //
63            // provider.addAlgorithm("Cipher.ECIES", PREFIX + "IESCipher$ECIES");
64            // provider.addAlgorithm("Cipher.ECIESwithAES", PREFIX + "IESCipher$ECIESwithAES");
65            // provider.addAlgorithm("Cipher.ECIESWITHAES", PREFIX + "IESCipher$ECIESwithAES");
66            // provider.addAlgorithm("Cipher.ECIESwithDESEDE", PREFIX + "IESCipher$ECIESwithDESede");
67            // provider.addAlgorithm("Cipher.ECIESWITHDESEDE", PREFIX + "IESCipher$ECIESwithDESede");
68            // END android-removed
69
70            provider.addAlgorithm("Signature.ECDSA", PREFIX + "SignatureSpi$ecDSA");
71            provider.addAlgorithm("Signature.NONEwithECDSA", PREFIX + "SignatureSpi$ecDSAnone");
72
73            provider.addAlgorithm("Alg.Alias.Signature.SHA1withECDSA", "ECDSA");
74            provider.addAlgorithm("Alg.Alias.Signature.ECDSAwithSHA1", "ECDSA");
75            provider.addAlgorithm("Alg.Alias.Signature.SHA1WITHECDSA", "ECDSA");
76            provider.addAlgorithm("Alg.Alias.Signature.ECDSAWITHSHA1", "ECDSA");
77            provider.addAlgorithm("Alg.Alias.Signature.SHA1WithECDSA", "ECDSA");
78            provider.addAlgorithm("Alg.Alias.Signature.ECDSAWithSHA1", "ECDSA");
79            provider.addAlgorithm("Alg.Alias.Signature.1.2.840.10045.4.1", "ECDSA");
80            // BEGIN android-removed
81            // provider.addAlgorithm("Alg.Alias.Signature." + TeleTrusTObjectIdentifiers.ecSignWithSha1, "ECDSA");
82            // END android-removed
83
84            // BEGIN android-removed
85            // addSignatureAlgorithm(provider, "SHA224", "ECDSA", PREFIX + "SignatureSpi$ecDSA224", X9ObjectIdentifiers.ecdsa_with_SHA224);
86            // END android-removed
87            addSignatureAlgorithm(provider, "SHA256", "ECDSA", PREFIX + "SignatureSpi$ecDSA256", X9ObjectIdentifiers.ecdsa_with_SHA256);
88            addSignatureAlgorithm(provider, "SHA384", "ECDSA", PREFIX + "SignatureSpi$ecDSA384", X9ObjectIdentifiers.ecdsa_with_SHA384);
89            addSignatureAlgorithm(provider, "SHA512", "ECDSA", PREFIX + "SignatureSpi$ecDSA512", X9ObjectIdentifiers.ecdsa_with_SHA512);
90            // BEGIN android-removed
91            // addSignatureAlgorithm(provider, "RIPEMD160", "ECDSA", PREFIX + "SignatureSpi$ecDSARipeMD160",TeleTrusTObjectIdentifiers.ecSignWithRipemd160);
92            //
93            // provider.addAlgorithm("Signature.SHA1WITHECNR", PREFIX + "SignatureSpi$ecNR");
94            // provider.addAlgorithm("Signature.SHA224WITHECNR", PREFIX + "SignatureSpi$ecNR224");
95            // provider.addAlgorithm("Signature.SHA256WITHECNR", PREFIX + "SignatureSpi$ecNR256");
96            // provider.addAlgorithm("Signature.SHA384WITHECNR", PREFIX + "SignatureSpi$ecNR384");
97            // provider.addAlgorithm("Signature.SHA512WITHECNR", PREFIX + "SignatureSpi$ecNR512");
98            //
99            // addSignatureAlgorithm(provider, "SHA1", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA", EACObjectIdentifiers.id_TA_ECDSA_SHA_1);
100            // addSignatureAlgorithm(provider, "SHA224", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA224", EACObjectIdentifiers.id_TA_ECDSA_SHA_224);
101            // addSignatureAlgorithm(provider, "SHA256", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA256", EACObjectIdentifiers.id_TA_ECDSA_SHA_256);
102            // addSignatureAlgorithm(provider, "SHA384", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA384", EACObjectIdentifiers.id_TA_ECDSA_SHA_384);
103            // addSignatureAlgorithm(provider, "SHA512", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA512", EACObjectIdentifiers.id_TA_ECDSA_SHA_512);
104            // END android-removed
105        }
106    }
107}
108