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