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

Side by Side Diff: third_party/tlslite/tlslite/handshakesettings.py

Issue 280853002: Preserve transport errors for OpenSSL sockets. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: USE_NSS -> USE_OPENSSL for Windows and Mac Created 6 years, 6 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 # Authors: 1 # Authors:
2 # Trevor Perrin 2 # Trevor Perrin
3 # Dave Baggett (Arcode Corporation) - cleanup handling of constants 3 # Dave Baggett (Arcode Corporation) - cleanup handling of constants
4 # 4 #
5 # See the LICENSE file for legal information regarding use of this file. 5 # See the LICENSE file for legal information regarding use of this file.
6 6
7 """Class for setting handshake parameters.""" 7 """Class for setting handshake parameters."""
8 8
9 from .constants import CertificateType 9 from .constants import CertificateType
10 from .utils import cryptomath 10 from .utils import cryptomath
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 85
86 @type maxVersion: tuple 86 @type maxVersion: tuple
87 @ivar maxVersion: The maximum allowed SSL/TLS version. 87 @ivar maxVersion: The maximum allowed SSL/TLS version.
88 88
89 This variable can be set to (3,0) for SSL 3.0, (3,1) for 89 This variable can be set to (3,0) for SSL 3.0, (3,1) for
90 TLS 1.0, or (3,2) for TLS 1.1. If the other party wishes to 90 TLS 1.0, or (3,2) for TLS 1.1. If the other party wishes to
91 use a higher version, a protocol_version alert will be signalled. 91 use a higher version, a protocol_version alert will be signalled.
92 The default is (3,2). (WARNING: Some servers may (improperly) 92 The default is (3,2). (WARNING: Some servers may (improperly)
93 reject clients which offer support for TLS 1.1. In this case, 93 reject clients which offer support for TLS 1.1. In this case,
94 try lowering maxVersion to (3,1)). 94 try lowering maxVersion to (3,1)).
95
96 @type tlsIntolerant: tuple
97 @ivar tlsIntolerant: TLS version intolerance for servers.
98
99 If tlsIntolerant is not None, the server will simulate TLS version
100 intolerance by returning a fatal handshake_failure alert or a TCP reset to
101 all TLS versions tlsIntolerant or higher.
102
103 @type resetOnIntolerance: bool
104 @ivar resetOnIntolerance: Whether to send a TCP reset on TLS intolerance.
105
106 If resetOnIntolerance is True, the server will simulate TLS version
107 intolerance with a TCP reset rather than with a fatal handshake_failuer
108 alert.
95 109
96 @type useExperimentalTackExtension: bool 110 @type useExperimentalTackExtension: bool
97 @ivar useExperimentalTackExtension: Whether to enabled TACK support. 111 @ivar useExperimentalTackExtension: Whether to enabled TACK support.
98 112
99 Note that TACK support is not standardized by IETF and uses a temporary 113 Note that TACK support is not standardized by IETF and uses a temporary
100 TLS Extension number, so should NOT be used in production software. 114 TLS Extension number, so should NOT be used in production software.
101 """ 115 """
102 def __init__(self): 116 def __init__(self):
103 self.minKeySize = 1023 117 self.minKeySize = 1023
104 self.maxKeySize = 8193 118 self.maxKeySize = 8193
105 self.cipherNames = CIPHER_NAMES 119 self.cipherNames = CIPHER_NAMES
106 self.macNames = MAC_NAMES 120 self.macNames = MAC_NAMES
107 self.keyExchangeNames = KEY_EXCHANGE_NAMES 121 self.keyExchangeNames = KEY_EXCHANGE_NAMES
108 self.cipherImplementations = CIPHER_IMPLEMENTATIONS 122 self.cipherImplementations = CIPHER_IMPLEMENTATIONS
109 self.certificateTypes = CERTIFICATE_TYPES 123 self.certificateTypes = CERTIFICATE_TYPES
110 self.minVersion = (3,0) 124 self.minVersion = (3,0)
111 self.maxVersion = (3,2) 125 self.maxVersion = (3,2)
126 self.tlsIntolerant = None
127 self.resetOnIntolerance = False
112 self.useExperimentalTackExtension = False 128 self.useExperimentalTackExtension = False
113 129
114 # Validates the min/max fields, and certificateTypes 130 # Validates the min/max fields, and certificateTypes
115 # Filters out unsupported cipherNames and cipherImplementations 131 # Filters out unsupported cipherNames and cipherImplementations
116 def _filter(self): 132 def _filter(self):
117 other = HandshakeSettings() 133 other = HandshakeSettings()
118 other.minKeySize = self.minKeySize 134 other.minKeySize = self.minKeySize
119 other.maxKeySize = self.maxKeySize 135 other.maxKeySize = self.maxKeySize
120 other.cipherNames = self.cipherNames 136 other.cipherNames = self.cipherNames
121 other.macNames = self.macNames 137 other.macNames = self.macNames
122 other.keyExchangeNames = self.keyExchangeNames 138 other.keyExchangeNames = self.keyExchangeNames
123 other.cipherImplementations = self.cipherImplementations 139 other.cipherImplementations = self.cipherImplementations
124 other.certificateTypes = self.certificateTypes 140 other.certificateTypes = self.certificateTypes
125 other.minVersion = self.minVersion 141 other.minVersion = self.minVersion
126 other.maxVersion = self.maxVersion 142 other.maxVersion = self.maxVersion
143 other.tlsIntolerant = self.tlsIntolerant
144 other.resetOnIntolerance = self.resetOnIntolerance
127 145
128 if not cipherfactory.tripleDESPresent: 146 if not cipherfactory.tripleDESPresent:
129 other.cipherNames = [e for e in self.cipherNames if e != "3des"] 147 other.cipherNames = [e for e in self.cipherNames if e != "3des"]
130 if len(other.cipherNames)==0: 148 if len(other.cipherNames)==0:
131 raise ValueError("No supported ciphers") 149 raise ValueError("No supported ciphers")
132 if len(other.certificateTypes)==0: 150 if len(other.certificateTypes)==0:
133 raise ValueError("No supported certificate types") 151 raise ValueError("No supported certificate types")
134 152
135 if not cryptomath.m2cryptoLoaded: 153 if not cryptomath.m2cryptoLoaded:
136 other.cipherImplementations = \ 154 other.cipherImplementations = \
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 return other 195 return other
178 196
179 def _getCertificateTypes(self): 197 def _getCertificateTypes(self):
180 l = [] 198 l = []
181 for ct in self.certificateTypes: 199 for ct in self.certificateTypes:
182 if ct == "x509": 200 if ct == "x509":
183 l.append(CertificateType.x509) 201 l.append(CertificateType.x509)
184 else: 202 else:
185 raise AssertionError() 203 raise AssertionError()
186 return l 204 return l
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698