src/java.base/share/classes/sun/security/ssl/SunJSSE.java
changeset 52995 9af672cab7cb
parent 50768 68fa3d4026ea
child 53734 cb1642ccc732
equal deleted inserted replaced
52994:d590cf6b4fac 52995:9af672cab7cb
    24  */
    24  */
    25 
    25 
    26 package sun.security.ssl;
    26 package sun.security.ssl;
    27 
    27 
    28 import java.security.*;
    28 import java.security.*;
       
    29 import java.util.*;
       
    30 import sun.security.rsa.SunRsaSignEntries;
    29 import static sun.security.util.SecurityConstants.PROVIDER_VER;
    31 import static sun.security.util.SecurityConstants.PROVIDER_VER;
       
    32 import static sun.security.provider.SunEntries.createAliases;
    30 
    33 
    31 /**
    34 /**
    32  * The JSSE provider.
    35  * The JSSE provider.
    33  *
    36  *
    34  * The RSA implementation has been removed from JSSE, but we still need to
    37  * The RSA implementation has been removed from JSSE, but we still need to
   155                 return null;
   158                 return null;
   156             }
   159             }
   157         });
   160         });
   158     }
   161     }
   159 
   162 
       
   163     private void ps(String type, String algo, String cn,
       
   164             List<String> aliases, HashMap<String, String> attrs) {
       
   165         putService(new Provider.Service(this, type, algo, cn, aliases, attrs));
       
   166     }
       
   167 
   160     private void doRegister(boolean isfips) {
   168     private void doRegister(boolean isfips) {
   161         if (isfips == false) {
   169         if (isfips == false) {
   162             put("KeyFactory.RSA",
   170             Iterator<Provider.Service> rsaIter =
   163                 "sun.security.rsa.RSAKeyFactory$Legacy");
   171                 new SunRsaSignEntries(this).iterator();
   164             put("Alg.Alias.KeyFactory.1.2.840.113549.1.1", "RSA");
   172             while (rsaIter.hasNext()) {
   165             put("Alg.Alias.KeyFactory.OID.1.2.840.113549.1.1", "RSA");
   173                 putService(rsaIter.next());
   166 
   174             }
   167             put("KeyPairGenerator.RSA",
   175         }
   168                 "sun.security.rsa.RSAKeyPairGenerator$Legacy");
   176         ps("Signature", "MD5andSHA1withRSA",
   169             put("Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1", "RSA");
   177             "sun.security.ssl.RSASignature", null, null);
   170             put("Alg.Alias.KeyPairGenerator.OID.1.2.840.113549.1.1", "RSA");
   178 
   171 
   179         ps("KeyManagerFactory", "SunX509",
   172             put("Signature.MD2withRSA",
   180             "sun.security.ssl.KeyManagerFactoryImpl$SunX509", null, null);
   173                 "sun.security.rsa.RSASignature$MD2withRSA");
   181         ps("KeyManagerFactory", "NewSunX509",
   174             put("Alg.Alias.Signature.1.2.840.113549.1.1.2", "MD2withRSA");
   182             "sun.security.ssl.KeyManagerFactoryImpl$X509",
   175             put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.2",
   183             createAliases("PKIX"), null);
   176                 "MD2withRSA");
   184 
   177 
   185         ps("TrustManagerFactory", "SunX509",
   178             put("Signature.MD5withRSA",
   186             "sun.security.ssl.TrustManagerFactoryImpl$SimpleFactory", null, null);
   179                 "sun.security.rsa.RSASignature$MD5withRSA");
   187         ps("TrustManagerFactory", "PKIX",
   180             put("Alg.Alias.Signature.1.2.840.113549.1.1.4", "MD5withRSA");
   188             "sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory",
   181             put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.4",
   189             createAliases("SunPKIX", "X509", "X.509"), null);
   182                 "MD5withRSA");
   190 
   183 
   191         ps("SSLContext", "TLSv1",
   184             put("Signature.SHA1withRSA",
   192             "sun.security.ssl.SSLContextImpl$TLS10Context",
   185                 "sun.security.rsa.RSASignature$SHA1withRSA");
   193             (isfips? null : createAliases("SSLv3")), null);
   186             put("Alg.Alias.Signature.1.2.840.113549.1.1.5", "SHA1withRSA");
   194         ps("SSLContext", "TLSv1.1",
   187             put("Alg.Alias.Signature.OID.1.2.840.113549.1.1.5",
   195             "sun.security.ssl.SSLContextImpl$TLS11Context", null, null);
   188                 "SHA1withRSA");
   196         ps("SSLContext", "TLSv1.2",
   189             put("Alg.Alias.Signature.1.3.14.3.2.29", "SHA1withRSA");
   197             "sun.security.ssl.SSLContextImpl$TLS12Context", null, null);
   190             put("Alg.Alias.Signature.OID.1.3.14.3.2.29", "SHA1withRSA");
   198         ps("SSLContext", "TLSv1.3",
   191 
   199             "sun.security.ssl.SSLContextImpl$TLS13Context", null, null);
   192         }
   200         ps("SSLContext", "TLS",
   193         put("Signature.MD5andSHA1withRSA",
   201             "sun.security.ssl.SSLContextImpl$TLSContext",
   194             "sun.security.ssl.RSASignature");
   202             (isfips? null : createAliases("SSL")), null);
   195 
   203 
   196         put("KeyManagerFactory.SunX509",
   204         ps("SSLContext", "DTLSv1.0",
   197             "sun.security.ssl.KeyManagerFactoryImpl$SunX509");
   205             "sun.security.ssl.SSLContextImpl$DTLS10Context", null, null);
   198         put("KeyManagerFactory.NewSunX509",
   206         ps("SSLContext", "DTLSv1.2",
   199             "sun.security.ssl.KeyManagerFactoryImpl$X509");
   207             "sun.security.ssl.SSLContextImpl$DTLS12Context", null, null);
   200         put("Alg.Alias.KeyManagerFactory.PKIX", "NewSunX509");
   208         ps("SSLContext", "DTLS",
   201 
   209             "sun.security.ssl.SSLContextImpl$DTLSContext", null, null);
   202         put("TrustManagerFactory.SunX509",
   210 
   203             "sun.security.ssl.TrustManagerFactoryImpl$SimpleFactory");
   211         ps("SSLContext", "Default",
   204         put("TrustManagerFactory.PKIX",
   212             "sun.security.ssl.SSLContextImpl$DefaultSSLContext", null, null);
   205             "sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory");
       
   206         put("Alg.Alias.TrustManagerFactory.SunPKIX", "PKIX");
       
   207         put("Alg.Alias.TrustManagerFactory.X509", "PKIX");
       
   208         put("Alg.Alias.TrustManagerFactory.X.509", "PKIX");
       
   209 
       
   210         put("SSLContext.TLSv1",
       
   211             "sun.security.ssl.SSLContextImpl$TLS10Context");
       
   212         put("SSLContext.TLSv1.1",
       
   213             "sun.security.ssl.SSLContextImpl$TLS11Context");
       
   214         put("SSLContext.TLSv1.2",
       
   215             "sun.security.ssl.SSLContextImpl$TLS12Context");
       
   216         put("SSLContext.TLSv1.3",
       
   217             "sun.security.ssl.SSLContextImpl$TLS13Context");
       
   218         put("SSLContext.TLS",
       
   219             "sun.security.ssl.SSLContextImpl$TLSContext");
       
   220         if (isfips == false) {
       
   221             put("Alg.Alias.SSLContext.SSL", "TLS");
       
   222             put("Alg.Alias.SSLContext.SSLv3", "TLSv1");
       
   223         }
       
   224 
       
   225         put("SSLContext.DTLSv1.0",
       
   226             "sun.security.ssl.SSLContextImpl$DTLS10Context");
       
   227         put("SSLContext.DTLSv1.2",
       
   228             "sun.security.ssl.SSLContextImpl$DTLS12Context");
       
   229         put("SSLContext.DTLS",
       
   230             "sun.security.ssl.SSLContextImpl$DTLSContext");
       
   231 
       
   232         put("SSLContext.Default",
       
   233             "sun.security.ssl.SSLContextImpl$DefaultSSLContext");
       
   234 
   213 
   235         /*
   214         /*
   236          * KeyStore
   215          * KeyStore
   237          */
   216          */
   238         put("KeyStore.PKCS12",
   217         ps("KeyStore", "PKCS12",
   239             "sun.security.pkcs12.PKCS12KeyStore");
   218             "sun.security.pkcs12.PKCS12KeyStore", null, null);
   240     }
   219     }
   241 
   220 
   242     // com.sun.net.ssl.internal.ssl.Provider has been deprecated since JDK 9
   221     // com.sun.net.ssl.internal.ssl.Provider has been deprecated since JDK 9
   243     @SuppressWarnings("deprecation")
   222     @SuppressWarnings("deprecation")
   244     private void subclassCheck() {
   223     private void subclassCheck() {