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

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

Issue 502087: Use Separate SSL Session Cache in OTR Mode (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 10 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/lock.h" 10 #include "base/lock.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 return OK; 64 return OK;
65 default: 65 default:
66 LOG(WARNING) << "Unknown error " << err << " mapped to net::ERR_FAILED"; 66 LOG(WARNING) << "Unknown error " << err << " mapped to net::ERR_FAILED";
67 return ERR_FAILED; 67 return ERR_FAILED;
68 } 68 }
69 } 69 }
70 70
71 //----------------------------------------------------------------------------- 71 //-----------------------------------------------------------------------------
72 72
73 // A bitmask consisting of these bit flags encodes which versions of the SSL 73 // A bitmask consisting of these bit flags encodes which versions of the SSL
74 // protocol (SSL 2.0, SSL 3.0, and TLS 1.0) are enabled. 74 // protocol (SSL 2.0, SSL 3.0, and TLS 1.0) are enabled and whether OTR mode
75 // is enabled (this permits a separate session id cache for OTR mode).
75 enum { 76 enum {
76 SSL2 = 1 << 0, 77 SSL2 = 1 << 0,
77 SSL3 = 1 << 1, 78 SSL3 = 1 << 1,
78 TLS1 = 1 << 2, 79 TLS1 = 1 << 2,
79 SSL_VERSION_MASKS = 1 << 3 // The number of SSL version bitmasks. 80 OTR_MODE = 1 << 3,
davidben 2010/07/26 21:31:33 OTR_MODE doesn't make much sense as a member of SS
81 SSL_VERSION_MASKS = 1 << 4 // The number of SSL version bitmasks.
80 }; 82 };
81 83
82 // CredHandleClass simply gives a default constructor and a destructor to 84 // CredHandleClass simply gives a default constructor and a destructor to
83 // SSPI's CredHandle type (a C struct). 85 // SSPI's CredHandle type (a C struct).
84 class CredHandleClass : public CredHandle { 86 class CredHandleClass : public CredHandle {
85 public: 87 public:
86 CredHandleClass() { 88 CredHandleClass() {
87 dwLower = 0; 89 dwLower = 0;
88 dwUpper = 0; 90 dwUpper = 0;
89 } 91 }
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 } 459 }
458 460
459 int SSLClientSocketWin::InitializeSSLContext() { 461 int SSLClientSocketWin::InitializeSSLContext() {
460 int ssl_version_mask = 0; 462 int ssl_version_mask = 0;
461 if (ssl_config_.ssl2_enabled) 463 if (ssl_config_.ssl2_enabled)
462 ssl_version_mask |= SSL2; 464 ssl_version_mask |= SSL2;
463 if (ssl_config_.ssl3_enabled) 465 if (ssl_config_.ssl3_enabled)
464 ssl_version_mask |= SSL3; 466 ssl_version_mask |= SSL3;
465 if (ssl_config_.tls1_enabled) 467 if (ssl_config_.tls1_enabled)
466 ssl_version_mask |= TLS1; 468 ssl_version_mask |= TLS1;
469 if (ssl_config_.otr_mode)
470 ssl_version_mask |= OTR_MODE;
467 // If we pass 0 to GetCredHandle, we will let Schannel select the protocols, 471 // If we pass 0 to GetCredHandle, we will let Schannel select the protocols,
468 // rather than enabling no protocols. So we have to fail here. 472 // rather than enabling no protocols. So we have to fail here.
469 if (ssl_version_mask == 0) 473 if (ssl_version_mask == 0)
470 return ERR_NO_SSL_VERSIONS_ENABLED; 474 return ERR_NO_SSL_VERSIONS_ENABLED;
471 PCCERT_CONTEXT cert_context = NULL; 475 PCCERT_CONTEXT cert_context = NULL;
472 if (ssl_config_.client_cert) 476 if (ssl_config_.client_cert)
473 cert_context = ssl_config_.client_cert->os_cert_handle(); 477 cert_context = ssl_config_.client_cert->os_cert_handle();
474 creds_ = GetCredHandle(cert_context, ssl_version_mask); 478 creds_ = GetCredHandle(cert_context, ssl_version_mask);
475 479
476 memset(&ctxt_, 0, sizeof(ctxt_)); 480 memset(&ctxt_, 0, sizeof(ctxt_));
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
1343 UpdateConnectionTypeHistograms(CONNECTION_SSL_MD2_CA); 1347 UpdateConnectionTypeHistograms(CONNECTION_SSL_MD2_CA);
1344 } 1348 }
1345 1349
1346 void SSLClientSocketWin::FreeSendBuffer() { 1350 void SSLClientSocketWin::FreeSendBuffer() {
1347 SECURITY_STATUS status = FreeContextBuffer(send_buffer_.pvBuffer); 1351 SECURITY_STATUS status = FreeContextBuffer(send_buffer_.pvBuffer);
1348 DCHECK(status == SEC_E_OK); 1352 DCHECK(status == SEC_E_OK);
1349 memset(&send_buffer_, 0, sizeof(send_buffer_)); 1353 memset(&send_buffer_, 0, sizeof(send_buffer_));
1350 } 1354 }
1351 1355
1352 } // namespace net 1356 } // namespace net
OLDNEW
« net/socket/ssl_client_socket_nss.cc ('K') | « net/socket/ssl_client_socket_nss.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698