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

Unified Diff: third_party/tlslite/patches/fallback_scsv.patch

Issue 109563002: net: add test for TLS_FALLBACK_SCSV (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Typo fix. Created 7 years 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/patches/fallback_scsv.patch
diff --git a/third_party/tlslite/patches/fallback_scsv.patch b/third_party/tlslite/patches/fallback_scsv.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3cfb67a63db6f8b9af90ae495ed4c3605e006c45
--- /dev/null
+++ b/third_party/tlslite/patches/fallback_scsv.patch
@@ -0,0 +1,99 @@
+diff --git a/third_party/tlslite/tlslite/TLSConnection.py b/third_party/tlslite/tlslite/TLSConnection.py
+index d2270a9..e6ce187 100644
+--- a/third_party/tlslite/tlslite/TLSConnection.py
++++ b/third_party/tlslite/tlslite/TLSConnection.py
+@@ -937,7 +937,8 @@ class TLSConnection(TLSRecordLayer):
+ certChain=None, privateKey=None, reqCert=False,
+ sessionCache=None, settings=None, checker=None,
+ reqCAs=None, tlsIntolerant=0,
+- signedCertTimestamps=None):
++ signedCertTimestamps=None,
++ fallbackSCSV=False):
+ """Perform a handshake in the role of server.
+
+ This function performs an SSL or TLS handshake. Depending on
+@@ -1022,7 +1023,8 @@ class TLSConnection(TLSRecordLayer):
+ """
+ for result in self.handshakeServerAsync(sharedKeyDB, verifierDB,
+ certChain, privateKey, reqCert, sessionCache, settings,
+- checker, reqCAs, tlsIntolerant, signedCertTimestamps):
++ checker, reqCAs, tlsIntolerant, signedCertTimestamps,
++ fallbackSCSV):
+ pass
+
+
+@@ -1030,7 +1032,8 @@ class TLSConnection(TLSRecordLayer):
+ certChain=None, privateKey=None, reqCert=False,
+ sessionCache=None, settings=None, checker=None,
+ reqCAs=None, tlsIntolerant=0,
+- signedCertTimestamps=None):
++ signedCertTimestamps=None,
++ fallbackSCSV=False):
+ """Start a server handshake operation on the TLS connection.
+
+ This function returns a generator which behaves similarly to
+@@ -1049,7 +1052,8 @@ class TLSConnection(TLSRecordLayer):
+ sessionCache=sessionCache, settings=settings,
+ reqCAs=reqCAs,
+ tlsIntolerant=tlsIntolerant,
+- signedCertTimestamps=signedCertTimestamps)
++ signedCertTimestamps=signedCertTimestamps,
++ fallbackSCSV=fallbackSCSV)
+ for result in self._handshakeWrapperAsync(handshaker, checker):
+ yield result
+
+@@ -1057,7 +1061,8 @@ class TLSConnection(TLSRecordLayer):
+ def _handshakeServerAsyncHelper(self, sharedKeyDB, verifierDB,
+ certChain, privateKey, reqCert,
+ sessionCache, settings, reqCAs,
+- tlsIntolerant, signedCertTimestamps):
++ tlsIntolerant, signedCertTimestamps,
++ fallbackSCSV):
+
+ self._handshakeStart(client=False)
+
+@@ -1141,12 +1146,18 @@ class TLSConnection(TLSRecordLayer):
+ yield result
+
+ #If client's version is too high, propose my highest version
+- elif clientHello.client_version > settings.maxVersion:
++ if clientHello.client_version > settings.maxVersion:
+ self.version = settings.maxVersion
+-
+ else:
+ #Set the version to the client's version
+ self.version = clientHello.client_version
++ if (fallbackSCSV and
++ clientHello.client_version < settings.maxVersion):
++ for cipherSuite in clientHello.cipher_suites:
++ if cipherSuite == 0x5600:
++ for result in self._sendError(\
++ AlertDescription.inappropriate_fallback):
++ yield result
+
+ #Get the client nonce; create server nonce
+ clientRandom = clientHello.random
+diff --git a/third_party/tlslite/tlslite/constants.py b/third_party/tlslite/tlslite/constants.py
+index b5a345a..23e3dcb 100644
+--- a/third_party/tlslite/tlslite/constants.py
++++ b/third_party/tlslite/tlslite/constants.py
+@@ -91,6 +91,7 @@ class AlertDescription:
+ protocol_version = 70
+ insufficient_security = 71
+ internal_error = 80
++ inappropriate_fallback = 86
+ user_canceled = 90
+ no_renegotiation = 100
+ unknown_srp_username = 120
+diff --git a/third_party/tlslite/tlslite/errors.py b/third_party/tlslite/tlslite/errors.py
+index c7f7ba8..45087e6 100644
+--- a/third_party/tlslite/tlslite/errors.py
++++ b/third_party/tlslite/tlslite/errors.py
+@@ -48,6 +48,7 @@ class TLSAlert(TLSError):
+ AlertDescription.protocol_version: "protocol_version",\
+ AlertDescription.insufficient_security: "insufficient_security",\
+ AlertDescription.internal_error: "internal_error",\
++ AlertDescription.inappropriate_fallback: "inappropriate_fallback",\
+ AlertDescription.user_canceled: "user_canceled",\
+ AlertDescription.no_renegotiation: "no_renegotiation",\
+ AlertDescription.unknown_srp_username: "unknown_srp_username",\

Powered by Google App Engine
This is Rietveld 408576698