in alloydb-jdbc-connector/src/main/java/com/google/cloud/alloydb/ConnectionSocket.java [141:161]
private SSLSocket buildSocket(
X509Certificate caCertificate,
List<X509Certificate> certificateChain,
PrivateKey privateKey) {
try {
// First initialize a KeyManager with the ephemeral certificate
// (including the chain of trust to the root CA cert) and the connector's private key.
KeyManager[] keyManagers = initializeKeyManager(certificateChain, privateKey);
// Next, initialize a TrustManager with the root CA certificate.
TrustManager[] trustManagers = initializeTrustManager(caCertificate);
// Now, create a TLS 1.3 SSLContext initialized with the KeyManager and the TrustManager,
// and create the SSL Socket.
SSLContext sslContext = SSLContext.getInstance(TLS_1_3);
sslContext.init(keyManagers, trustManagers, new SecureRandom());
return (SSLSocket) sslContext.getSocketFactory().createSocket();
} catch (GeneralSecurityException | IOException ex) {
throw new RuntimeException("Unable to create an SSL Context for the instance.", ex);
}
}