private static void verifySSLConfig(SSLContext sslContext, SSLEngine sslEngine, boolean isClient) {
    // SSLContext verify
    Assert.assertEquals(sslContext.getProtocol(), SSL_CONTEXT_PROTOCOL);
    Assert.assertEquals(sslContext.getProvider().getName(), SSL_CONTEXT_PROVIDER);

    // SSLEngine verify
    String[] enabledProtocols = sslEngine.getEnabledProtocols();
    if (enabledProtocols.length == 2) {
      // Apparently the Netty OpenSslEngine has no way of disabling the SSLv2Hello protocol.
      // This is the relevant code from ReferenceCountedOpenSslEngine.getEnabledProtocols():
      // """
      // // Seems like there is no way to explicit disable SSLv2Hello in openssl so it is always enabled
      // enabled.add(PROTOCOL_SSL_V2_HELLO);
      // """
      Assert.assertArrayEquals("enabledProtocols does not match expected",
          new String[]{SSL_V2_HELLO_PROTOCOL, TLS_V1_2_PROTOCOL}, enabledProtocols);
    } else {
      Assert.assertArrayEquals("enabledProtocols does not match expected", new String[]{TLS_V1_2_PROTOCOL},
          enabledProtocols);
    }
    String[] enabledCipherSuite = sslEngine.getEnabledCipherSuites();
    Assert.assertEquals(enabledCipherSuite.length, 1);
    Assert.assertEquals(enabledCipherSuite[0], SSL_CIPHER_SUITES);
    Assert.assertEquals(sslEngine.getWantClientAuth(), false);
    if (isClient) {
      Assert.assertEquals(sslEngine.getSSLParameters().getEndpointIdentificationAlgorithm(),
          ENDPOINT_IDENTIFICATION_ALGORITHM);
      Assert.assertEquals(sslEngine.getNeedClientAuth(), false);
      Assert.assertEquals(sslEngine.getUseClientMode(), true);
    } else {
      Assert.assertEquals(sslEngine.getSSLParameters().getEndpointIdentificationAlgorithm(), null);
      Assert.assertEquals(sslEngine.getNeedClientAuth(), true);
      Assert.assertEquals(sslEngine.getUseClientMode(), false);
    }
  }
Creates VerifiableProperties with HTTP2 related configs based on the values passed and few other
pre-populated values
@param sslEnabledDatacenters Comma separated list of datacenters against which ssl connections should be
                             established
@param mode Represents if the caller is a client or server
@param trustStoreFile File path of the truststore file
@param certAlias alias used for the certificate
@return {@link VerifiableProperties} with all the required values populated
@throws IOException
@throws GeneralSecurityException
ambry-test-utils/src/main/java/com/github/ambry/commons/TestSSLUtils.java