Chromium Code Reviews| Index: net/base/x509_certificate_nss.cc |
| diff --git a/net/base/x509_certificate_nss.cc b/net/base/x509_certificate_nss.cc |
| index bbb5cef4b656bb88cfcb4bab30323010296f5545..606af5206bb802f5852e524605fb2f45c541708c 100644 |
| --- a/net/base/x509_certificate_nss.cc |
| +++ b/net/base/x509_certificate_nss.cc |
| @@ -6,6 +6,7 @@ |
| #include <cert.h> |
| #include <cryptohi.h> |
| +#include <keyhi.h> |
|
wtc
2011/12/08 00:07:43
The new code you added doesn't seem to require <ke
Greg Spencer (Chromium)
2011/12/09 18:51:38
Done.
|
| #include <nss.h> |
| #include <pk11pub.h> |
| #include <prerror.h> |
| @@ -666,7 +667,6 @@ void AppendPublicKeyHashes(CERTCertList* cert_list, |
| } |
| hashes->push_back(CertPublicKeyHash(root_cert)); |
| } |
| - |
|
wtc
2011/12/08 00:07:43
Nit: add this blank line back. This matches the b
Greg Spencer (Chromium)
2011/12/09 18:51:38
Done.
|
| } // namespace |
| void X509Certificate::Initialize() { |
| @@ -685,6 +685,22 @@ void X509Certificate::Initialize() { |
| } |
| // static |
| +X509Certificate* X509Certificate::CreateFromBytesWithNickname( |
| + const char* data, |
| + int length, |
| + const char* nickname) { |
| + OSCertHandle cert_handle = CreateOSCertHandleFromBytesWithNickname(data, |
| + length, |
| + nickname); |
| + if (!cert_handle) |
| + return NULL; |
| + |
| + X509Certificate* cert = CreateFromHandle(cert_handle, OSCertHandles()); |
| + FreeOSCertHandle(cert_handle); |
| + return cert; |
| +} |
| + |
| +// static |
| X509Certificate* X509Certificate::CreateSelfSigned( |
| crypto::RSAPrivateKey* key, |
| const std::string& subject, |
| @@ -922,6 +938,13 @@ bool X509Certificate::IsSameOSCert(X509Certificate::OSCertHandle a, |
| // static |
| X509Certificate::OSCertHandle X509Certificate::CreateOSCertHandleFromBytes( |
| const char* data, int length) { |
| + return CreateOSCertHandleFromBytesWithNickname(data, length, NULL); |
| +} |
| + |
| +// static |
| +X509Certificate::OSCertHandle |
| +X509Certificate::CreateOSCertHandleFromBytesWithNickname( |
| + const char* data, int length, const char* nickname) { |
| if (length < 0) |
| return NULL; |
| @@ -936,8 +959,12 @@ X509Certificate::OSCertHandle X509Certificate::CreateOSCertHandleFromBytes( |
| der_cert.type = siDERCertBuffer; |
| // Parse into a certificate structure. |
| - return CERT_NewTempCertificate(CERT_GetDefaultCertDB(), &der_cert, NULL, |
| - PR_FALSE, PR_TRUE); |
| + X509Certificate::OSCertHandle result = |
| + CERT_NewTempCertificate(CERT_GetDefaultCertDB(), &der_cert, |
| + const_cast<char*>(nickname), |
| + PR_FALSE, PR_TRUE); |
| + |
| + return result; |
| } |
| // static |