diff options
author | joth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-06 17:56:27 +0000 |
---|---|---|
committer | joth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-06 17:56:27 +0000 |
commit | 5ac981e18bcad738dbe3e34a59c5814a9f00ea08 (patch) | |
tree | 18a084c3637a7b917c9b25cb4a84e71c048290d3 /net | |
parent | f34ce0c1ebd93023b1a227b4ce1aef34b84c5257 (diff) | |
download | chromium_src-5ac981e18bcad738dbe3e34a59c5814a9f00ea08.zip chromium_src-5ac981e18bcad738dbe3e34a59c5814a9f00ea08.tar.gz chromium_src-5ac981e18bcad738dbe3e34a59c5814a9f00ea08.tar.bz2 |
I missed some comments from wtc on patch http://codereview.chromium.org/5195001 before landing, so following up here.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/5587001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68351 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/base/x509_certificate_openssl.cc | 1 | ||||
-rw-r--r-- | net/base/x509_openssl_util.cc | 4 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_openssl.cc | 50 |
3 files changed, 27 insertions, 28 deletions
diff --git a/net/base/x509_certificate_openssl.cc b/net/base/x509_certificate_openssl.cc index abddd97..0d55c35 100644 --- a/net/base/x509_certificate_openssl.cc +++ b/net/base/x509_certificate_openssl.cc @@ -434,7 +434,6 @@ int X509Certificate::Verify(const std::string& hostname, << " : " << X509_STORE_CTX_get_error_depth(ctx.get()) << " : " << cert_status; verify_result->cert_status |= cert_status; - return MapCertStatusToNetError(verify_result->cert_status); } if (IsCertStatusError(verify_result->cert_status)) diff --git a/net/base/x509_openssl_util.cc b/net/base/x509_openssl_util.cc index 81424cc..35871ad 100644 --- a/net/base/x509_openssl_util.cc +++ b/net/base/x509_openssl_util.cc @@ -113,8 +113,8 @@ bool VerifyHostname(const std::string& hostname, // it's needed by the test server. TODO(joth): Replace this with full IP // address support. See http://crbug.com/62973 if (hostname == "127.0.0.1" && - std::find(cert_names.begin(), cert_names.end(), hostname) - != cert_names.end()) { + std::find(cert_names.begin(), cert_names.end(), hostname) != + cert_names.end()) { DVLOG(1) << "Allowing localhost IP certificate: " << hostname; return true; } diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc index 7fe7712..0c02507 100644 --- a/net/socket/ssl_client_socket_openssl.cc +++ b/net/socket/ssl_client_socket_openssl.cc @@ -323,6 +323,31 @@ bool SSLClientSocketOpenSSL::Init() { return true; } +int SSLClientSocketOpenSSL::ClientCertRequestCallback(SSL* ssl, + X509** x509, + EVP_PKEY** pkey) { + DVLOG(3) << "OpenSSL ClientCertRequestCallback called"; + DCHECK(ssl == ssl_); + DCHECK(*x509 == NULL); + DCHECK(*pkey == NULL); + + if (!ssl_config_.send_client_cert) { + client_auth_cert_needed_ = true; + return -1; // Suspends handshake. + } + + // Second pass: a client certificate should have been selected. + if (ssl_config_.client_cert) { + // TODO(joth): We need a way to lookup the private key this + // certificate. See http://crbug.com/64951 and example code in + // http://codereview.chromium.org/5195001/diff/6001/net/socket/ssl_client_socket_openssl.cc + NOTIMPLEMENTED(); + } + + // Send no client certificate. + return 0; +} + // SSLClientSocket methods void SSLClientSocketOpenSSL::GetSSLInfo(SSLInfo* ssl_info) { @@ -542,31 +567,6 @@ int SSLClientSocketOpenSSL::DoHandshake() { return net_error; } -int SSLClientSocketOpenSSL::ClientCertRequestCallback(SSL* ssl, - X509** x509, - EVP_PKEY** pkey) { - DVLOG(3) << "OpenSSL ClientCertRequestCallback called"; - DCHECK(ssl == ssl_); - DCHECK(*x509 == NULL); - DCHECK(*pkey == NULL); - - if (!ssl_config_.send_client_cert) { - client_auth_cert_needed_ = true; - return -1; // Suspends handshake. - } - - // Second pass: a client certificate should have been selected. - if (ssl_config_.client_cert) { - // TODO(joth): We need a way to lookup the private key this - // certificate. See http://crbug.com/64951 and example code in - // http://codereview.chromium.org/5195001/diff/6001/net/socket/ssl_client_socket_openssl.cc - NOTIMPLEMENTED(); - } - - // Send no client certificate. - return 0; -} - int SSLClientSocketOpenSSL::DoVerifyCert(int result) { DCHECK(server_cert_); GotoState(STATE_VERIFY_CERT_COMPLETE); |