package testcode.crypto; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.Provider; import java.security.Signature; public class WeakMessageDigestAdditionalSig { public static void weakDigestMoreSig() throws NoSuchProviderException, NoSuchAlgorithmException { MessageDigest.getInstance("MD5", "SUN"); MessageDigest.getInstance("MD4", "SUN"); MessageDigest.getInstance("MD2", "SUN"); MessageDigest.getInstance("MD5"); MessageDigest.getInstance("MD4"); MessageDigest.getInstance("MD2"); MessageDigest.getInstance("MD5", new DummyProvider()); MessageDigest.getInstance("MD4", new DummyProvider()); MessageDigest.getInstance("MD2", new DummyProvider()); MessageDigest.getInstance("SHA", "SUN"); MessageDigest.getInstance("SHA", new DummyProvider()); MessageDigest.getInstance("SHA1", "SUN"); MessageDigest.getInstance("SHA1", new DummyProvider()); MessageDigest.getInstance("SHA-1", "SUN"); MessageDigest.getInstance("SHA-1", new DummyProvider()); MessageDigest.getInstance("sha-384","SUN"); //OK! MessageDigest.getInstance("SHA-512", "SUN"); //OK! Signature.getInstance("MD5withRSA"); Signature.getInstance("MD2withDSA", "X"); Signature.getInstance("SHA1withRSA", new DummyProvider()); Signature.getInstance("SHA256withRSA"); //OK Signature.getInstance("uncommon name", ""); //OK } static class DummyProvider extends Provider { protected DummyProvider() { super("dummy", 1.0, ""); } } }