OLD | NEW |
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ | 1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
2 /* | 2 /* |
3 * SSL3 Protocol | 3 * SSL3 Protocol |
4 * | 4 * |
5 * ***** BEGIN LICENSE BLOCK ***** | 5 * ***** BEGIN LICENSE BLOCK ***** |
6 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | 6 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
7 * | 7 * |
8 * The contents of this file are subject to the Mozilla Public License Version | 8 * The contents of this file are subject to the Mozilla Public License Version |
9 * 1.1 (the "License"); you may not use this file except in compliance with | 9 * 1.1 (the "License"); you may not use this file except in compliance with |
10 * the License. You may obtain a copy of the License at | 10 * the License. You may obtain a copy of the License at |
(...skipping 6090 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6101 /* XXX: does not take into account whether we are waiting for | 6101 /* XXX: does not take into account whether we are waiting for |
6102 * SSL_AuthCertificateComplete or SSL_RestartHandshakeAfterCertReq. If/when | 6102 * SSL_AuthCertificateComplete or SSL_RestartHandshakeAfterCertReq. If/when |
6103 * that is done, this function could return different results each time it | 6103 * that is done, this function could return different results each time it |
6104 * would be called. | 6104 * would be called. |
6105 */ | 6105 */ |
6106 | 6106 |
6107 ssl_GetSpecReadLock(ss); | 6107 ssl_GetSpecReadLock(ss); |
6108 rv = ss->opt.enableFalseStart && | 6108 rv = ss->opt.enableFalseStart && |
6109 !ss->sec.isServer && | 6109 !ss->sec.isServer && |
6110 !ss->ssl3.hs.isResuming && | 6110 !ss->ssl3.hs.isResuming && |
| 6111 /* This check for NPN is performed here because we can't call |
| 6112 * SSL_HandshakeNegotiatedExtension in the auth callback because of |
| 6113 * lock ordering issues. See crbug.com/125299 */ |
| 6114 ssl3_ExtensionNegotiated(ss, ssl_next_proto_nego_xtn) && |
6111 ss->ssl3.cwSpec && | 6115 ss->ssl3.cwSpec && |
6112 | 6116 |
6113 /* An attacker can control the selected ciphersuite so we only wish to | 6117 /* An attacker can control the selected ciphersuite so we only wish to |
6114 * do False Start in the case that the selected ciphersuite is | 6118 * do False Start in the case that the selected ciphersuite is |
6115 * sufficiently strong that the attack can gain no advantage. | 6119 * sufficiently strong that the attack can gain no advantage. |
6116 * Therefore we require an 80-bit cipher and a forward-secret key | 6120 * Therefore we require an 80-bit cipher and a forward-secret key |
6117 * exchange. */ | 6121 * exchange. */ |
6118 ss->ssl3.cwSpec->cipher_def->secret_key_size >= 10 && | 6122 ss->ssl3.cwSpec->cipher_def->secret_key_size >= 10 && |
6119 (ss->ssl3.hs.kea_def->kea == kea_dhe_dss || | 6123 (ss->ssl3.hs.kea_def->kea == kea_dhe_dss || |
6120 ss->ssl3.hs.kea_def->kea == kea_dhe_rsa || | 6124 ss->ssl3.hs.kea_def->kea == kea_dhe_rsa || |
(...skipping 4339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10460 PORT_Free(ss->ssl3.hs.recvdFragments.buf); | 10464 PORT_Free(ss->ssl3.hs.recvdFragments.buf); |
10461 } | 10465 } |
10462 } | 10466 } |
10463 | 10467 |
10464 ss->ssl3.initialized = PR_FALSE; | 10468 ss->ssl3.initialized = PR_FALSE; |
10465 | 10469 |
10466 SECITEM_FreeItem(&ss->ssl3.nextProto, PR_FALSE); | 10470 SECITEM_FreeItem(&ss->ssl3.nextProto, PR_FALSE); |
10467 } | 10471 } |
10468 | 10472 |
10469 /* End of ssl3con.c */ | 10473 /* End of ssl3con.c */ |
OLD | NEW |