@@ -852,6 +852,7 @@ func testResumption(t *testing.T, version uint16) {
852
852
MaxVersion : version ,
853
853
CipherSuites : []uint16 {TLS_RSA_WITH_RC4_128_SHA , TLS_ECDHE_RSA_WITH_RC4_128_SHA },
854
854
Certificates : testConfig .Certificates ,
855
+ Time : testTime ,
855
856
}
856
857
857
858
issuer , err := x509 .ParseCertificate (testRSACertificateIssuer )
@@ -868,6 +869,7 @@ func testResumption(t *testing.T, version uint16) {
868
869
ClientSessionCache : NewLRUClientSessionCache (32 ),
869
870
RootCAs : rootCAs ,
870
871
ServerName : "example.golang" ,
872
+ Time : testTime ,
871
873
}
872
874
873
875
testResumeState := func (test string , didResume bool ) {
@@ -914,21 +916,21 @@ func testResumption(t *testing.T, version uint16) {
914
916
915
917
// An old session ticket is replaced with a ticket encrypted with a fresh key.
916
918
ticket = getTicket ()
917
- serverConfig .Time = func () time.Time { return time . Now ().Add (24 * time .Hour + time .Minute ) }
919
+ serverConfig .Time = func () time.Time { return testTime ().Add (24 * time .Hour + time .Minute ) }
918
920
testResumeState ("ResumeWithOldTicket" , true )
919
921
if bytes .Equal (ticket , getTicket ()) {
920
922
t .Fatal ("old first ticket matches the fresh one" )
921
923
}
922
924
923
925
// Once the session master secret is expired, a full handshake should occur.
924
926
ticket = getTicket ()
925
- serverConfig .Time = func () time.Time { return time . Now ().Add (24 * 8 * time .Hour + time .Minute ) }
927
+ serverConfig .Time = func () time.Time { return testTime ().Add (24 * 8 * time .Hour + time .Minute ) }
926
928
testResumeState ("ResumeWithExpiredTicket" , false )
927
929
if bytes .Equal (ticket , getTicket ()) {
928
930
t .Fatal ("expired first ticket matches the fresh one" )
929
931
}
930
932
931
- serverConfig .Time = func () time. Time { return time . Now () } // reset the time back
933
+ serverConfig .Time = testTime // reset the time back
932
934
key1 := randomKey ()
933
935
serverConfig .SetSessionTicketKeys ([][32 ]byte {key1 })
934
936
@@ -945,19 +947,19 @@ func testResumption(t *testing.T, version uint16) {
945
947
testResumeState ("KeyChangeFinish" , true )
946
948
947
949
// Age the session ticket a bit, but not yet expired.
948
- serverConfig .Time = func () time.Time { return time . Now ().Add (24 * time .Hour + time .Minute ) }
950
+ serverConfig .Time = func () time.Time { return testTime ().Add (24 * time .Hour + time .Minute ) }
949
951
testResumeState ("OldSessionTicket" , true )
950
952
ticket = getTicket ()
951
953
// Expire the session ticket, which would force a full handshake.
952
- serverConfig .Time = func () time.Time { return time . Now ().Add (24 * 8 * time .Hour + time .Minute ) }
954
+ serverConfig .Time = func () time.Time { return testTime ().Add (24 * 8 * time .Hour + 2 * time .Minute ) }
953
955
testResumeState ("ExpiredSessionTicket" , false )
954
956
if bytes .Equal (ticket , getTicket ()) {
955
957
t .Fatal ("new ticket wasn't provided after old ticket expired" )
956
958
}
957
959
958
960
// Age the session ticket a bit at a time, but don't expire it.
959
961
d := 0 * time .Hour
960
- serverConfig .Time = func () time.Time { return time . Now ().Add (d ) }
962
+ serverConfig .Time = func () time.Time { return testTime ().Add (d ) }
961
963
deleteTicket ()
962
964
testResumeState ("GetFreshSessionTicket" , false )
963
965
for i := 0 ; i < 13 ; i ++ {
@@ -968,7 +970,7 @@ func testResumption(t *testing.T, version uint16) {
968
970
// handshake occurs for TLS 1.2. Resumption should still occur for
969
971
// TLS 1.3 since the client should be using a fresh ticket sent over
970
972
// by the server.
971
- d += 12 * time .Hour
973
+ d += 12 * time .Hour + time . Minute
972
974
if version == VersionTLS13 {
973
975
testResumeState ("ExpiredSessionTicket" , true )
974
976
} else {
@@ -984,6 +986,7 @@ func testResumption(t *testing.T, version uint16) {
984
986
MaxVersion : version ,
985
987
CipherSuites : []uint16 {TLS_RSA_WITH_RC4_128_SHA , TLS_ECDHE_RSA_WITH_RC4_128_SHA },
986
988
Certificates : testConfig .Certificates ,
989
+ Time : testTime ,
987
990
}
988
991
serverConfig .SetSessionTicketKeys ([][32 ]byte {key2 })
989
992
@@ -1009,6 +1012,7 @@ func testResumption(t *testing.T, version uint16) {
1009
1012
CurvePreferences : []CurveID {CurveP521 , CurveP384 , CurveP256 },
1010
1013
MaxVersion : version ,
1011
1014
Certificates : testConfig .Certificates ,
1015
+ Time : testTime ,
1012
1016
}
1013
1017
testResumeState ("InitialHandshake" , false )
1014
1018
testResumeState ("WithHelloRetryRequest" , true )
@@ -1018,6 +1022,7 @@ func testResumption(t *testing.T, version uint16) {
1018
1022
MaxVersion : version ,
1019
1023
CipherSuites : []uint16 {TLS_RSA_WITH_RC4_128_SHA , TLS_ECDHE_RSA_WITH_RC4_128_SHA },
1020
1024
Certificates : testConfig .Certificates ,
1025
+ Time : testTime ,
1021
1026
}
1022
1027
}
1023
1028
@@ -1736,6 +1741,7 @@ func testVerifyConnection(t *testing.T, version uint16) {
1736
1741
serverConfig := & Config {
1737
1742
MaxVersion : version ,
1738
1743
Certificates : []Certificate {testConfig .Certificates [0 ]},
1744
+ Time : testTime ,
1739
1745
ClientCAs : rootCAs ,
1740
1746
NextProtos : []string {"protocol1" },
1741
1747
}
@@ -1749,6 +1755,7 @@ func testVerifyConnection(t *testing.T, version uint16) {
1749
1755
RootCAs : rootCAs ,
1750
1756
ServerName : "example.golang" ,
1751
1757
Certificates : []Certificate {testConfig .Certificates [0 ]},
1758
+ Time : testTime ,
1752
1759
NextProtos : []string {"protocol1" },
1753
1760
}
1754
1761
test .configureClient (clientConfig , & clientCalled )
@@ -1791,8 +1798,6 @@ func testVerifyPeerCertificate(t *testing.T, version uint16) {
1791
1798
rootCAs := x509 .NewCertPool ()
1792
1799
rootCAs .AddCert (issuer )
1793
1800
1794
- now := func () time.Time { return time .Unix (1476984729 , 0 ) }
1795
-
1796
1801
sentinelErr := errors .New ("TestVerifyPeerCertificate" )
1797
1802
1798
1803
verifyPeerCertificateCallback := func (called * bool , rawCerts [][]byte , validatedChains [][]* x509.Certificate ) error {
@@ -2038,7 +2043,7 @@ func testVerifyPeerCertificate(t *testing.T, version uint16) {
2038
2043
config .ServerName = "example.golang"
2039
2044
config .ClientAuth = RequireAndVerifyClientCert
2040
2045
config .ClientCAs = rootCAs
2041
- config .Time = now
2046
+ config .Time = testTime
2042
2047
config .MaxVersion = version
2043
2048
config .Certificates = make ([]Certificate , 1 )
2044
2049
config .Certificates [0 ].Certificate = [][]byte {testRSACertificate }
@@ -2055,7 +2060,7 @@ func testVerifyPeerCertificate(t *testing.T, version uint16) {
2055
2060
config := testConfig .Clone ()
2056
2061
config .ServerName = "example.golang"
2057
2062
config .RootCAs = rootCAs
2058
- config .Time = now
2063
+ config .Time = testTime
2059
2064
config .MaxVersion = version
2060
2065
test .configureClient (config , & clientCalled )
2061
2066
clientErr := Client (c , config ).Handshake ()
@@ -2368,7 +2373,7 @@ func testGetClientCertificate(t *testing.T, version uint16) {
2368
2373
serverConfig .RootCAs = x509 .NewCertPool ()
2369
2374
serverConfig .RootCAs .AddCert (issuer )
2370
2375
serverConfig .ClientCAs = serverConfig .RootCAs
2371
- serverConfig .Time = func () time. Time { return time . Unix ( 1476984729 , 0 ) }
2376
+ serverConfig .Time = testTime
2372
2377
serverConfig .MaxVersion = version
2373
2378
2374
2379
clientConfig := testConfig .Clone ()
@@ -2539,6 +2544,7 @@ func testResumptionKeepsOCSPAndSCT(t *testing.T, ver uint16) {
2539
2544
ClientSessionCache : NewLRUClientSessionCache (32 ),
2540
2545
ServerName : "example.golang" ,
2541
2546
RootCAs : roots ,
2547
+ Time : testTime ,
2542
2548
}
2543
2549
serverConfig := testConfig .Clone ()
2544
2550
serverConfig .MaxVersion = ver
0 commit comments