@@ -886,6 +886,7 @@ func testResumption(t *testing.T, version uint16) {
886886 MaxVersion : version ,
887887 CipherSuites : []uint16 {TLS_RSA_WITH_RC4_128_SHA , TLS_ECDHE_RSA_WITH_RC4_128_SHA },
888888 Certificates : testConfig .Certificates ,
889+ Time : testTime ,
889890 }
890891
891892 issuer , err := x509 .ParseCertificate (testRSACertificateIssuer )
@@ -902,6 +903,7 @@ func testResumption(t *testing.T, version uint16) {
902903 ClientSessionCache : NewLRUClientSessionCache (32 ),
903904 RootCAs : rootCAs ,
904905 ServerName : "example.golang" ,
906+ Time : testTime ,
905907 }
906908
907909 testResumeState := func (test string , didResume bool ) {
@@ -949,20 +951,20 @@ func testResumption(t *testing.T, version uint16) {
949951 }
950952
951953 // 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 ) }
953955 testResumeState ("ResumeWithOldTicket" , true )
954956 if bytes .Equal (ticket [:ticketKeyNameLen ], getTicket ()[:ticketKeyNameLen ]) {
955957 t .Fatal ("old first ticket matches the fresh one" )
956958 }
957959
958960 // 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 ) }
960962 testResumeState ("ResumeWithExpiredTicket" , false )
961963 if bytes .Equal (ticket , getTicket ()) {
962964 t .Fatal ("expired first ticket matches the fresh one" )
963965 }
964966
965- serverConfig .Time = func () time. Time { return time . Now () } // reset the time back
967+ serverConfig .Time = testTime // reset the time back
966968 key1 := randomKey ()
967969 serverConfig .SetSessionTicketKeys ([][32 ]byte {key1 })
968970
@@ -979,11 +981,11 @@ func testResumption(t *testing.T, version uint16) {
979981 testResumeState ("KeyChangeFinish" , true )
980982
981983 // 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 ) }
983985 testResumeState ("OldSessionTicket" , true )
984986 ticket = getTicket ()
985987 // 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 ) }
987989 testResumeState ("ExpiredSessionTicket" , false )
988990 if bytes .Equal (ticket , getTicket ()) {
989991 t .Fatal ("new ticket wasn't provided after old ticket expired" )
@@ -993,15 +995,15 @@ func testResumption(t *testing.T, version uint16) {
993995 d := 0 * time .Hour
994996 for i := 0 ; i < 13 ; i ++ {
995997 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 ) }
997999 testResumeState ("OldSessionTicket" , true )
9981000 }
9991001 // Expire it (now a little more than 7 days) and make sure a full
10001002 // handshake occurs for TLS 1.2. Resumption should still occur for
10011003 // TLS 1.3 since the client should be using a fresh ticket sent over
10021004 // 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 ) }
10051007 if version == VersionTLS13 {
10061008 testResumeState ("ExpiredSessionTicket" , true )
10071009 } else {
@@ -1017,6 +1019,7 @@ func testResumption(t *testing.T, version uint16) {
10171019 MaxVersion : version ,
10181020 CipherSuites : []uint16 {TLS_RSA_WITH_RC4_128_SHA , TLS_ECDHE_RSA_WITH_RC4_128_SHA },
10191021 Certificates : testConfig .Certificates ,
1022+ Time : testTime ,
10201023 }
10211024 serverConfig .SetSessionTicketKeys ([][32 ]byte {key2 })
10221025
@@ -1655,6 +1658,7 @@ func testVerifyConnection(t *testing.T, version uint16) {
16551658 Certificates : []Certificate {testConfig .Certificates [0 ]},
16561659 ClientCAs : rootCAs ,
16571660 NextProtos : []string {"protocol1" },
1661+ Time : testTime ,
16581662 }
16591663 serverConfig .Certificates [0 ].SignedCertificateTimestamps = [][]byte {[]byte ("dummy sct 1" ), []byte ("dummy sct 2" )}
16601664 serverConfig .Certificates [0 ].OCSPStaple = []byte ("dummy ocsp" )
@@ -1667,6 +1671,7 @@ func testVerifyConnection(t *testing.T, version uint16) {
16671671 ServerName : "example.golang" ,
16681672 Certificates : []Certificate {testConfig .Certificates [0 ]},
16691673 NextProtos : []string {"protocol1" },
1674+ Time : testTime ,
16701675 }
16711676 test .configureClient (clientConfig , & clientCalled )
16721677
@@ -2465,11 +2470,13 @@ func testResumptionKeepsOCSPAndSCT(t *testing.T, ver uint16) {
24652470 ClientSessionCache : NewLRUClientSessionCache (32 ),
24662471 ServerName : "example.golang" ,
24672472 RootCAs : roots ,
2473+ Time : testTime ,
24682474 }
24692475 serverConfig := testConfig .Clone ()
24702476 serverConfig .MaxVersion = ver
24712477 serverConfig .Certificates [0 ].OCSPStaple = []byte {1 , 2 , 3 }
24722478 serverConfig .Certificates [0 ].SignedCertificateTimestamps = [][]byte {{4 , 5 , 6 }}
2479+ serverConfig .Time = testTime
24732480
24742481 _ , ccs , err := testHandshake (t , clientConfig , serverConfig )
24752482 if err != nil {
0 commit comments