116f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giropackage org.bouncycastle.jcajce.provider.asymmetric; 216f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 316f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giroimport org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 416f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giroimport org.bouncycastle.jcajce.provider.asymmetric.dsa.DSAUtil; 516f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giroimport org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpi; 616f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giroimport org.bouncycastle.jcajce.provider.config.ConfigurableProvider; 716f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giroimport org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider; 816f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giroimport org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter; 916f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 1016f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giropublic class DSA 1116f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro{ 1216f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro private static final String PREFIX = "org.bouncycastle.jcajce.provider.asymmetric" + ".dsa."; 1316f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 1416f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro public static class Mappings 1516f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro extends AsymmetricAlgorithmProvider 1616f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro { 1716f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro public Mappings() 1816f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro { 1916f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro } 2016f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 2116f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro public void configure(ConfigurableProvider provider) 2216f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro { 2316f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro provider.addAlgorithm("AlgorithmParameters.DSA", PREFIX + "AlgorithmParametersSpi"); 2416f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 2516f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro provider.addAlgorithm("AlgorithmParameterGenerator.DSA", PREFIX + "AlgorithmParameterGeneratorSpi"); 2616f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 2716f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro provider.addAlgorithm("KeyPairGenerator.DSA", PREFIX + "KeyPairGeneratorSpi"); 2816f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro provider.addAlgorithm("KeyFactory.DSA", PREFIX + "KeyFactorySpi"); 2916f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 30c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // BEGIN android-changed 31c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Signature.SHA1withDSA", PREFIX + "DSASigner$stdDSA"); 32c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // END android-changed 3316f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro provider.addAlgorithm("Signature.NONEWITHDSA", PREFIX + "DSASigner$noneDSA"); 3416f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 3516f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro provider.addAlgorithm("Alg.Alias.Signature.RAWDSA", "NONEWITHDSA"); 3616f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 37c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // BEGIN android-removed 38c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // provider.addAlgorithm("Signature.DETDSA", PREFIX + "DSASigner$detDSA"); 39c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // provider.addAlgorithm("Signature.SHA1WITHDETDSA", PREFIX + "DSASigner$detDSA"); 40c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // provider.addAlgorithm("Signature.SHA224WITHDETDSA", PREFIX + "DSASigner$detDSA224"); 41c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // provider.addAlgorithm("Signature.SHA256WITHDETDSA", PREFIX + "DSASigner$detDSA256"); 42c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // provider.addAlgorithm("Signature.SHA384WITHDETDSA", PREFIX + "DSASigner$detDSA384"); 43c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // provider.addAlgorithm("Signature.SHA512WITHDETDSA", PREFIX + "DSASigner$detDSA512"); 447dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro 457dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.DDSA", PREFIX + "DSASigner$detDSA"); 467dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA1WITHDDSA", PREFIX + "DSASigner$detDSA"); 477dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA224WITHDDSA", PREFIX + "DSASigner$detDSA224"); 487dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA256WITHDDSA", PREFIX + "DSASigner$detDSA256"); 497dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA384WITHDDSA", PREFIX + "DSASigner$detDSA384"); 507dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA512WITHDDSA", PREFIX + "DSASigner$detDSA512"); 517dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA3-224WITHDDSA", PREFIX + "DSASigner$detDSASha3_224"); 527dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA3-256WITHDDSA", PREFIX + "DSASigner$detDSASha3_256"); 537dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA3-384WITHDDSA", PREFIX + "DSASigner$detDSASha3_384"); 547dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // provider.addAlgorithm("Signature.SHA3-512WITHDDSA", PREFIX + "DSASigner$detDSASha3_512"); 55c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // END android-removed 5680261dd2d1824bb3862e90e77a5412d56ad88b1fSergio Giro 5716f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro addSignatureAlgorithm(provider, "SHA224", "DSA", PREFIX + "DSASigner$dsa224", NISTObjectIdentifiers.dsa_with_sha224); 5816f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro addSignatureAlgorithm(provider, "SHA256", "DSA", PREFIX + "DSASigner$dsa256", NISTObjectIdentifiers.dsa_with_sha256); 59c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // BEGIN android-removed 60c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // addSignatureAlgorithm(provider, "SHA384", "DSA", PREFIX + "DSASigner$dsa384", NISTObjectIdentifiers.dsa_with_sha384); 61c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // addSignatureAlgorithm(provider, "SHA512", "DSA", PREFIX + "DSASigner$dsa512", NISTObjectIdentifiers.dsa_with_sha512); 62c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // END android-removed 6316f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 64c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // BEGIN android-added 65c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.DSA", "SHA1withDSA"); 66c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // END android-added 677dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro 687dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // BEGIN android-removed 697dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // addSignatureAlgorithm(provider, "SHA3-224", "DSA", PREFIX + "DSASigner$dsaSha3_224", NISTObjectIdentifiers.id_dsa_with_sha3_224); 707dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // addSignatureAlgorithm(provider, "SHA3-256", "DSA", PREFIX + "DSASigner$dsaSha3_256", NISTObjectIdentifiers.id_dsa_with_sha3_256); 717dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // addSignatureAlgorithm(provider, "SHA3-384", "DSA", PREFIX + "DSASigner$dsaSha3_384", NISTObjectIdentifiers.id_dsa_with_sha3_384); 727dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // addSignatureAlgorithm(provider, "SHA3-512", "DSA", PREFIX + "DSASigner$dsaSha3_512", NISTObjectIdentifiers.id_dsa_with_sha3_512); 737dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro // END android-removed 747dad97b63c47edea4e3afb374dcd00c7b7a1bdd4Sergio Giro 75c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // BEGIN android-changed 76c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.SHA/DSA", "SHA1withDSA"); 77c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.SHA1withDSA", "SHA1withDSA"); 78c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.SHA1WITHDSA", "SHA1withDSA"); 79c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10040.4.1", "SHA1withDSA"); 80c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10040.4.3", "SHA1withDSA"); 81c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.DSAwithSHA1", "SHA1withDSA"); 82c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.DSAWITHSHA1", "SHA1withDSA"); 83c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.SHA1WithDSA", "SHA1withDSA"); 84c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature.DSAWithSHA1", "SHA1withDSA"); 85c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // END android-changed 8616f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 87c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // BEGIN android-removed 88c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // provider.addAlgorithm("Alg.Alias.Signature.1.2.840.10040.4.3", "DSA"); 89c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // END android-removed 9016f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 9116f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro AsymmetricKeyInfoConverter keyFact = new KeyFactorySpi(); 9216f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 9316f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro for (int i = 0; i != DSAUtil.dsaOids.length; i++) 9416f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro { 95c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // BEGIN android-changed 96c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro provider.addAlgorithm("Alg.Alias.Signature." + DSAUtil.dsaOids[i], "SHA1withDSA"); 97c1040cb5656c3299f1c2d0fe0bd7c44b10466aafSergio Giro // END android-changed 9816f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro 9916f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro registerOid(provider, DSAUtil.dsaOids[i], "DSA", keyFact); 100823ad5bac1616941ae772fe6b69560b49c89d7b3Adam Vartanian registerOidAlgorithmParameterGenerator(provider, DSAUtil.dsaOids[i], "DSA"); 10116f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro } 10216f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro } 10316f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro } 10416f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro} 105