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

Side by Side Diff: net/third_party/nss/ssl/sslinfo.c

Issue 23621040: Make SSL False Start work with asynchronous certificate validation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Update the patch file Created 7 years, 2 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
« no previous file with comments | « net/third_party/nss/ssl/sslimpl.h ('k') | net/third_party/nss/ssl/sslsecur.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* This Source Code Form is subject to the terms of the Mozilla Public 1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 #include "ssl.h" 4 #include "ssl.h"
5 #include "sslimpl.h" 5 #include "sslimpl.h"
6 #include "sslproto.h" 6 #include "sslproto.h"
7 7
8 static const char * 8 static const char *
9 ssl_GetCompressionMethodName(SSLCompressionMethod compression) 9 ssl_GetCompressionMethodName(SSLCompressionMethod compression)
10 { 10 {
11 switch (compression) { 11 switch (compression) {
12 case ssl_compression_null: 12 case ssl_compression_null:
13 return "NULL"; 13 return "NULL";
14 #ifdef NSS_ENABLE_ZLIB 14 #ifdef NSS_ENABLE_ZLIB
15 case ssl_compression_deflate: 15 case ssl_compression_deflate:
16 return "DEFLATE"; 16 return "DEFLATE";
17 #endif 17 #endif
18 default: 18 default:
19 return "???"; 19 return "???";
20 } 20 }
21 } 21 }
22 22
23 SECStatus 23 SECStatus
24 SSL_GetChannelInfo(PRFileDesc *fd, SSLChannelInfo *info, PRUintn len) 24 SSL_GetChannelInfo(PRFileDesc *fd, SSLChannelInfo *info, PRUintn len)
25 { 25 {
26 sslSocket * ss; 26 sslSocket * ss;
27 SSLChannelInfo inf; 27 SSLChannelInfo inf;
28 sslSessionID * sid; 28 sslSessionID * sid;
29 PRBool enoughFirstHsDone = PR_FALSE;
30 29
31 if (!info || len < sizeof inf.length) { 30 if (!info || len < sizeof inf.length) {
32 PORT_SetError(SEC_ERROR_INVALID_ARGS); 31 PORT_SetError(SEC_ERROR_INVALID_ARGS);
33 return SECFailure; 32 return SECFailure;
34 } 33 }
35 34
36 ss = ssl_FindSocket(fd); 35 ss = ssl_FindSocket(fd);
37 if (!ss) { 36 if (!ss) {
38 SSL_DBG(("%d: SSL[%d]: bad socket in SSL_GetChannelInfo", 37 SSL_DBG(("%d: SSL[%d]: bad socket in SSL_GetChannelInfo",
39 SSL_GETPID(), fd)); 38 SSL_GETPID(), fd));
40 return SECFailure; 39 return SECFailure;
41 } 40 }
42 41
43 memset(&inf, 0, sizeof inf); 42 memset(&inf, 0, sizeof inf);
44 inf.length = PR_MIN(sizeof inf, len); 43 inf.length = PR_MIN(sizeof inf, len);
45 44
46 if (ss->firstHsDone) { 45 if (ss->opt.useSecurity && ss->enoughFirstHsDone) {
47 » enoughFirstHsDone = PR_TRUE;
48 } else if (ss->version >= SSL_LIBRARY_VERSION_3_0 &&
49 » ssl3_CanFalseStart(ss)) {
50 » enoughFirstHsDone = PR_TRUE;
51 }
52
53 if (ss->opt.useSecurity && enoughFirstHsDone) {
54 sid = ss->sec.ci.sid; 46 sid = ss->sec.ci.sid;
55 inf.protocolVersion = ss->version; 47 inf.protocolVersion = ss->version;
56 inf.authKeyBits = ss->sec.authKeyBits; 48 inf.authKeyBits = ss->sec.authKeyBits;
57 inf.keaKeyBits = ss->sec.keaKeyBits; 49 inf.keaKeyBits = ss->sec.keaKeyBits;
58 if (ss->version < SSL_LIBRARY_VERSION_3_0) { /* SSL2 */ 50 if (ss->version < SSL_LIBRARY_VERSION_3_0) { /* SSL2 */
59 inf.cipherSuite = ss->sec.cipherType | 0xff00; 51 inf.cipherSuite = ss->sec.cipherType | 0xff00;
60 inf.compressionMethod = ssl_compression_null; 52 inf.compressionMethod = ssl_compression_null;
61 inf.compressionMethodName = "N/A"; 53 inf.compressionMethodName = "N/A";
62 } else if (ss->ssl3.initialized) { /* SSL3 and TLS */ 54 } else if (ss->ssl3.initialized) { /* SSL3 and TLS */
63 ssl_GetSpecReadLock(ss); 55 ssl_GetSpecReadLock(ss);
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 rv = ssl3_TLSPRFWithMasterSecret(ss->ssl3.cwSpec, label, labelLen, val, 400 rv = ssl3_TLSPRFWithMasterSecret(ss->ssl3.cwSpec, label, labelLen, val,
409 valLen, out, outLen); 401 valLen, out, outLen);
410 } 402 }
411 ssl_ReleaseSpecReadLock(ss); 403 ssl_ReleaseSpecReadLock(ss);
412 ssl_ReleaseSSL3HandshakeLock(ss); 404 ssl_ReleaseSSL3HandshakeLock(ss);
413 ssl_ReleaseRecvBufLock(ss); 405 ssl_ReleaseRecvBufLock(ss);
414 406
415 PORT_ZFree(val, valLen); 407 PORT_ZFree(val, valLen);
416 return rv; 408 return rv;
417 } 409 }
OLDNEW
« no previous file with comments | « net/third_party/nss/ssl/sslimpl.h ('k') | net/third_party/nss/ssl/sslsecur.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698