From e714dc61a8721a9ec2436028c5d82610e37f87c7 Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Sat, 25 Jan 2020 10:20:11 +0000 Subject: [PATCH] Add a test for server touchstone --- internal/server/auth_test.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/internal/server/auth_test.go b/internal/server/auth_test.go index 15190f5..8d0b62f 100644 --- a/internal/server/auth_test.go +++ b/internal/server/auth_test.go @@ -33,6 +33,29 @@ func TestTouchStone(t *testing.T) { t.Errorf("expecting session id 3710878841, got %v", cinfo.SessionId) } }) + t.Run("roughly correct time", func(t *testing.T) { + chBytes, _ := hex.DecodeString("1603010200010001fc0303ac530b5778469dbbc3f9a83c6ac35b63aa6a70c2014026ade30f2faf0266f0242068424f320bcad49b4315a761f9f6dec32b0a403c2d8c0ab337608a694c6e411c0024130113031302c02bc02fcca9cca8c02cc030c00ac009c013c01400330039002f0035000a0100018f00000011000f00000c7777772e62696e672e636f6d00170000ff01000100000a000e000c001d00170018001901000101000b00020100002300000010000e000c02683208687474702f312e310005000501000000000033006b0069001d00204655c2c83aaed1db2e89ed17d671fcdc76dc96e36bde8840022f1bda2f31019600170041543af1f8d28b37d984073f40e8361613da502f16e4039f00656f427de0f66480b2e77e3e552e126bb0cc097168f6e5454c7f9501126a2377fb40151f6cfc007e0e002b0009080304030303020301000d0018001604030503060308040805080604010501060102030201002d00020101001c00024001001500920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") + ch, _ := parseClientHello(chBytes) + ai, err := unmarshalClientHello(ch, staticPv) + if err != nil { + t.Errorf("expecting no error, got %v", err) + return + } + + nineSixSixP50 := func() time.Time { return time.Unix(1565998966, 0).Add(50) } + _, err = touchStone(ai, nineSixSixP50) + if err != nil { + t.Errorf("expecting no error, got %v", err) + return + } + nineSixSixM50 := func() time.Time { return time.Unix(1565998966, 0).Truncate(50) } + _, err = touchStone(ai, nineSixSixM50) + if err != nil { + t.Errorf("expecting no error, got %v", err) + return + } + + }) t.Run("over interval", func(t *testing.T) { chBytes, _ := hex.DecodeString("1603010200010001fc0303ac530b5778469dbbc3f9a83c6ac35b63aa6a70c2014026ade30f2faf0266f0242068424f320bcad49b4315a761f9f6dec32b0a403c2d8c0ab337608a694c6e411c0024130113031302c02bc02fcca9cca8c02cc030c00ac009c013c01400330039002f0035000a0100018f00000011000f00000c7777772e62696e672e636f6d00170000ff01000100000a000e000c001d00170018001901000101000b00020100002300000010000e000c02683208687474702f312e310005000501000000000033006b0069001d00204655c2c83aaed1db2e89ed17d671fcdc76dc96e36bde8840022f1bda2f31019600170041543af1f8d28b37d984073f40e8361613da502f16e4039f00656f427de0f66480b2e77e3e552e126bb0cc097168f6e5454c7f9501126a2377fb40151f6cfc007e0e002b0009080304030303020301000d0018001604030503060308040805080604010501060102030201002d00020101001c00024001001500920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") ch, _ := parseClientHello(chBytes)