Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: net/socket/ssl_client_socket_nss.cc

Issue 949633002: Include both certificate chains in invalid cert reporting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add a comment to cert logger pb Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file includes code SSLClientSocketNSS::DoVerifyCertComplete() derived 5 // This file includes code SSLClientSocketNSS::DoVerifyCertComplete() derived
6 // from AuthCertificateCallback() in 6 // from AuthCertificateCallback() in
7 // mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp. 7 // mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp.
8 8
9 /* ***** BEGIN LICENSE BLOCK ***** 9 /* ***** BEGIN LICENSE BLOCK *****
10 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 10 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
(...skipping 2877 matching lines...) Expand 10 before | Expand all | Expand 10 after
2888 bool SSLClientSocketNSS::GetSSLInfo(SSLInfo* ssl_info) { 2888 bool SSLClientSocketNSS::GetSSLInfo(SSLInfo* ssl_info) {
2889 EnterFunction(""); 2889 EnterFunction("");
2890 ssl_info->Reset(); 2890 ssl_info->Reset();
2891 if (core_->state().server_cert_chain.empty() || 2891 if (core_->state().server_cert_chain.empty() ||
2892 !core_->state().server_cert_chain[0]) { 2892 !core_->state().server_cert_chain[0]) {
2893 return false; 2893 return false;
2894 } 2894 }
2895 2895
2896 ssl_info->cert_status = server_cert_verify_result_.cert_status; 2896 ssl_info->cert_status = server_cert_verify_result_.cert_status;
2897 ssl_info->cert = server_cert_verify_result_.verified_cert; 2897 ssl_info->cert = server_cert_verify_result_.verified_cert;
2898 ssl_info->unverified_server_cert =
2899 server_cert_verify_result_.unverified_server_cert;
2898 2900
2899 AddSCTInfoToSSLInfo(ssl_info); 2901 AddSCTInfoToSSLInfo(ssl_info);
2900 2902
2901 ssl_info->connection_status = 2903 ssl_info->connection_status =
2902 core_->state().ssl_connection_status; 2904 core_->state().ssl_connection_status;
2903 ssl_info->public_key_hashes = server_cert_verify_result_.public_key_hashes; 2905 ssl_info->public_key_hashes = server_cert_verify_result_.public_key_hashes;
2904 ssl_info->is_issued_by_known_root = 2906 ssl_info->is_issued_by_known_root =
2905 server_cert_verify_result_.is_issued_by_known_root; 2907 server_cert_verify_result_.is_issued_by_known_root;
2906 ssl_info->client_cert_sent = 2908 ssl_info->client_cert_sent =
2907 ssl_config_.send_client_cert && ssl_config_.client_cert.get(); 2909 ssl_config_.send_client_cert && ssl_config_.client_cert.get();
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after
3461 reinterpret_cast<char*>( 3463 reinterpret_cast<char*>(
3462 core_->state().server_cert_chain[0]->derCert.data), 3464 core_->state().server_cert_chain[0]->derCert.data),
3463 core_->state().server_cert_chain[0]->derCert.len); 3465 core_->state().server_cert_chain[0]->derCert.len);
3464 CertStatus cert_status; 3466 CertStatus cert_status;
3465 if (ssl_config_.IsAllowedBadCert(der_cert, &cert_status)) { 3467 if (ssl_config_.IsAllowedBadCert(der_cert, &cert_status)) {
3466 DCHECK(start_cert_verification_time_.is_null()); 3468 DCHECK(start_cert_verification_time_.is_null());
3467 VLOG(1) << "Received an expected bad cert with status: " << cert_status; 3469 VLOG(1) << "Received an expected bad cert with status: " << cert_status;
3468 server_cert_verify_result_.Reset(); 3470 server_cert_verify_result_.Reset();
3469 server_cert_verify_result_.cert_status = cert_status; 3471 server_cert_verify_result_.cert_status = cert_status;
3470 server_cert_verify_result_.verified_cert = core_->state().server_cert; 3472 server_cert_verify_result_.verified_cert = core_->state().server_cert;
3473 server_cert_verify_result_.unverified_server_cert =
3474 core_->state().server_cert;
3471 return OK; 3475 return OK;
3472 } 3476 }
3473 3477
3474 // We may have failed to create X509Certificate object if we are 3478 // We may have failed to create X509Certificate object if we are
3475 // running inside sandbox. 3479 // running inside sandbox.
3476 if (!core_->state().server_cert.get()) { 3480 if (!core_->state().server_cert.get()) {
3477 server_cert_verify_result_.Reset(); 3481 server_cert_verify_result_.Reset();
3478 server_cert_verify_result_.cert_status = CERT_STATUS_INVALID; 3482 server_cert_verify_result_.cert_status = CERT_STATUS_INVALID;
3479 return ERR_CERT_INVALID; 3483 return ERR_CERT_INVALID;
3480 } 3484 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
3625 } 3629 }
3626 for (ct::SCTList::const_iterator iter = 3630 for (ct::SCTList::const_iterator iter =
3627 ct_verify_result_.unknown_logs_scts.begin(); 3631 ct_verify_result_.unknown_logs_scts.begin();
3628 iter != ct_verify_result_.unknown_logs_scts.end(); ++iter) { 3632 iter != ct_verify_result_.unknown_logs_scts.end(); ++iter) {
3629 ssl_info->signed_certificate_timestamps.push_back( 3633 ssl_info->signed_certificate_timestamps.push_back(
3630 SignedCertificateTimestampAndStatus(*iter, 3634 SignedCertificateTimestampAndStatus(*iter,
3631 ct::SCT_STATUS_LOG_UNKNOWN)); 3635 ct::SCT_STATUS_LOG_UNKNOWN));
3632 } 3636 }
3633 } 3637 }
3634 3638
3635 scoped_refptr<X509Certificate>
3636 SSLClientSocketNSS::GetUnverifiedServerCertificateChain() const {
3637 return core_->state().server_cert.get();
3638 }
3639
3640 ChannelIDService* SSLClientSocketNSS::GetChannelIDService() const { 3639 ChannelIDService* SSLClientSocketNSS::GetChannelIDService() const {
3641 return channel_id_service_; 3640 return channel_id_service_;
3642 } 3641 }
3643 3642
3644 } // namespace net 3643 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698