14c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompackage org.bouncycastle.jcajce.provider.asymmetric;
24c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
34c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// BEGIN android-removed
44c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.asn1.eac.EACObjectIdentifiers;
54c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers;
64c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom// END android-removed
74c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.x9.X9ObjectIdentifiers;
84c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi;
94c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider;
114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompublic class EC
134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom{
144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    private static final String PREFIX = "org.bouncycastle.jcajce.provider.asymmetric" + ".ec.";
154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public static class Mappings
174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        extends AsymmetricAlgorithmProvider
184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        public Mappings()
204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        {
214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        }
224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        public void configure(ConfigurableProvider provider)
244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        {
254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("KeyAgreement.ECDH", PREFIX + "KeyAgreementSpi$DH");
264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // BEGIN android-removed
274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyAgreement.ECDHC", PREFIX + "KeyAgreementSpi$DHC");
284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyAgreement.ECMQV", PREFIX + "KeyAgreementSpi$MQV");
294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyAgreement." + X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, PREFIX + "KeyAgreementSpi$DHwithSHA1KDF");
304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyAgreement." + X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, PREFIX + "KeyAgreementSpi$MQVwithSHA1KDF");
314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // END android-removed
324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            registerOid(provider, X9ObjectIdentifiers.id_ecPublicKey, "EC", new KeyFactorySpi.EC());
344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // TODO Should this be an alias for ECDH?
354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            registerOid(provider, X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, "EC", new KeyFactorySpi.EC());
364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // BEGIN android-removed
374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // registerOid(provider, X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, "ECMQV", new KeyFactorySpi.ECMQV());
384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // END android-removed
394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // BEGIN android-removed
414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // registerOidAlgorithmParameters(provider, X9ObjectIdentifiers.id_ecPublicKey, "EC");
424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // // TODO Should this be an alias for ECDH?
434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // registerOidAlgorithmParameters(provider, X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme, "EC");
444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // registerOidAlgorithmParameters(provider, X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme, "EC");
454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // END android-removed
464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("KeyFactory.EC", PREFIX + "KeyFactorySpi$EC");
484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // BEGIN android-removed
494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyFactory.ECDSA", PREFIX + "KeyFactorySpi$ECDSA");
504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyFactory.ECDH", PREFIX + "KeyFactorySpi$ECDH");
514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyFactory.ECDHC", PREFIX + "KeyFactorySpi$ECDHC");
524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyFactory.ECMQV", PREFIX + "KeyFactorySpi$ECMQV");
534c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // END android-removed
544c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
554c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("KeyPairGenerator.EC", PREFIX + "KeyPairGeneratorSpi$EC");
564c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // BEGIN android-removed
574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyPairGenerator.ECDSA", PREFIX + "KeyPairGeneratorSpi$ECDSA");
584c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyPairGenerator.ECDH", PREFIX + "KeyPairGeneratorSpi$ECDH");
594c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyPairGenerator.ECDHC", PREFIX + "KeyPairGeneratorSpi$ECDHC");
604c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyPairGenerator.ECIES", PREFIX + "KeyPairGeneratorSpi$ECDH");
614c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("KeyPairGenerator.ECMQV", PREFIX + "KeyPairGeneratorSpi$ECMQV");
62e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            //
63e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.ECIES", PREFIX + "IESCipher$ECIES");
64e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.ECIESwithAES", PREFIX + "IESCipher$ECIESwithAES");
65e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.ECIESWITHAES", PREFIX + "IESCipher$ECIESwithAES");
66e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.ECIESwithDESEDE", PREFIX + "IESCipher$ECIESwithDESede");
67e1142c149e244797ce73b0e7fad40816e447a817Brian Carlstrom            // provider.addAlgorithm("Cipher.ECIESWITHDESEDE", PREFIX + "IESCipher$ECIESwithDESede");
684c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // END android-removed
694c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
704c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Signature.ECDSA", PREFIX + "SignatureSpi$ecDSA");
714c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Signature.NONEwithECDSA", PREFIX + "SignatureSpi$ecDSAnone");
724c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
734c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.Signature.SHA1withECDSA", "ECDSA");
744c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.Signature.ECDSAwithSHA1", "ECDSA");
754c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.Signature.SHA1WITHECDSA", "ECDSA");
764c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.Signature.ECDSAWITHSHA1", "ECDSA");
774c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.Signature.SHA1WithECDSA", "ECDSA");
784c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.Signature.ECDSAWithSHA1", "ECDSA");
794c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            provider.addAlgorithm("Alg.Alias.Signature.1.2.840.10045.4.1", "ECDSA");
804c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // BEGIN android-removed
814c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("Alg.Alias.Signature." + TeleTrusTObjectIdentifiers.ecSignWithSha1, "ECDSA");
825db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root            //
835db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root            // provider.addAlgorithm("Signature.DETECDSA", PREFIX + "SignatureSpi$ecDetDSA");
845db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root            // provider.addAlgorithm("Signature.SHA1WITHDETECDSA", PREFIX + "SignatureSpi$ecDetDSA");
855db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root            // provider.addAlgorithm("Signature.SHA224WITHDETECDSA", PREFIX + "SignatureSpi$ecDetDSA224");
865db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root            // provider.addAlgorithm("Signature.SHA256WITHDETECDSA", PREFIX + "SignatureSpi$ecDetDSA256");
875db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root            // provider.addAlgorithm("Signature.SHA384WITHDETECDSA", PREFIX + "SignatureSpi$ecDetDSA384");
885db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root            // provider.addAlgorithm("Signature.SHA512WITHDETECDSA", PREFIX + "SignatureSpi$ecDetDSA512");
894c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // END android-removed
904c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
9187490acd76f544251011cf49753d4d0a61f86a66Kenny Root            addSignatureAlgorithm(provider, "SHA224", "ECDSA", PREFIX + "SignatureSpi$ecDSA224", X9ObjectIdentifiers.ecdsa_with_SHA224);
924c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            addSignatureAlgorithm(provider, "SHA256", "ECDSA", PREFIX + "SignatureSpi$ecDSA256", X9ObjectIdentifiers.ecdsa_with_SHA256);
934c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            addSignatureAlgorithm(provider, "SHA384", "ECDSA", PREFIX + "SignatureSpi$ecDSA384", X9ObjectIdentifiers.ecdsa_with_SHA384);
944c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            addSignatureAlgorithm(provider, "SHA512", "ECDSA", PREFIX + "SignatureSpi$ecDSA512", X9ObjectIdentifiers.ecdsa_with_SHA512);
954c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // BEGIN android-removed
964c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // addSignatureAlgorithm(provider, "RIPEMD160", "ECDSA", PREFIX + "SignatureSpi$ecDSARipeMD160",TeleTrusTObjectIdentifiers.ecSignWithRipemd160);
974c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            //
984c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("Signature.SHA1WITHECNR", PREFIX + "SignatureSpi$ecNR");
994c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("Signature.SHA224WITHECNR", PREFIX + "SignatureSpi$ecNR224");
1004c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("Signature.SHA256WITHECNR", PREFIX + "SignatureSpi$ecNR256");
1014c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("Signature.SHA384WITHECNR", PREFIX + "SignatureSpi$ecNR384");
1024c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // provider.addAlgorithm("Signature.SHA512WITHECNR", PREFIX + "SignatureSpi$ecNR512");
1034c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            //
1044c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // addSignatureAlgorithm(provider, "SHA1", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA", EACObjectIdentifiers.id_TA_ECDSA_SHA_1);
1054c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // addSignatureAlgorithm(provider, "SHA224", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA224", EACObjectIdentifiers.id_TA_ECDSA_SHA_224);
1064c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // addSignatureAlgorithm(provider, "SHA256", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA256", EACObjectIdentifiers.id_TA_ECDSA_SHA_256);
107a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom            // addSignatureAlgorithm(provider, "SHA384", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA384", EACObjectIdentifiers.id_TA_ECDSA_SHA_384);
108a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom            // addSignatureAlgorithm(provider, "SHA512", "CVC-ECDSA", PREFIX + "SignatureSpi$ecCVCDSA512", EACObjectIdentifiers.id_TA_ECDSA_SHA_512);
1094c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            // END android-removed
1104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        }
1114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
1124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom}
113