OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "net/socket/ssl_client_socket_win.h" | 5 #include "net/socket/ssl_client_socket_win.h" |
6 | 6 |
7 #include <schnlsp.h> | 7 #include <schnlsp.h> |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 void SSLClientSocketWin::GetSSLInfo(SSLInfo* ssl_info) { | 429 void SSLClientSocketWin::GetSSLInfo(SSLInfo* ssl_info) { |
430 ssl_info->Reset(); | 430 ssl_info->Reset(); |
431 if (!server_cert_) | 431 if (!server_cert_) |
432 return; | 432 return; |
433 | 433 |
434 ssl_info->cert = server_cert_; | 434 ssl_info->cert = server_cert_; |
435 ssl_info->cert_status = server_cert_verify_result_.cert_status; | 435 ssl_info->cert_status = server_cert_verify_result_.cert_status; |
436 ssl_info->public_key_hashes = server_cert_verify_result_.public_key_hashes; | 436 ssl_info->public_key_hashes = server_cert_verify_result_.public_key_hashes; |
437 ssl_info->is_issued_by_known_root = | 437 ssl_info->is_issued_by_known_root = |
438 server_cert_verify_result_.is_issued_by_known_root; | 438 server_cert_verify_result_.is_issued_by_known_root; |
| 439 ssl_info->client_cert_sent = |
| 440 ssl_config_.send_client_cert && ssl_config_.client_cert; |
439 SecPkgContext_ConnectionInfo connection_info; | 441 SecPkgContext_ConnectionInfo connection_info; |
440 SECURITY_STATUS status = QueryContextAttributes( | 442 SECURITY_STATUS status = QueryContextAttributes( |
441 &ctxt_, SECPKG_ATTR_CONNECTION_INFO, &connection_info); | 443 &ctxt_, SECPKG_ATTR_CONNECTION_INFO, &connection_info); |
442 if (status == SEC_E_OK) { | 444 if (status == SEC_E_OK) { |
443 // TODO(wtc): compute the overall security strength, taking into account | 445 // TODO(wtc): compute the overall security strength, taking into account |
444 // dwExchStrength and dwHashStrength. dwExchStrength needs to be | 446 // dwExchStrength and dwHashStrength. dwExchStrength needs to be |
445 // normalized. | 447 // normalized. |
446 ssl_info->security_bits = connection_info.dwCipherStrength; | 448 ssl_info->security_bits = connection_info.dwCipherStrength; |
447 } | 449 } |
448 // SecPkgContext_CipherInfo comes from CNG and is available on Vista or | 450 // SecPkgContext_CipherInfo comes from CNG and is available on Vista or |
(...skipping 1107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1556 UpdateConnectionTypeHistograms(CONNECTION_SSL_MD2_CA); | 1558 UpdateConnectionTypeHistograms(CONNECTION_SSL_MD2_CA); |
1557 } | 1559 } |
1558 | 1560 |
1559 void SSLClientSocketWin::FreeSendBuffer() { | 1561 void SSLClientSocketWin::FreeSendBuffer() { |
1560 SECURITY_STATUS status = FreeContextBuffer(send_buffer_.pvBuffer); | 1562 SECURITY_STATUS status = FreeContextBuffer(send_buffer_.pvBuffer); |
1561 DCHECK(status == SEC_E_OK); | 1563 DCHECK(status == SEC_E_OK); |
1562 memset(&send_buffer_, 0, sizeof(send_buffer_)); | 1564 memset(&send_buffer_, 0, sizeof(send_buffer_)); |
1563 } | 1565 } |
1564 | 1566 |
1565 } // namespace net | 1567 } // namespace net |
OLD | NEW |