| Index: net/cert/x509_certificate_win.cc
|
| diff --git a/net/cert/x509_certificate_win.cc b/net/cert/x509_certificate_win.cc
|
| index 7d8e531b1bd839e59727984690ce248ad2eb5c70..6edf6a96c704574f35222fa782f6de467c1f5fe8 100644
|
| --- a/net/cert/x509_certificate_win.cc
|
| +++ b/net/cert/x509_certificate_win.cc
|
| @@ -464,15 +464,16 @@ bool X509Certificate::IsIssuedByEncoded(
|
|
|
| // static
|
| bool X509Certificate::IsSelfSigned(OSCertHandle cert_handle) {
|
| - return !!CryptVerifyCertificateSignatureEx(
|
| - NULL,
|
| - X509_ASN_ENCODING,
|
| - CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT,
|
| + bool valid_signature = !!CryptVerifyCertificateSignatureEx(
|
| + NULL, X509_ASN_ENCODING, CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT,
|
| reinterpret_cast<void*>(const_cast<PCERT_CONTEXT>(cert_handle)),
|
| CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT,
|
| - reinterpret_cast<void*>(const_cast<PCERT_CONTEXT>(cert_handle)),
|
| - 0,
|
| - NULL);
|
| + reinterpret_cast<void*>(const_cast<PCERT_CONTEXT>(cert_handle)), 0, NULL);
|
| + if (!valid_signature)
|
| + return false;
|
| + return !!CertCompareCertificateName(X509_ASN_ENCODING,
|
| + &cert_handle->pCertInfo->Subject,
|
| + &cert_handle->pCertInfo->Issuer);
|
| }
|
|
|
| } // namespace net
|
|
|