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); 2587490acd76f544251011cf49753d4d0a61f86a66Kenny Root RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha224WithRSAEncryption); 26e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha256WithRSAEncryption); 27e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha384WithRSAEncryption); 28e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha512WithRSAEncryption); 29e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 30e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(OIWObjectIdentifiers.md4WithRSAEncryption); 31e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(OIWObjectIdentifiers.md4WithRSA); 32e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 33e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(OIWObjectIdentifiers.md5WithRSA); 34e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom RSA_PKCS1d5.add(OIWObjectIdentifiers.sha1WithRSA); 35e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 36e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 37e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 38e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 39e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 40e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 41e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 42e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public AlgorithmIdentifier findEncryptionAlgorithm(AlgorithmIdentifier signatureAlgorithm) 43e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 44e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // RFC3370 section 3.2 45e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom if (RSA_PKCS1d5.contains(signatureAlgorithm.getAlgorithm())) 46e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 47e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE); 48e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 49e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 50e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return signatureAlgorithm; 51e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 52e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom} 53