Index: net/base/x509_certificate.cc |
=================================================================== |
--- net/base/x509_certificate.cc (revision 93224) |
+++ net/base/x509_certificate.cc (working copy) |
@@ -217,6 +217,22 @@ |
} |
} |
+#if defined(OS_WIN) |
+X509Certificate::OSCertHandle CreateOSCert(base::StringPiece der_cert) { |
+ X509Certificate::OSCertHandle cert_handle = NULL; |
+ BOOL ok = CertAddEncodedCertificateToStore( |
+ X509Certificate::cert_store(), X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, |
+ reinterpret_cast<const BYTE*>(der_cert.data()), der_cert.size(), |
+ CERT_STORE_ADD_USE_EXISTING, &cert_handle); |
+ return ok ? cert_handle : NULL; |
+} |
+#else |
+X509Certificate::OSCertHandle CreateOSCert(base::StringPiece der_cert) { |
+ return X509Certificate::CreateOSCertHandleFromBytes( |
+ const_cast<char*>(der_cert.data()), der_cert.size()); |
+} |
+#endif |
+ |
} // namespace |
bool X509Certificate::LessThan::operator()(X509Certificate* lhs, |
@@ -248,11 +264,6 @@ |
return new X509Certificate(cert_handle, intermediates); |
} |
-static X509Certificate::OSCertHandle CreateOSCert(base::StringPiece der_cert) { |
- return X509Certificate::CreateOSCertHandleFromBytes( |
- const_cast<char*>(der_cert.data()), der_cert.size()); |
-} |
- |
// static |
X509Certificate* X509Certificate::CreateFromDERCertChain( |
const std::vector<base::StringPiece>& der_certs) { |