| 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 |