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

Side by Side Diff: third_party/tlslite/patches/exported_keying_material.patch

Issue 1378613004: Set Token-Binding HTTP header (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tb-tls-ext-new
Patch Set: Remove sequence numbers from mock reads Created 4 years, 11 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
OLDNEW
(Empty)
1 diff --git a/third_party/tlslite/tlslite/tlsconnection.py b/third_party/tlslite/ tlslite/tlsconnection.py
2 index 7363a30..e42b362 100644
3 --- a/third_party/tlslite/tlslite/tlsconnection.py
4 +++ b/third_party/tlslite/tlslite/tlsconnection.py
5 @@ -181,6 +181,8 @@ class TLSConnection(TLSRecordLayer):
6 @type sock: L{socket.socket}
7 """
8 TLSRecordLayer.__init__(self, sock)
9 + self.clientRandom = b""
10 + self.serverRandom = b""
11
12 #*********************************************************
13 # Client Handshake Functions
14 @@ -606,6 +608,9 @@ class TLSConnection(TLSRecordLayer):
15 else: break
16 masterSecret = result
17
18 + self.clientRandom = clientHello.random
19 + self.serverRandom = serverHello.random
20 +
21 # Create the session object which is used for resumptions
22 self.session = Session()
23 self.session.create(masterSecret, serverHello.session_id, cipherSuite,
24 @@ -1398,6 +1403,9 @@ class TLSConnection(TLSRecordLayer):
25 else: break
26 masterSecret = result
27
28 + self.clientRandom = clientHello.random
29 + self.serverRandom = serverHello.random
30 +
31 #Create the session object
32 self.session = Session()
33 if cipherSuite in CipherSuite.certAllSuites:
34 @@ -2013,3 +2025,22 @@ class TLSConnection(TLSRecordLayer):
35 except:
36 self._shutdown(False)
37 raise
38 +
39 +
40 + def exportKeyingMaterial(self, label, context, use_context, length):
41 + """Returns the exported keying material as defined in RFC 5705."""
42 +
43 + seed = self.clientRandom + self.serverRandom
44 + if use_context:
45 + if len(context) > 65535:
46 + raise ValueError("Context is too long")
47 + seed += bytearray(2)
48 + seed[len(seed) - 2] = len(context) >> 8
49 + seed[len(seed) - 1] = len(context) & 0xFF
50 + seed += context
51 + if self.version in ((3,1), (3,2)):
52 + return PRF(self.session.masterSecret, label, seed, length)
53 + elif self.version == (3,3):
54 + return PRF_1_2(self.session.masterSecret, label, seed, length)
55 + else:
56 + raise AssertionError()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698