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

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

Issue 1336143002: Implement Token Binding Negotiation in tlslite (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: check version number Created 5 years, 3 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
« no previous file with comments | « third_party/tlslite/tlslite/constants.py ('k') | third_party/tlslite/tlslite/messages.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 # Yngve Pettersen (ported by Paul Sokolovsky) - TLS 1.2 4 # Yngve Pettersen (ported by Paul Sokolovsky) - TLS 1.2
5 # 5 #
6 # See the LICENSE file for legal information regarding use of this file. 6 # See the LICENSE file for legal information regarding use of this file.
7 7
8 """Class for setting handshake parameters.""" 8 """Class for setting handshake parameters."""
9 9
10 from .constants import CertificateType 10 from .constants import CertificateType
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 @type useExperimentalTackExtension: bool 108 @type useExperimentalTackExtension: bool
109 @ivar useExperimentalTackExtension: Whether to enabled TACK support. 109 @ivar useExperimentalTackExtension: Whether to enabled TACK support.
110 110
111 @type alertAfterHandshake: bool 111 @type alertAfterHandshake: bool
112 @ivar alertAfterHandshake: If true, the server will send a fatal 112 @ivar alertAfterHandshake: If true, the server will send a fatal
113 alert immediately after the handshake completes. 113 alert immediately after the handshake completes.
114 114
115 @type enableExtendedMasterSecret: bool 115 @type enableExtendedMasterSecret: bool
116 @ivar enableExtendedMasterSecret: If true, the server supports the extended 116 @ivar enableExtendedMasterSecret: If true, the server supports the extended
117 master secret TLS extension and will negotiated it with supporting clients. 117 master secret TLS extension and will negotiated it with supporting clients.
118
119 @type supportedTokenBindingParams: list
120 @ivar supportedTokenBindingParams: A list of token binding parameters that
121 the server supports when negotiating token binding. List values are integers
122 corresponding to the TokenBindingKeyParameters enum in the Token Binding
123 Negotiation spec (draft-ietf-tokbind-negotiation-00). Values are in server's
124 preference order, with most preferred params first.
118 125
119 Note that TACK support is not standardized by IETF and uses a temporary 126 Note that TACK support is not standardized by IETF and uses a temporary
120 TLS Extension number, so should NOT be used in production software. 127 TLS Extension number, so should NOT be used in production software.
121 """ 128 """
122 def __init__(self): 129 def __init__(self):
123 self.minKeySize = 1023 130 self.minKeySize = 1023
124 self.maxKeySize = 8193 131 self.maxKeySize = 8193
125 self.cipherNames = CIPHER_NAMES 132 self.cipherNames = CIPHER_NAMES
126 self.macNames = MAC_NAMES 133 self.macNames = MAC_NAMES
127 self.keyExchangeNames = KEY_EXCHANGE_NAMES 134 self.keyExchangeNames = KEY_EXCHANGE_NAMES
128 self.cipherImplementations = CIPHER_IMPLEMENTATIONS 135 self.cipherImplementations = CIPHER_IMPLEMENTATIONS
129 self.certificateTypes = CERTIFICATE_TYPES 136 self.certificateTypes = CERTIFICATE_TYPES
130 self.minVersion = (3,1) 137 self.minVersion = (3,1)
131 self.maxVersion = (3,3) 138 self.maxVersion = (3,3)
132 self.tlsIntolerant = None 139 self.tlsIntolerant = None
133 self.tlsIntoleranceType = 'alert' 140 self.tlsIntoleranceType = 'alert'
134 self.useExperimentalTackExtension = False 141 self.useExperimentalTackExtension = False
135 self.alertAfterHandshake = False 142 self.alertAfterHandshake = False
136 self.enableExtendedMasterSecret = True 143 self.enableExtendedMasterSecret = True
144 self.supportedTokenBindingParams = []
137 145
138 # Validates the min/max fields, and certificateTypes 146 # Validates the min/max fields, and certificateTypes
139 # Filters out unsupported cipherNames and cipherImplementations 147 # Filters out unsupported cipherNames and cipherImplementations
140 def _filter(self): 148 def _filter(self):
141 other = HandshakeSettings() 149 other = HandshakeSettings()
142 other.minKeySize = self.minKeySize 150 other.minKeySize = self.minKeySize
143 other.maxKeySize = self.maxKeySize 151 other.maxKeySize = self.maxKeySize
144 other.cipherNames = self.cipherNames 152 other.cipherNames = self.cipherNames
145 other.macNames = self.macNames 153 other.macNames = self.macNames
146 other.keyExchangeNames = self.keyExchangeNames 154 other.keyExchangeNames = self.keyExchangeNames
147 other.cipherImplementations = self.cipherImplementations 155 other.cipherImplementations = self.cipherImplementations
148 other.certificateTypes = self.certificateTypes 156 other.certificateTypes = self.certificateTypes
149 other.minVersion = self.minVersion 157 other.minVersion = self.minVersion
150 other.maxVersion = self.maxVersion 158 other.maxVersion = self.maxVersion
151 other.tlsIntolerant = self.tlsIntolerant 159 other.tlsIntolerant = self.tlsIntolerant
152 other.tlsIntoleranceType = self.tlsIntoleranceType 160 other.tlsIntoleranceType = self.tlsIntoleranceType
153 other.alertAfterHandshake = self.alertAfterHandshake 161 other.alertAfterHandshake = self.alertAfterHandshake
154 other.enableExtendedMasterSecret = self.enableExtendedMasterSecret 162 other.enableExtendedMasterSecret = self.enableExtendedMasterSecret
163 other.supportedTokenBindingParams = self.supportedTokenBindingParams
155 164
156 if not cipherfactory.tripleDESPresent: 165 if not cipherfactory.tripleDESPresent:
157 other.cipherNames = [e for e in self.cipherNames if e != "3des"] 166 other.cipherNames = [e for e in self.cipherNames if e != "3des"]
158 if len(other.cipherNames)==0: 167 if len(other.cipherNames)==0:
159 raise ValueError("No supported ciphers") 168 raise ValueError("No supported ciphers")
160 if len(other.certificateTypes)==0: 169 if len(other.certificateTypes)==0:
161 raise ValueError("No supported certificate types") 170 raise ValueError("No supported certificate types")
162 171
163 if not cryptomath.m2cryptoLoaded: 172 if not cryptomath.m2cryptoLoaded:
164 other.cipherImplementations = \ 173 other.cipherImplementations = \
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 return other 218 return other
210 219
211 def _getCertificateTypes(self): 220 def _getCertificateTypes(self):
212 l = [] 221 l = []
213 for ct in self.certificateTypes: 222 for ct in self.certificateTypes:
214 if ct == "x509": 223 if ct == "x509":
215 l.append(CertificateType.x509) 224 l.append(CertificateType.x509)
216 else: 225 else:
217 raise AssertionError() 226 raise AssertionError()
218 return l 227 return l
OLDNEW
« no previous file with comments | « third_party/tlslite/tlslite/constants.py ('k') | third_party/tlslite/tlslite/messages.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698