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