package protocol import "testing" func TestSignMessageHMACVector(t *testing.T) { // Standard HMAC-SHA256 sanity vector. Anchors that SignMessage matches // the canonical RFC 4231 algorithm so signatures stay interoperable // with peers that compute the same digest. got := SignMessage("key", []byte("hello")) want := "9307b3b915efb5171ff14d8cb55fbcc798c6c0ef1456d66ded1a6aa723a58b7b" if got != want { t.Fatalf("SignMessage(key, hello) = %s, want %s", got, want) } } func TestSignMessageDeterministic(t *testing.T) { a := SignMessage("test-key", []byte("2026-01-01 12:00:00|123456789")) b := SignMessage("test-key", []byte("2026-01-01 12:00:00|123456789")) if a != b { t.Fatalf("non-deterministic: %s != %s", a, b) } if len(a) != 64 { t.Fatalf("expected 64 hex chars, got %d (%s)", len(a), a) } } func TestIsH264KeyframeBasic(t *testing.T) { // 4-byte start code + IDR (NAL type 5) idr := []byte{0x00, 0x00, 0x00, 0x01, 0x65, 0x88} if !IsH264Keyframe(idr) { t.Fatal("IDR should be detected as keyframe") } // 3-byte start code + SPS (NAL type 7) sps := []byte{0x00, 0x00, 0x01, 0x67, 0x42} if !IsH264Keyframe(sps) { t.Fatal("SPS should be detected as keyframe") } // 4-byte start code + non-IDR slice (NAL type 1) pframe := []byte{0x00, 0x00, 0x00, 0x01, 0x41, 0x9b} if IsH264Keyframe(pframe) { t.Fatal("non-IDR slice should not be detected as keyframe") } // Garbage if IsH264Keyframe([]byte{0xde, 0xad, 0xbe, 0xef}) { t.Fatal("non-H264 bytes should not match") } }