export function validateCertificate()

in src/socket.ts [70:97]


export function validateCertificate(
  instanceInfo: InstanceConnectionInfo,
  instanceDnsName: string,
  serverName: string
) {
  return (hostname: string, cert: tls.PeerCertificate): Error | undefined => {
    if (!cert) {
      return new CloudSQLConnectorError({
        message: 'Certificate missing',
        code: 'ENOSQLADMINVERIFYCERT',
      });
    }

    if (!instanceDnsName) {
      return checkCn(instanceInfo, cert);
    } else {
      const err = tls.checkServerIdentity(serverName, cert);
      if (err) {
        const cnErr = checkCn(instanceInfo, cert);
        if (cnErr) {
          return err;
        }
      }
    }

    return undefined;
  };
}