diff options
author | wtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-13 17:54:42 +0000 |
---|---|---|
committer | wtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-13 17:54:42 +0000 |
commit | 127017875991e4a1b3d12dfff23d70265f991ef6 (patch) | |
tree | fc697789fb31e1c0fc137163aee660ba79f839d8 /net/http | |
parent | ad8c2293824aecaf34ecdcd1f01720919afac6db (diff) | |
download | chromium_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.cc | 5 |
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; } |