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

Unified Diff: third_party/tlslite/tlslite/tlsconnection.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, 7 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 side-by-side diff with in-line comments
Download patch
Index: third_party/tlslite/tlslite/tlsconnection.py
diff --git a/third_party/tlslite/tlslite/tlsconnection.py b/third_party/tlslite/tlslite/tlsconnection.py
index 044ad5969a73bed819c3036a6983383119c8ec23..67551f297bc1244d99b7d8e858ddf75bded22ca7 100644
--- a/third_party/tlslite/tlslite/tlsconnection.py
+++ b/third_party/tlslite/tlslite/tlsconnection.py
@@ -1065,7 +1065,7 @@ class TLSConnection(TLSRecordLayer):
reqCAs = None, reqCertTypes = None,
tacks=None, activationFlags=0,
nextProtos=None, anon=False,
- tlsIntolerant=None, signedCertTimestamps=None,
+ signedCertTimestamps=None,
fallbackSCSV=False, ocspResponse=None):
"""Perform a handshake in the role of server.
@@ -1139,11 +1139,6 @@ class TLSConnection(TLSRecordLayer):
clients through the Next-Protocol Negotiation Extension,
if they support it.
- @type tlsIntolerant: (int, int) or None
- @param tlsIntolerant: If tlsIntolerant is not None, the server will
- simulate TLS version intolerance by returning a fatal handshake_failure
- alert to all TLS versions tlsIntolerant or higher.
-
@type signedCertTimestamps: str
@param signedCertTimestamps: A SignedCertificateTimestampList (as a
binary 8-bit string) that will be sent as a TLS extension whenever
@@ -1175,7 +1170,7 @@ class TLSConnection(TLSRecordLayer):
certChain, privateKey, reqCert, sessionCache, settings,
checker, reqCAs, reqCertTypes,
tacks=tacks, activationFlags=activationFlags,
- nextProtos=nextProtos, anon=anon, tlsIntolerant=tlsIntolerant,
+ nextProtos=nextProtos, anon=anon,
signedCertTimestamps=signedCertTimestamps,
fallbackSCSV=fallbackSCSV, ocspResponse=ocspResponse):
pass
@@ -1187,7 +1182,6 @@ class TLSConnection(TLSRecordLayer):
reqCAs=None, reqCertTypes=None,
tacks=None, activationFlags=0,
nextProtos=None, anon=False,
- tlsIntolerant=None,
signedCertTimestamps=None,
fallbackSCSV=False,
ocspResponse=None
@@ -1210,7 +1204,6 @@ class TLSConnection(TLSRecordLayer):
reqCAs=reqCAs, reqCertTypes=reqCertTypes,
tacks=tacks, activationFlags=activationFlags,
nextProtos=nextProtos, anon=anon,
- tlsIntolerant=tlsIntolerant,
signedCertTimestamps=signedCertTimestamps,
fallbackSCSV=fallbackSCSV,
ocspResponse=ocspResponse)
@@ -1223,7 +1216,7 @@ class TLSConnection(TLSRecordLayer):
settings, reqCAs, reqCertTypes,
tacks, activationFlags,
nextProtos, anon,
- tlsIntolerant, signedCertTimestamps, fallbackSCSV,
+ signedCertTimestamps, fallbackSCSV,
ocspResponse):
self._handshakeStart(client=False)
@@ -1261,7 +1254,7 @@ class TLSConnection(TLSRecordLayer):
# Handle ClientHello and resumption
for result in self._serverGetClientHello(settings, certChain,\
verifierDB, sessionCache,
- anon, tlsIntolerant, fallbackSCSV):
+ anon, fallbackSCSV):
if result in (0,1): yield result
elif result == None:
self._handshakeDone(resumed=True)
@@ -1376,7 +1369,7 @@ class TLSConnection(TLSRecordLayer):
def _serverGetClientHello(self, settings, certChain, verifierDB,
- sessionCache, anon, tlsIntolerant, fallbackSCSV):
+ sessionCache, anon, fallbackSCSV):
#Initialize acceptable cipher suites
cipherSuites = []
if verifierDB:
@@ -1413,11 +1406,15 @@ class TLSConnection(TLSRecordLayer):
yield result
#If simulating TLS intolerance, reject certain TLS versions.
- elif (tlsIntolerant is not None and
- clientHello.client_version >= tlsIntolerant):
- for result in self._sendError(\
+ elif (settings.tlsIntolerant is not None and
+ clientHello.client_version >= settings.tlsIntolerant):
+ if settings.resetOnIntolerance:
+ self._abortWithReset()
+ raise TLSUnsupportedError('Simulating version intolerance')
+ else:
+ for result in self._sendError(\
AlertDescription.handshake_failure):
- yield result
+ yield result
#If client's version is too high, propose my highest version
elif clientHello.client_version > settings.maxVersion:

Powered by Google App Engine
This is Rietveld 408576698