docs: private SSLConfig parseSecureSocketLayer(Map<String, Object> map, boolean reinitialize) throws Exception {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "parseSecureSocketLayer");
  
          SSLConfig sslprops = new SSLConfig();
  
          // READ KEYSTORE OBJECT(S)
          WSKeyStore wsks_key = null;
          String keyStoreName = (String) map.get(LibertyConstants.KEY_KEYSTORE_REF);
          if (null != keyStoreName) {
              wsks_key = KeyStoreManager.getInstance().getKeyStore(keyStoreName);
          }
  
          if (wsks_key != null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "Adding keystore properties from KeyStore object.");
              sslprops.setProperty(Constants.SSLPROP_KEY_STORE_NAME, keyStoreName);
              addSSLPropertiesFromKeyStore(wsks_key, sslprops);
          }
  
          String trustStoreName = (String) map.get(LibertyConstants.KEY_TRUSTSTORE_REF);
          WSKeyStore wsks_trust = null;
          if (null != trustStoreName) {
              wsks_trust = KeyStoreManager.getInstance().getKeyStore(trustStoreName);
          } else {
              trustStoreName = (String) map.get(LibertyConstants.KEY_KEYSTORE_REF);
              wsks_trust = wsks_key;
          }
  
          if (wsks_trust != null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "Adding truststore properties from KeyStore object.");
              sslprops.setProperty(Constants.SSLPROP_TRUST_STORE_NAME, trustStoreName);
              addSSLPropertiesFromTrustStore(wsks_trust, sslprops);
          }
  
          // KEY MANAGER
          String defaultkeyManager = JSSEProviderFactory.getKeyManagerFactoryAlgorithm();
          if (defaultkeyManager != null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "Setting default KeyManager: " + defaultkeyManager);
              sslprops.setProperty(Constants.SSLPROP_KEY_MANAGER, defaultkeyManager);
          }
  
          // TRUST MANAGERS
          String defaultTrustManager = JSSEProviderFactory.getTrustManagerFactoryAlgorithm();
  
          if (defaultTrustManager != null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "Setting default TrustManager: " + defaultTrustManager);
              sslprops.setProperty(Constants.SSLPROP_TRUST_MANAGER, defaultTrustManager);
          }
  
          // MISCELLANEOUS ATTRIBUTES
          String sslProtocol = (String) map.get("sslProtocol");
          if (sslProtocol != null && !sslProtocol.isEmpty())
              sslprops.setProperty(Constants.SSLPROP_PROTOCOL, sslProtocol);
  
          String contextProvider = (String) map.get("jsseProvider");
          if (contextProvider != null && !contextProvider.isEmpty()) {
              // setting IBMJSSE2 since IBMJSSE and IBMJSSEFIPS is not supported any
              // longer
              if (contextProvider.equalsIgnoreCase(Constants.IBMJSSE_NAME) || contextProvider.equalsIgnoreCase(Constants.IBMJSSEFIPS_NAME)) {
                  contextProvider = Constants.IBMJSSE2_NAME;
              }
  
              sslprops.setProperty(Constants.SSLPROP_CONTEXT_PROVIDER, contextProvider);
          }
  
          Boolean clientAuth = (Boolean) map.get("clientAuthentication");
          if (null != clientAuth) {
              sslprops.setProperty(Constants.SSLPROP_CLIENT_AUTHENTICATION, clientAuth.toString());
          }
  
          Boolean clientAuthSup = (Boolean) map.get("clientAuthenticationSupported");
          if (null != clientAuthSup) {
              sslprops.setProperty(Constants.SSLPROP_CLIENT_AUTHENTICATION_SUPPORTED, clientAuthSup.toString());
          }
  
          String prop = (String) map.get("securityLevel");
          if (null != prop && !prop.isEmpty()) {
              sslprops.setProperty(Constants.SSLPROP_SECURITY_LEVEL, prop);
          }
  
          prop = (String) map.get("clientKeyAlias");
          if (null != prop && !prop.isEmpty()) {
              sslprops.setProperty(Constants.SSLPROP_KEY_STORE_CLIENT_ALIAS, prop);
          }
  
          prop = (String) map.get("serverKeyAlias");
          if (null != prop && !prop.isEmpty()) {
              sslprops.setProperty(Constants.SSLPROP_KEY_STORE_SERVER_ALIAS, prop);
          }
  
          prop = (String) map.get("enabledCiphers");
          if (null != prop && !prop.isEmpty()) {
              sslprops.setProperty(Constants.SSLPROP_ENABLED_CIPHERS, prop);
          }
  
          prop = (String) map.get("id");
          if (null != prop && !prop.isEmpty()) {
              sslprops.setProperty(Constants.SSLPROP_ALIAS, prop);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              Tr.debug(tc, "Saving SSLConfig: " + sslprops);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "parseSecureSocketLayer");
          return sslprops;
      }