package lib import ( "bytes" "testing" ) func TestMintWireToken_roundtrip(t *testing.T) { l0 := []byte{0x11, 0x22, 0x33, 0x44} l1 := []byte{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88} agentID := make([]byte, 16) for i := range agentID { agentID[i] = byte(0x40 + i) } token, err := MintWireToken(l0, l1, agentID) if err != nil { t.Fatalf("MintWireToken: %v", err) } gotL0, gotL1, gotAgentID, err := ParseWireToken(token) if err != nil { t.Fatalf("ParseWireToken: %v", err) } if !bytes.Equal(gotL0, l0) { t.Fatalf("L0 mismatch") } if !bytes.Equal(gotL1, l1) { t.Fatalf("L1 mismatch") } if !bytes.Equal(gotAgentID, agentID) { t.Fatalf("agent_id mismatch") } } func TestCVT_tamper_detection(t *testing.T) { l0 := []byte{0x11, 0x22, 0x33, 0x44} l1 := []byte{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88} agentID := make([]byte, 16) token, _ := MintWireToken(l0, l1, agentID) // Flip a character in the middle tampered := token[:10] + "X" + token[11:] _, _, _, err := ParseWireToken(tampered) if err == nil { t.Fatal("expected error on tampered token") } } func TestCVT_unique(t *testing.T) { l0 := []byte{0x11, 0x22, 0x33, 0x44} l1 := []byte{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88} agentID := make([]byte, 16) t1, _ := MintWireToken(l0, l1, agentID) t2, _ := MintWireToken(l0, l1, agentID) if t1 == t2 { t.Fatal("two tokens with same input should differ (random nonce)") } }