Index: third_party/tlslite/tlslite/mathtls.py |
diff --git a/third_party/tlslite/tlslite/mathtls.py b/third_party/tlslite/tlslite/mathtls.py |
index 6e2377a64f2708753a86afca737a1789598747f1..60a331ab90f66ebe26bb2171b6dad697884bdc15 100644 |
--- a/third_party/tlslite/tlslite/mathtls.py |
+++ b/third_party/tlslite/tlslite/mathtls.py |
@@ -1,6 +1,7 @@ |
# Authors: |
# Trevor Perrin |
# Dave Baggett (Arcode Corporation) - MD5 support for MAC_SSL |
+# Yngve Pettersen (ported by Paul Sokolovsky) - TLS 1.2 |
# |
# See the LICENSE file for legal information regarding use of this file. |
@@ -49,6 +50,8 @@ def PRF(secret, label, seed, length): |
p_md5[x] ^= p_sha1[x] |
return p_md5 |
+def PRF_1_2(secret, label, seed, length): |
+ return P_hash(HMAC_SHA256, secret, label + seed, length) |
def PRF_SSL(secret, seed, length): |
bytes = bytearray(length) |
@@ -71,6 +74,9 @@ def calcMasterSecret(version, premasterSecret, clientRandom, serverRandom): |
elif version in ((3,1), (3,2)): |
masterSecret = PRF(premasterSecret, b"master secret", |
clientRandom + serverRandom, 48) |
+ elif version == (3,3): |
+ masterSecret = PRF_1_2(premasterSecret, b"master secret", |
+ clientRandom + serverRandom, 48) |
else: |
raise AssertionError() |
return masterSecret |