public X509SslContext buildContext() {
        try {
            SSLContext sslContext = SSLContext.getInstance(TlsContext.SSL_CONTEXT_VERSION);
            X509ExtendedTrustManager trustManager = this.trustManager != null
                    ? this.trustManager
                    : trustManagerFactory.createTrustManager(trustStoreSupplier.get());
            X509ExtendedKeyManager keyManager = this.keyManager != null
                    ? this.keyManager
                    : keyManagerFactory.createKeyManager(keyStoreSupplier.get(), keyStorePassword);
            sslContext.init(new KeyManager[] {keyManager}, new TrustManager[] {trustManager}, null);
            return new X509SslContext(sslContext, trustManager, keyManager);
        } catch (GeneralSecurityException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new UncheckedIOException(e);
        }
        finally {
            keyStorePassword = null;
        }
    }
@return same {@link #build()} but includes the {@link SSLContext} instance's associated trust/key managers
security-utils/src/main/java/com/yahoo/security/SslContextBuilder.java