1package org.bouncycastle.jcajce.util; 2 3import java.util.HashMap; 4import java.util.Map; 5 6import org.bouncycastle.asn1.ASN1ObjectIdentifier; 7// BEGIN android-removed 8// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 9// import org.bouncycastle.asn1.gnu.GNUObjectIdentifiers; 10// import org.bouncycastle.asn1.iso.ISOIECObjectIdentifiers; 11// END android-removed 12import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 13import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 14import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 15// BEGIN android-removed 16// import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; 17// END android-removed 18 19public class MessageDigestUtils 20{ 21 private static Map<ASN1ObjectIdentifier, String> digestOidMap = new HashMap<ASN1ObjectIdentifier, String>(); 22 23 static 24 { 25 // BEGIN android-removed 26 // digestOidMap.put(PKCSObjectIdentifiers.md2, "MD2"); 27 // digestOidMap.put(PKCSObjectIdentifiers.md4, "MD4"); 28 // END android-removed 29 digestOidMap.put(PKCSObjectIdentifiers.md5, "MD5"); 30 digestOidMap.put(OIWObjectIdentifiers.idSHA1, "SHA-1"); 31 digestOidMap.put(NISTObjectIdentifiers.id_sha224, "SHA-224"); 32 digestOidMap.put(NISTObjectIdentifiers.id_sha256, "SHA-256"); 33 digestOidMap.put(NISTObjectIdentifiers.id_sha384, "SHA-384"); 34 digestOidMap.put(NISTObjectIdentifiers.id_sha512, "SHA-512"); 35 // BEGIN android-removed 36 // digestOidMap.put(TeleTrusTObjectIdentifiers.ripemd128, "RIPEMD-128"); 37 // digestOidMap.put(TeleTrusTObjectIdentifiers.ripemd160, "RIPEMD-160"); 38 // digestOidMap.put(TeleTrusTObjectIdentifiers.ripemd256, "RIPEMD-128"); 39 // digestOidMap.put(ISOIECObjectIdentifiers.ripemd128, "RIPEMD-128"); 40 // digestOidMap.put(ISOIECObjectIdentifiers.ripemd160, "RIPEMD-160"); 41 // digestOidMap.put(CryptoProObjectIdentifiers.gostR3411, "GOST3411"); 42 // digestOidMap.put(GNUObjectIdentifiers.Tiger_192, "Tiger"); 43 // digestOidMap.put(ISOIECObjectIdentifiers.whirlpool, "Whirlpool"); 44 // digestOidMap.put(NISTObjectIdentifiers.id_sha3_224, "SHA3-224"); 45 // digestOidMap.put(NISTObjectIdentifiers.id_sha3_256, "SHA3-256"); 46 // digestOidMap.put(NISTObjectIdentifiers.id_sha3_384, "SHA3-384"); 47 // digestOidMap.put(NISTObjectIdentifiers.id_sha3_512, "SHA3-512"); 48 // END android-removed 49 } 50 51 /** 52 * Attempt to find a standard JCA name for the digest represented by the passed in OID. 53 * 54 * @param digestAlgOID the OID of the digest algorithm of interest. 55 * @return a string representing the standard name - the OID as a string if none available. 56 */ 57 public static String getDigestName(ASN1ObjectIdentifier digestAlgOID) 58 { 59 String name = (String)digestOidMap.get(digestAlgOID); // for pre 1.5 JDK 60 if (name != null) 61 { 62 return name; 63 } 64 65 return digestAlgOID.getId(); 66 } 67} 68