Index: net/cert/x509_certificate_ios.cc |
diff --git a/net/cert/x509_certificate_ios.cc b/net/cert/x509_certificate_ios.cc |
index b0908b77afae4b4397adbc8e4ca61f653e121406..bc76d08e566726e42ca858668b147f397f32bb31 100644 |
--- a/net/cert/x509_certificate_ios.cc |
+++ b/net/cert/x509_certificate_ios.cc |
@@ -250,4 +250,15 @@ void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle, |
x509_util::GetPublicKeyInfo(nss_cert.cert_handle(), size_bits, type); |
} |
+// static |
+bool X509Certificate::IsSelfSigned(OSCertHandle cert_handle) { |
+ x509_util_ios::NSSCertificate nss_cert(cert_handle); |
+ crypto::ScopedSECKEYPublicKey public_key( |
+ CERT_ExtractPublicKey(nss_cert.cert_handle())); |
+ if (!public_key.get()) |
+ return false; |
+ return SECSuccess == CERT_VerifySignedDataWithPublicKey( |
+ &nss_cert.cert_handle()->signatureWrap, public_key.get(), NULL); |
+} |
+ |
} // namespace net |