Chromium Code Reviews| Index: net/socket/ssl_server_socket_openssl.cc |
| diff --git a/net/socket/ssl_server_socket_openssl.cc b/net/socket/ssl_server_socket_openssl.cc |
| index 556f87d33e3298703eb01aebad33aa365bca8c08..763f98aea7fb92b4382397eed3e3439c4a045c46 100644 |
| --- a/net/socket/ssl_server_socket_openssl.cc |
| +++ b/net/socket/ssl_server_socket_openssl.cc |
| @@ -616,10 +616,31 @@ int SSLServerSocketOpenSSL::Init() { |
| // Set certificate and private key. |
| DCHECK(cert_->os_cert_handle()); |
| +#if defined(USE_OPENSSL_CERTS) |
| if (SSL_use_certificate(ssl_, cert_->os_cert_handle()) != 1) { |
| LOG(ERROR) << "Cannot set certificate."; |
| return ERR_UNEXPECTED; |
| } |
| +#else |
| + // Convert OSCertHandle to X509 structure. |
| + std::string der_string; |
| + if (!X509Certificate::GetDEREncoded(cert_->os_cert_handle(), &der_string)) |
| + return ERR_UNEXPECTED; |
| + |
| + const unsigned char* der_string_array = |
| + reinterpret_cast<const unsigned char*>(der_string.data()); |
| + |
| + crypto::ScopedOpenSSL<X509, X509_free> |
| + x509(d2i_X509(NULL, &der_string_array, der_string.length())); |
|
wtc
2014/06/11 23:44:05
This line should be indented with four spaces.
|
| + if (!x509.get()) |
| + return ERR_UNEXPECTED; |
| + |
| + // On success, SSL_use_certificate counts up the reference count on cert. |
|
wtc
2014/06/11 23:44:05
1. Nit: cert => |x509|
2. Nit: counts up => incre
|
| + if (SSL_use_certificate(ssl_, x509.get()) != 1) { |
| + LOG(ERROR) << "Cannot set certificate."; |
| + return ERR_UNEXPECTED; |
| + } |
| +#endif // USE_OPENSSL_CERTS |
| DCHECK(key_->key()); |
| if (SSL_use_PrivateKey(ssl_, key_->key()) != 1) { |