Index: net/cert/x509_certificate_nss.cc |
diff --git a/net/cert/x509_certificate_nss.cc b/net/cert/x509_certificate_nss.cc |
index a57f9ce71f200914bb7a597be57ac70073d410c3..45dd0a2743bc21e5f522ceea17657553fe836920 100644 |
--- a/net/cert/x509_certificate_nss.cc |
+++ b/net/cert/x509_certificate_nss.cc |
@@ -281,4 +281,13 @@ void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle, |
x509_util::GetPublicKeyInfo(cert_handle, size_bits, type); |
} |
+// static |
+bool X509Certificate::IsSelfSigned(OSCertHandle cert_handle) { |
+ crypto::ScopedSECKEYPublicKey public_key(CERT_ExtractPublicKey(cert_handle)); |
+ if (!public_key.get()) |
+ return false; |
+ return SECSuccess == CERT_VerifySignedDataWithPublicKey( |
+ &cert_handle->signatureWrap, public_key.get(), NULL); |
+} |
+ |
} // namespace net |