1e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrompackage org.bouncycastle.cms; 2e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 3e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.util.HashMap; 4e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.util.Map; 5e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 6e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.ASN1ObjectIdentifier; 7e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom// BEGIN android-removed 8d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root// import org.bouncycastle.asn1.bsi.BSIObjectIdentifiers; 9e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 10e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom// END android-removed 11e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.eac.EACObjectIdentifiers; 12e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 13e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 14e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 15e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; 16e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.x509.AlgorithmIdentifier; 17e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.x509.X509ObjectIdentifiers; 18e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.x9.X9ObjectIdentifiers; 19e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 20e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrompublic class DefaultCMSSignatureAlgorithmNameGenerator 21e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom implements CMSSignatureAlgorithmNameGenerator 22e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom{ 23e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private final Map encryptionAlgs = new HashMap(); 24e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private final Map digestAlgs = new HashMap(); 25e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 26e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private void addEntries(ASN1ObjectIdentifier alias, String digest, String encryption) 27e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 28e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom digestAlgs.put(alias, digest); 29e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom encryptionAlgs.put(alias, encryption); 30e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 31e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 32e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public DefaultCMSSignatureAlgorithmNameGenerator() 33e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 3487490acd76f544251011cf49753d4d0a61f86a66Kenny Root addEntries(NISTObjectIdentifiers.dsa_with_sha224, "SHA224", "DSA"); 35e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(NISTObjectIdentifiers.dsa_with_sha256, "SHA256", "DSA"); 36e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(NISTObjectIdentifiers.dsa_with_sha384, "SHA384", "DSA"); 37e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(NISTObjectIdentifiers.dsa_with_sha512, "SHA512", "DSA"); 38e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(OIWObjectIdentifiers.dsaWithSHA1, "SHA1", "DSA"); 39e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 40e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // addEntries(OIWObjectIdentifiers.md4WithRSA, "MD4", "RSA"); 41e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // addEntries(OIWObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 42e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 43e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(OIWObjectIdentifiers.md5WithRSA, "MD5", "RSA"); 44e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(OIWObjectIdentifiers.sha1WithRSA, "SHA1", "RSA"); 45e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 46e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // addEntries(PKCSObjectIdentifiers.md2WithRSAEncryption, "MD2", "RSA"); 47e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // addEntries(PKCSObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 48e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 49e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(PKCSObjectIdentifiers.md5WithRSAEncryption, "MD5", "RSA"); 50e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(PKCSObjectIdentifiers.sha1WithRSAEncryption, "SHA1", "RSA"); 5187490acd76f544251011cf49753d4d0a61f86a66Kenny Root addEntries(PKCSObjectIdentifiers.sha224WithRSAEncryption, "SHA224", "RSA"); 52e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(PKCSObjectIdentifiers.sha256WithRSAEncryption, "SHA256", "RSA"); 53e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(PKCSObjectIdentifiers.sha384WithRSAEncryption, "SHA384", "RSA"); 54e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(PKCSObjectIdentifiers.sha512WithRSAEncryption, "SHA512", "RSA"); 55028ab6e01e3b911024b9b9243e9a0f4ac377c0faSergio Giro 56028ab6e01e3b911024b9b9243e9a0f4ac377c0faSergio Giro addEntries(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128, "RIPEMD128", "RSA"); 57028ab6e01e3b911024b9b9243e9a0f4ac377c0faSergio Giro addEntries(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160, "RIPEMD160", "RSA"); 58028ab6e01e3b911024b9b9243e9a0f4ac377c0faSergio Giro addEntries(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256, "RIPEMD256", "RSA"); 59028ab6e01e3b911024b9b9243e9a0f4ac377c0faSergio Giro 60e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(X9ObjectIdentifiers.ecdsa_with_SHA1, "SHA1", "ECDSA"); 6187490acd76f544251011cf49753d4d0a61f86a66Kenny Root addEntries(X9ObjectIdentifiers.ecdsa_with_SHA224, "SHA224", "ECDSA"); 62e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(X9ObjectIdentifiers.ecdsa_with_SHA256, "SHA256", "ECDSA"); 63e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(X9ObjectIdentifiers.ecdsa_with_SHA384, "SHA384", "ECDSA"); 64e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(X9ObjectIdentifiers.ecdsa_with_SHA512, "SHA512", "ECDSA"); 65e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(X9ObjectIdentifiers.id_dsa_with_sha1, "SHA1", "DSA"); 66e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_1, "SHA1", "ECDSA"); 6787490acd76f544251011cf49753d4d0a61f86a66Kenny Root addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_224, "SHA224", "ECDSA"); 68e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_256, "SHA256", "ECDSA"); 69e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_384, "SHA384", "ECDSA"); 70e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_512, "SHA512", "ECDSA"); 71e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(EACObjectIdentifiers.id_TA_RSA_v1_5_SHA_1, "SHA1", "RSA"); 72e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(EACObjectIdentifiers.id_TA_RSA_v1_5_SHA_256, "SHA256", "RSA"); 73e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(EACObjectIdentifiers.id_TA_RSA_PSS_SHA_1, "SHA1", "RSAandMGF1"); 74e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom addEntries(EACObjectIdentifiers.id_TA_RSA_PSS_SHA_256, "SHA256", "RSAandMGF1"); 75d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root // BEGIN android-removed 76d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root // addEntries(BSIObjectIdentifiers.ecdsa_plain_SHA1, "SHA1", "PLAIN-ECDSA"); 77d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root // addEntries(BSIObjectIdentifiers.ecdsa_plain_SHA224, "SHA224", "PLAIN-ECDSA"); 78d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root // addEntries(BSIObjectIdentifiers.ecdsa_plain_SHA256, "SHA256", "PLAIN-ECDSA"); 79d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root // addEntries(BSIObjectIdentifiers.ecdsa_plain_SHA384, "SHA384", "PLAIN-ECDSA"); 80d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root // addEntries(BSIObjectIdentifiers.ecdsa_plain_SHA512, "SHA512", "PLAIN-ECDSA"); 81d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root // addEntries(BSIObjectIdentifiers.ecdsa_plain_RIPEMD160, "RIPEMD160", "PLAIN-ECDSA"); 82d001700a15b8bd733ae344c1fc315b97c43c6590Kenny Root // END android-removed 83e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 84e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom encryptionAlgs.put(X9ObjectIdentifiers.id_dsa, "DSA"); 85e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom encryptionAlgs.put(PKCSObjectIdentifiers.rsaEncryption, "RSA"); 86e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom encryptionAlgs.put(TeleTrusTObjectIdentifiers.teleTrusTRSAsignatureAlgorithm, "RSA"); 87e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom encryptionAlgs.put(X509ObjectIdentifiers.id_ea_rsa, "RSA"); 88e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom encryptionAlgs.put(PKCSObjectIdentifiers.id_RSASSA_PSS, "RSAandMGF1"); 89e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 90e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_94, "GOST3410"); 91e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_2001, "ECGOST3410"); 92e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // encryptionAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.6.2"), "ECGOST3410"); 93e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // encryptionAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.1.5"), "GOST3410"); 94e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, "ECGOST3410"); 95e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, "GOST3410"); 96e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // 97e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // digestAlgs.put(PKCSObjectIdentifiers.md2, "MD2"); 98e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // digestAlgs.put(PKCSObjectIdentifiers.md4, "MD4"); 99e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 100e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom digestAlgs.put(PKCSObjectIdentifiers.md5, "MD5"); 101e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom digestAlgs.put(OIWObjectIdentifiers.idSHA1, "SHA1"); 10287490acd76f544251011cf49753d4d0a61f86a66Kenny Root digestAlgs.put(NISTObjectIdentifiers.id_sha224, "SHA224"); 103e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom digestAlgs.put(NISTObjectIdentifiers.id_sha256, "SHA256"); 104e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom digestAlgs.put(NISTObjectIdentifiers.id_sha384, "SHA384"); 105e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom digestAlgs.put(NISTObjectIdentifiers.id_sha512, "SHA512"); 106e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // BEGIN android-removed 107e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd128, "RIPEMD128"); 108e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd160, "RIPEMD160"); 109e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd256, "RIPEMD256"); 110e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // digestAlgs.put(CryptoProObjectIdentifiers.gostR3411, "GOST3411"); 111e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // digestAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.2.1"), "GOST3411"); 112e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom // END android-removed 113e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 114e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 115e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom /** 116e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * Return the digest algorithm using one of the standard JCA string 117e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * representations rather than the algorithm identifier (if possible). 118e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 119e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private String getDigestAlgName( 120e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1ObjectIdentifier digestAlgOID) 121e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 122e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom String algName = (String)digestAlgs.get(digestAlgOID); 123e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 124e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom if (algName != null) 125e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 126e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return algName; 127e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 128e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 129e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return digestAlgOID.getId(); 130e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 131e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 132e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom /** 133e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * Return the digest encryption algorithm using one of the standard 134e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * JCA string representations rather the the algorithm identifier (if 135e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * possible). 136e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 137e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private String getEncryptionAlgName( 138e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1ObjectIdentifier encryptionAlgOID) 139e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 140e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom String algName = (String)encryptionAlgs.get(encryptionAlgOID); 141e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 142e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom if (algName != null) 143e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 144e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return algName; 145e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 146e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 147e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return encryptionAlgOID.getId(); 148e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 149e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 150e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom /** 151e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * Set the mapping for the encryption algorithm used in association with a SignedData generation 152e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * or interpretation. 153e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * 154e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * @param oid object identifier to map. 155e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * @param algorithmName algorithm name to use. 156e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 157e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom protected void setSigningEncryptionAlgorithmMapping(ASN1ObjectIdentifier oid, String algorithmName) 158e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 159e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom encryptionAlgs.put(oid, algorithmName); 160e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 161e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 162e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom /** 163e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * Set the mapping for the digest algorithm to use in conjunction with a SignedData generation 164e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * or interpretation. 165e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * 166e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * @param oid object identifier to map. 167e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * @param algorithmName algorithm name to use. 168e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 169e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom protected void setSigningDigestAlgorithmMapping(ASN1ObjectIdentifier oid, String algorithmName) 170e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 171e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom digestAlgs.put(oid, algorithmName); 172e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 173e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 174e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public String getSignatureName(AlgorithmIdentifier digestAlg, AlgorithmIdentifier encryptionAlg) 175e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 176e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return getDigestAlgName(digestAlg.getAlgorithm()) + "with" + getEncryptionAlgName(encryptionAlg.getAlgorithm()); 177e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 178e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom} 179