| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |