summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authorwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-13 17:54:42 +0000
committerwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-13 17:54:42 +0000
commit127017875991e4a1b3d12dfff23d70265f991ef6 (patch)
treefc697789fb31e1c0fc137163aee660ba79f839d8 /net/http
parentad8c2293824aecaf34ecdcd1f01720919afac6db (diff)
downloadchromium_src-127017875991e4a1b3d12dfff23d70265f991ef6.zip
chromium_src-127017875991e4a1b3d12dfff23d70265f991ef6.tar.gz
chromium_src-127017875991e4a1b3d12dfff23d70265f991ef6.tar.bz2
Implement SSL certificate error handling on the Mac. If the user gives
us bad certs to allow, we tell SecureTransport to not verify the server cert, and only allow the cert to be one of the bad certs the user allows. In the future we should figure out how to verify the server cert ourselves. R=avi,eroman BUG=http://crbug.com/11983 TEST=Visit https://www.ssl247.com/ and https://alioth.debian.org/. Clicking the "Proceed anyway" button should bring you to the site with a red "https" in the location bar. Review URL: http://codereview.chromium.org/165191 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23321 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r--net/http/http_network_transaction.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index 1a1b2f0..a3f5513 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -1378,7 +1378,10 @@ int HttpNetworkTransaction::HandleCertificateError(int error) {
// SSL info object. This data structure will be consulted after calling
// RestartIgnoringLastError(). And the user will be asked interactively
// before RestartIgnoringLastError() is ever called.
- ssl_config_.allowed_bad_certs_.insert(response_.ssl_info.cert);
+ SSLConfig::CertAndStatus bad_cert;
+ bad_cert.cert = response_.ssl_info.cert;
+ bad_cert.cert_status = response_.ssl_info.cert_status;
+ ssl_config_.allowed_bad_certs.push_back(bad_cert);
}
return error;
}