mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
7092821: java.security.Provider.getService() is synchronized and became scalability bottleneck
Changed Provider class to use ConcurrentHashMap and default providers to use putService() Reviewed-by: weijun, mullan
This commit is contained in:
parent
f47bd19cbc
commit
0b05ebed2e
8 changed files with 1019 additions and 1152 deletions
|
@ -26,7 +26,10 @@
|
|||
package sun.security.ssl;
|
||||
|
||||
import java.security.*;
|
||||
import java.util.*;
|
||||
import sun.security.rsa.SunRsaSignEntries;
|
||||
import static sun.security.util.SecurityConstants.PROVIDER_VER;
|
||||
import static sun.security.provider.SunEntries.createAliases;
|
||||
|
||||
/**
|
||||
* The JSSE provider.
|
||||
|
@ -157,86 +160,62 @@ public abstract class SunJSSE extends java.security.Provider {
|
|||
});
|
||||
}
|
||||
|
||||
private void ps(String type, String algo, String cn,
|
||||
List<String> aliases, HashMap<String, String> attrs) {
|
||||
putService(new Provider.Service(this, type, algo, cn, aliases, attrs));
|
||||
}
|
||||
|
||||
private void doRegister(boolean isfips) {
|
||||
if (isfips == false) {
|
||||
put("KeyFactory.RSA",
|
||||
"sun.security.rsa.RSAKeyFactory$Legacy");
|
||||
put("Alg.Alias.KeyFactory.1.2.840.113549.1.1", "RSA");
|
||||
put("Alg.Alias.KeyFactory.OID.1.2.840.113549.1.1", "RSA");
|
||||
|
||||
put("KeyPairGenerator.RSA",
|
||||
"sun.security.rsa.RSAKeyPairGenerator$Legacy");
|
||||
put("Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1", "RSA");
|
||||
put("Alg.Alias.KeyPairGenerator.OID.1.2.840.113549.1.1", "RSA");
|
||||
|
||||
put("Signature.MD2withRSA",
|
||||
"sun.security.rsa.RSASignature$MD2withRSA");
|
||||
put("Alg.Alias.Signature.1.2.840.113549.1.1.2", "MD2withRSA");
|
||||
put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.2",
|
||||
"MD2withRSA");
|
||||
|
||||
put("Signature.MD5withRSA",
|
||||
"sun.security.rsa.RSASignature$MD5withRSA");
|
||||
put("Alg.Alias.Signature.1.2.840.113549.1.1.4", "MD5withRSA");
|
||||
put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.4",
|
||||
"MD5withRSA");
|
||||
|
||||
put("Signature.SHA1withRSA",
|
||||
"sun.security.rsa.RSASignature$SHA1withRSA");
|
||||
put("Alg.Alias.Signature.1.2.840.113549.1.1.5", "SHA1withRSA");
|
||||
put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.5",
|
||||
"SHA1withRSA");
|
||||
put("Alg.Alias.Signature.1.3.14.3.2.29", "SHA1withRSA");
|
||||
put("Alg.Alias.Signature.OID.1.3.14.3.2.29", "SHA1withRSA");
|
||||
|
||||
Iterator<Provider.Service> rsaIter =
|
||||
new SunRsaSignEntries(this).iterator();
|
||||
while (rsaIter.hasNext()) {
|
||||
putService(rsaIter.next());
|
||||
}
|
||||
}
|
||||
put("Signature.MD5andSHA1withRSA",
|
||||
"sun.security.ssl.RSASignature");
|
||||
ps("Signature", "MD5andSHA1withRSA",
|
||||
"sun.security.ssl.RSASignature", null, null);
|
||||
|
||||
put("KeyManagerFactory.SunX509",
|
||||
"sun.security.ssl.KeyManagerFactoryImpl$SunX509");
|
||||
put("KeyManagerFactory.NewSunX509",
|
||||
"sun.security.ssl.KeyManagerFactoryImpl$X509");
|
||||
put("Alg.Alias.KeyManagerFactory.PKIX", "NewSunX509");
|
||||
ps("KeyManagerFactory", "SunX509",
|
||||
"sun.security.ssl.KeyManagerFactoryImpl$SunX509", null, null);
|
||||
ps("KeyManagerFactory", "NewSunX509",
|
||||
"sun.security.ssl.KeyManagerFactoryImpl$X509",
|
||||
createAliases("PKIX"), null);
|
||||
|
||||
put("TrustManagerFactory.SunX509",
|
||||
"sun.security.ssl.TrustManagerFactoryImpl$SimpleFactory");
|
||||
put("TrustManagerFactory.PKIX",
|
||||
"sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory");
|
||||
put("Alg.Alias.TrustManagerFactory.SunPKIX", "PKIX");
|
||||
put("Alg.Alias.TrustManagerFactory.X509", "PKIX");
|
||||
put("Alg.Alias.TrustManagerFactory.X.509", "PKIX");
|
||||
ps("TrustManagerFactory", "SunX509",
|
||||
"sun.security.ssl.TrustManagerFactoryImpl$SimpleFactory", null, null);
|
||||
ps("TrustManagerFactory", "PKIX",
|
||||
"sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory",
|
||||
createAliases("SunPKIX", "X509", "X.509"), null);
|
||||
|
||||
put("SSLContext.TLSv1",
|
||||
"sun.security.ssl.SSLContextImpl$TLS10Context");
|
||||
put("SSLContext.TLSv1.1",
|
||||
"sun.security.ssl.SSLContextImpl$TLS11Context");
|
||||
put("SSLContext.TLSv1.2",
|
||||
"sun.security.ssl.SSLContextImpl$TLS12Context");
|
||||
put("SSLContext.TLSv1.3",
|
||||
"sun.security.ssl.SSLContextImpl$TLS13Context");
|
||||
put("SSLContext.TLS",
|
||||
"sun.security.ssl.SSLContextImpl$TLSContext");
|
||||
if (isfips == false) {
|
||||
put("Alg.Alias.SSLContext.SSL", "TLS");
|
||||
put("Alg.Alias.SSLContext.SSLv3", "TLSv1");
|
||||
}
|
||||
ps("SSLContext", "TLSv1",
|
||||
"sun.security.ssl.SSLContextImpl$TLS10Context",
|
||||
(isfips? null : createAliases("SSLv3")), null);
|
||||
ps("SSLContext", "TLSv1.1",
|
||||
"sun.security.ssl.SSLContextImpl$TLS11Context", null, null);
|
||||
ps("SSLContext", "TLSv1.2",
|
||||
"sun.security.ssl.SSLContextImpl$TLS12Context", null, null);
|
||||
ps("SSLContext", "TLSv1.3",
|
||||
"sun.security.ssl.SSLContextImpl$TLS13Context", null, null);
|
||||
ps("SSLContext", "TLS",
|
||||
"sun.security.ssl.SSLContextImpl$TLSContext",
|
||||
(isfips? null : createAliases("SSL")), null);
|
||||
|
||||
put("SSLContext.DTLSv1.0",
|
||||
"sun.security.ssl.SSLContextImpl$DTLS10Context");
|
||||
put("SSLContext.DTLSv1.2",
|
||||
"sun.security.ssl.SSLContextImpl$DTLS12Context");
|
||||
put("SSLContext.DTLS",
|
||||
"sun.security.ssl.SSLContextImpl$DTLSContext");
|
||||
ps("SSLContext", "DTLSv1.0",
|
||||
"sun.security.ssl.SSLContextImpl$DTLS10Context", null, null);
|
||||
ps("SSLContext", "DTLSv1.2",
|
||||
"sun.security.ssl.SSLContextImpl$DTLS12Context", null, null);
|
||||
ps("SSLContext", "DTLS",
|
||||
"sun.security.ssl.SSLContextImpl$DTLSContext", null, null);
|
||||
|
||||
put("SSLContext.Default",
|
||||
"sun.security.ssl.SSLContextImpl$DefaultSSLContext");
|
||||
ps("SSLContext", "Default",
|
||||
"sun.security.ssl.SSLContextImpl$DefaultSSLContext", null, null);
|
||||
|
||||
/*
|
||||
* KeyStore
|
||||
*/
|
||||
put("KeyStore.PKCS12",
|
||||
"sun.security.pkcs12.PKCS12KeyStore");
|
||||
ps("KeyStore", "PKCS12",
|
||||
"sun.security.pkcs12.PKCS12KeyStore", null, null);
|
||||
}
|
||||
|
||||
// com.sun.net.ssl.internal.ssl.Provider has been deprecated since JDK 9
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue