33 lines
717 B
Go
33 lines
717 B
Go
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)
|
|
}
|
|
}
|