35 lines
843 B
Go
35 lines
843 B
Go
package faketls
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/hex"
|
|
"testing"
|
|
)
|
|
|
|
func TestBuildTdesktopClientHello_shape(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 := BuildTdesktopClientHello(key, domain)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(ch.Record) < 5 || len(ch.Record) > kClientHelloLimit {
|
|
t.Fatalf("record len %d", len(ch.Record))
|
|
}
|
|
if !bytes.HasPrefix(ch.Record, []byte{0x16, 0x03, 0x01}) {
|
|
t.Fatal("bad record header")
|
|
}
|
|
if len(ch.RandomField) != 32 {
|
|
t.Fatalf("random/digest field len %d", len(ch.RandomField))
|
|
}
|
|
if len(ch.SessionID) != 32 {
|
|
t.Fatalf("session id len %d", len(ch.SessionID))
|
|
}
|
|
}
|