@@ -886,6 +886,7 @@ func testResumption(t *testing.T, version uint16) {
886
886
MaxVersion : version ,
887
887
CipherSuites : []uint16 {TLS_RSA_WITH_RC4_128_SHA , TLS_ECDHE_RSA_WITH_RC4_128_SHA },
888
888
Certificates : testConfig .Certificates ,
889
+ Time : testTime ,
889
890
}
890
891
891
892
issuer , err := x509 .ParseCertificate (testRSACertificateIssuer )
@@ -902,6 +903,7 @@ func testResumption(t *testing.T, version uint16) {
902
903
ClientSessionCache : NewLRUClientSessionCache (32 ),
903
904
RootCAs : rootCAs ,
904
905
ServerName : "example.golang" ,
906
+ Time : testTime ,
905
907
}
906
908
907
909
testResumeState := func (test string , didResume bool ) {
@@ -949,20 +951,20 @@ func testResumption(t *testing.T, version uint16) {
949
951
}
950
952
951
953
// An old session ticket can resume, but the server will provide a ticket encrypted with a fresh key.
952
- serverConfig .Time = func () time.Time { return time . Now ().Add (24 * time .Hour + time .Minute ) }
954
+ serverConfig .Time = func () time.Time { return testTime ().Add (24 * time .Hour + time .Minute ) }
953
955
testResumeState ("ResumeWithOldTicket" , true )
954
956
if bytes .Equal (ticket [:ticketKeyNameLen ], getTicket ()[:ticketKeyNameLen ]) {
955
957
t .Fatal ("old first ticket matches the fresh one" )
956
958
}
957
959
958
960
// Now the session tickey key is expired, so a full handshake should occur.
959
- serverConfig .Time = func () time.Time { return time . Now ().Add (24 * 8 * time .Hour + time .Minute ) }
961
+ serverConfig .Time = func () time.Time { return testTime ().Add (24 * 8 * time .Hour + time .Minute ) }
960
962
testResumeState ("ResumeWithExpiredTicket" , false )
961
963
if bytes .Equal (ticket , getTicket ()) {
962
964
t .Fatal ("expired first ticket matches the fresh one" )
963
965
}
964
966
965
- serverConfig .Time = func () time. Time { return time . Now () } // reset the time back
967
+ serverConfig .Time = testTime // reset the time back
966
968
key1 := randomKey ()
967
969
serverConfig .SetSessionTicketKeys ([][32 ]byte {key1 })
968
970
@@ -979,11 +981,11 @@ func testResumption(t *testing.T, version uint16) {
979
981
testResumeState ("KeyChangeFinish" , true )
980
982
981
983
// Age the session ticket a bit, but not yet expired.
982
- serverConfig .Time = func () time.Time { return time . Now ().Add (24 * time .Hour + time .Minute ) }
984
+ serverConfig .Time = func () time.Time { return testTime ().Add (24 * time .Hour + time .Minute ) }
983
985
testResumeState ("OldSessionTicket" , true )
984
986
ticket = getTicket ()
985
987
// Expire the session ticket, which would force a full handshake.
986
- serverConfig .Time = func () time.Time { return time . Now ().Add (24 * 8 * time .Hour + time .Minute ) }
988
+ serverConfig .Time = func () time.Time { return testTime ().Add (24 * 8 * time .Hour + 2 * time .Minute ) }
987
989
testResumeState ("ExpiredSessionTicket" , false )
988
990
if bytes .Equal (ticket , getTicket ()) {
989
991
t .Fatal ("new ticket wasn't provided after old ticket expired" )
@@ -993,15 +995,15 @@ func testResumption(t *testing.T, version uint16) {
993
995
d := 0 * time .Hour
994
996
for i := 0 ; i < 13 ; i ++ {
995
997
d += 12 * time .Hour
996
- serverConfig .Time = func () time.Time { return time . Now ().Add (d ) }
998
+ serverConfig .Time = func () time.Time { return testTime ().Add (d ) }
997
999
testResumeState ("OldSessionTicket" , true )
998
1000
}
999
1001
// Expire it (now a little more than 7 days) and make sure a full
1000
1002
// handshake occurs for TLS 1.2. Resumption should still occur for
1001
1003
// TLS 1.3 since the client should be using a fresh ticket sent over
1002
1004
// by the server.
1003
- d += 12 * time .Hour
1004
- serverConfig .Time = func () time.Time { return time . Now ().Add (d ) }
1005
+ d += 12 * time .Hour + 1 * time . Minute
1006
+ serverConfig .Time = func () time.Time { return testTime ().Add (d ) }
1005
1007
if version == VersionTLS13 {
1006
1008
testResumeState ("ExpiredSessionTicket" , true )
1007
1009
} else {
@@ -1017,6 +1019,7 @@ func testResumption(t *testing.T, version uint16) {
1017
1019
MaxVersion : version ,
1018
1020
CipherSuites : []uint16 {TLS_RSA_WITH_RC4_128_SHA , TLS_ECDHE_RSA_WITH_RC4_128_SHA },
1019
1021
Certificates : testConfig .Certificates ,
1022
+ Time : testTime ,
1020
1023
}
1021
1024
serverConfig .SetSessionTicketKeys ([][32 ]byte {key2 })
1022
1025
@@ -1655,6 +1658,7 @@ func testVerifyConnection(t *testing.T, version uint16) {
1655
1658
Certificates : []Certificate {testConfig .Certificates [0 ]},
1656
1659
ClientCAs : rootCAs ,
1657
1660
NextProtos : []string {"protocol1" },
1661
+ Time : testTime ,
1658
1662
}
1659
1663
serverConfig .Certificates [0 ].SignedCertificateTimestamps = [][]byte {[]byte ("dummy sct 1" ), []byte ("dummy sct 2" )}
1660
1664
serverConfig .Certificates [0 ].OCSPStaple = []byte ("dummy ocsp" )
@@ -1667,6 +1671,7 @@ func testVerifyConnection(t *testing.T, version uint16) {
1667
1671
ServerName : "example.golang" ,
1668
1672
Certificates : []Certificate {testConfig .Certificates [0 ]},
1669
1673
NextProtos : []string {"protocol1" },
1674
+ Time : testTime ,
1670
1675
}
1671
1676
test .configureClient (clientConfig , & clientCalled )
1672
1677
@@ -2465,11 +2470,13 @@ func testResumptionKeepsOCSPAndSCT(t *testing.T, ver uint16) {
2465
2470
ClientSessionCache : NewLRUClientSessionCache (32 ),
2466
2471
ServerName : "example.golang" ,
2467
2472
RootCAs : roots ,
2473
+ Time : testTime ,
2468
2474
}
2469
2475
serverConfig := testConfig .Clone ()
2470
2476
serverConfig .MaxVersion = ver
2471
2477
serverConfig .Certificates [0 ].OCSPStaple = []byte {1 , 2 , 3 }
2472
2478
serverConfig .Certificates [0 ].SignedCertificateTimestamps = [][]byte {{4 , 5 , 6 }}
2479
+ serverConfig .Time = testTime
2473
2480
2474
2481
_ , ccs , err := testHandshake (t , clientConfig , serverConfig )
2475
2482
if err != nil {
0 commit comments