diff -r d590cf6b4fac -r 9af672cab7cb src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java --- a/src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java Thu Dec 13 08:23:56 2018 +0800 +++ b/src/java.base/share/classes/sun/security/rsa/SunRsaSignEntries.java Thu Dec 13 01:15:21 2018 +0000 @@ -25,7 +25,9 @@ package sun.security.rsa; -import java.util.Map; +import java.util.*; +import java.security.Provider; +import static sun.security.provider.SunEntries.createAliasesWithOid; /** * Defines the entries of the SunRsaSign provider. @@ -34,102 +36,81 @@ */ public final class SunRsaSignEntries { - private SunRsaSignEntries() { - // empty + private void add(Provider p, String type, String algo, String cn, + List aliases, HashMap attrs) { + services.add(new Provider.Service(p, type, algo, cn, aliases, attrs)); } - public static void putEntries(Map map) { + // extend LinkedHashSet for consistency with SunEntries + // used by sun.security.provider.VerificationProvider + public SunRsaSignEntries(Provider p) { + services = new LinkedHashSet<>(20, 0.9f); + + // start populating content using the specified provider - // main algorithms - map.put("KeyFactory.RSA", - "sun.security.rsa.RSAKeyFactory$Legacy"); - map.put("KeyPairGenerator.RSA", - "sun.security.rsa.RSAKeyPairGenerator$Legacy"); - map.put("Signature.MD2withRSA", - "sun.security.rsa.RSASignature$MD2withRSA"); - map.put("Signature.MD5withRSA", - "sun.security.rsa.RSASignature$MD5withRSA"); - map.put("Signature.SHA1withRSA", - "sun.security.rsa.RSASignature$SHA1withRSA"); - map.put("Signature.SHA224withRSA", - "sun.security.rsa.RSASignature$SHA224withRSA"); - map.put("Signature.SHA256withRSA", - "sun.security.rsa.RSASignature$SHA256withRSA"); - map.put("Signature.SHA384withRSA", - "sun.security.rsa.RSASignature$SHA384withRSA"); - map.put("Signature.SHA512withRSA", - "sun.security.rsa.RSASignature$SHA512withRSA"); - map.put("Signature.SHA512/224withRSA", - "sun.security.rsa.RSASignature$SHA512_224withRSA"); - map.put("Signature.SHA512/256withRSA", - "sun.security.rsa.RSASignature$SHA512_256withRSA"); + // common oids + String rsaOid = "1.2.840.113549.1.1"; + List rsaAliases = createAliasesWithOid(rsaOid); + List rsapssAliases = createAliasesWithOid(rsaOid + ".10"); + String sha1withRSAOid2 = "1.3.14.3.2.29"; - map.put("KeyFactory.RSASSA-PSS", - "sun.security.rsa.RSAKeyFactory$PSS"); - map.put("KeyPairGenerator.RSASSA-PSS", - "sun.security.rsa.RSAKeyPairGenerator$PSS"); - map.put("Signature.RSASSA-PSS", - "sun.security.rsa.RSAPSSSignature"); - map.put("AlgorithmParameters.RSASSA-PSS", - "sun.security.rsa.PSSParameters"); + // common attribute map + HashMap attrs = new HashMap<>(3); + attrs.put("SupportedKeyClasses", + "java.security.interfaces.RSAPublicKey" + + "|java.security.interfaces.RSAPrivateKey"); - // attributes for supported key classes - String rsaKeyClasses = "java.security.interfaces.RSAPublicKey" + - "|java.security.interfaces.RSAPrivateKey"; - map.put("Signature.MD2withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.MD5withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.SHA1withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.SHA224withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.SHA256withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.SHA384withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.SHA512withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.SHA512/224withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.SHA512/256withRSA SupportedKeyClasses", rsaKeyClasses); - map.put("Signature.RSASSA-PSS SupportedKeyClasses", rsaKeyClasses); - - // aliases - map.put("Alg.Alias.KeyFactory.1.2.840.113549.1.1", "RSA"); - map.put("Alg.Alias.KeyFactory.OID.1.2.840.113549.1.1", "RSA"); - - map.put("Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1", "RSA"); - map.put("Alg.Alias.KeyPairGenerator.OID.1.2.840.113549.1.1", "RSA"); - - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.2", "MD2withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.2", "MD2withRSA"); - - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.4", "MD5withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.4", "MD5withRSA"); + add(p, "KeyFactory", "RSA", + "sun.security.rsa.RSAKeyFactory$Legacy", + rsaAliases, null); + add(p, "KeyPairGenerator", "RSA", + "sun.security.rsa.RSAKeyPairGenerator$Legacy", + rsaAliases, null); + add(p, "Signature", "MD2withRSA", + "sun.security.rsa.RSASignature$MD2withRSA", + createAliasesWithOid(rsaOid + ".2"), attrs); + add(p, "Signature", "MD5withRSA", + "sun.security.rsa.RSASignature$MD5withRSA", + createAliasesWithOid(rsaOid + ".4"), attrs); + add(p, "Signature", "SHA1withRSA", + "sun.security.rsa.RSASignature$SHA1withRSA", + createAliasesWithOid(rsaOid + ".5", sha1withRSAOid2), attrs); + add(p, "Signature", "SHA224withRSA", + "sun.security.rsa.RSASignature$SHA224withRSA", + createAliasesWithOid(rsaOid + ".14"), attrs); + add(p, "Signature", "SHA256withRSA", + "sun.security.rsa.RSASignature$SHA256withRSA", + createAliasesWithOid(rsaOid + ".11"), attrs); + add(p, "Signature", "SHA384withRSA", + "sun.security.rsa.RSASignature$SHA384withRSA", + createAliasesWithOid(rsaOid + ".12"), attrs); + add(p, "Signature", "SHA512withRSA", + "sun.security.rsa.RSASignature$SHA512withRSA", + createAliasesWithOid(rsaOid + ".13"), attrs); + add(p, "Signature", "SHA512/224withRSA", + "sun.security.rsa.RSASignature$SHA512_224withRSA", + createAliasesWithOid(rsaOid + ".15"), attrs); + add(p, "Signature", "SHA512/256withRSA", + "sun.security.rsa.RSASignature$SHA512_256withRSA", + createAliasesWithOid(rsaOid + ".16"), attrs); - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.5", "SHA1withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.5", "SHA1withRSA"); - map.put("Alg.Alias.Signature.1.3.14.3.2.29", "SHA1withRSA"); - - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.14", "SHA224withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.14", "SHA224withRSA"); - - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.11", "SHA256withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.11", "SHA256withRSA"); - - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.12", "SHA384withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.12", "SHA384withRSA"); + add(p, "KeyFactory", "RSASSA-PSS", + "sun.security.rsa.RSAKeyFactory$PSS", + rsapssAliases, null); + add(p, "KeyPairGenerator", "RSASSA-PSS", + "sun.security.rsa.RSAKeyPairGenerator$PSS", + rsapssAliases, null); + add(p, "Signature", "RSASSA-PSS", + "sun.security.rsa.RSAPSSSignature", + rsapssAliases, attrs); + add(p, "AlgorithmParameters", "RSASSA-PSS", + "sun.security.rsa.PSSParameters", + rsapssAliases, null); + } - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.13", "SHA512withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.13", "SHA512withRSA"); - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.15", "SHA512/224withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.15", "SHA512/224withRSA"); - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.16", "SHA512/256withRSA"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.16", "SHA512/256withRSA"); - - map.put("Alg.Alias.KeyFactory.1.2.840.113549.1.1.10", "RSASSA-PSS"); - map.put("Alg.Alias.KeyFactory.OID.1.2.840.113549.1.1.10", "RSASSA-PSS"); + public Iterator iterator() { + return services.iterator(); + } - map.put("Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1.10", "RSASSA-PSS"); - map.put("Alg.Alias.KeyPairGenerator.OID.1.2.840.113549.1.1.10", "RSASSA-PSS"); - - map.put("Alg.Alias.Signature.1.2.840.113549.1.1.10", "RSASSA-PSS"); - map.put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.10", "RSASSA-PSS"); - - map.put("Alg.Alias.AlgorithmParameters.1.2.840.113549.1.1.10", "RSASSA-PSS"); - map.put("Alg.Alias.AlgorithmParameters.OID.1.2.840.113549.1.1.10", "RSASSA-PSS"); - } + private LinkedHashSet services; }