1e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrompackage org.bouncycastle.cms; 2e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 3e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.util.HashSet; 4e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.util.Set; 5e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 6e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.DERNull; 7e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 8e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 9e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; 10e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.x509.AlgorithmIdentifier; 11e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 12e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrompublic class DefaultCMSSignatureEncryptionAlgorithmFinder 13e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom implements CMSSignatureEncryptionAlgorithmFinder 14e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom{ 15e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private static final Set RSA_PKCS1d5 = new HashSet(); 16e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 17e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom static 18e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 19e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 20e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(PKCSObjectIdentifiers.md2WithRSAEncryption); 21e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(PKCSObjectIdentifiers.md4WithRSAEncryption); 22e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 23e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(PKCSObjectIdentifiers.md5WithRSAEncryption); 24e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha1WithRSAEncryption); 25e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 26e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha224WithRSAEncryption); 27e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 28e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha256WithRSAEncryption); 29e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha384WithRSAEncryption); 30e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha512WithRSAEncryption); 31e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 32e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(OIWObjectIdentifiers.md4WithRSAEncryption); 33e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(OIWObjectIdentifiers.md4WithRSA); 34e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 35e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(OIWObjectIdentifiers.md5WithRSA); 36e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(OIWObjectIdentifiers.sha1WithRSA); 37e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 38e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 39e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 40e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 41e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 42e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 43e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 44e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public AlgorithmIdentifier findEncryptionAlgorithm(AlgorithmIdentifier signatureAlgorithm) 45e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 46e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RFC3370 section 3.2 47e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom if (RSA_PKCS1d5.contains(signatureAlgorithm.getAlgorithm())) 48e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 49e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE); 50e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 51e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 52e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return signatureAlgorithm; 53e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 54e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom} 55