in net/JetBrains.SignatureVerifier/src/Crypt/OcspVerifier.cs [195:221]
private X509Certificate getOcspIssuerCert(BasicOcspResp ocspResp)
{
var certs = ocspResp.GetCerts()?.Cast<X509Certificate>().ToList();
if (certs is null || certs.Count < 1)
return null;
var responderId = ocspResp.ResponderId.ToAsn1Object();
if (responderId.Name is not null)
{
return certs.FirstOrDefault(f => f.SubjectDN.Equivalent(responderId.Name));
}
else
{
var keyHash = responderId.GetKeyHash();
if (keyHash is null)
return null;
return certs.FirstOrDefault(f =>
{
var ki = f.GetSubjectKeyIdentifierRaw();
return ki is not null && keyHash.SequenceEqual(ki);
});
}
}