package faketls import ( "bytes" "encoding/hex" "testing" ) func TestBuildClientHello_Size(t *testing.T) { key, err := hex.DecodeString("5ba9cf5cf84698032e5300c864544dd0") if err != nil || len(key) != 16 { t.Fatalf("key: %v len %d", err, len(key)) } domain, err := hex.DecodeString("632e6170692e73746570612e6f6e65") if err != nil { t.Fatal(err) } ch, err := BuildClientHello(key, domain) if err != nil { t.Fatal(err) } if len(ch.Record) != 517 { t.Fatalf("record len %d", len(ch.Record)) } if !bytes.HasPrefix(ch.Record, []byte{0x16, 0x03, 0x01}) { t.Fatal("bad record header") } pl := int(ch.Record[3])<<8 | int(ch.Record[4]) if pl != 512 { t.Fatalf("record payload len %d", pl) } }