in src/connection/BaseConnection.ts [219:237]
export function getIssuerCertificate (socket: TLSSocket): DetailedPeerCertificate | null {
let certificate = socket.getPeerCertificate(true)
while (certificate !== null && Object.keys(certificate).length > 0) {
// invalid certificate
if (certificate.issuerCertificate == null) {
return null
}
// We have reached the root certificate.
// In case of self-signed certificates, `issuerCertificate` may be a circular reference.
if (certificate.fingerprint256 === certificate.issuerCertificate.fingerprint256) {
break
}
// continue the loop
certificate = certificate.issuerCertificate
}
return certificate
}