package crypt import ( "bytes" "testing" ) // TestCoreAesEncryptDecryptExRoundTrip 校验新增的 CoreAesDecryptEx 与 CoreAesEncryptEx 互逆。 func TestCoreAesEncryptDecryptExRoundTrip(t *testing.T) { key := "h5-m3u8-ticket-key-roundtrip-000000000000" plains := [][]byte{ []byte(""), []byte("a"), []byte(`{"u":10086,"p":"v3/av/a.m3u8","e":1737000000}`), bytes.Repeat([]byte("x"), 512), } for _, plain := range plains { enc, err := CoreAesEncryptEx(plain, 12, key) if err != nil { t.Fatalf("encrypt: %v", err) } dec, err := CoreAesDecryptEx(enc, 12, key) if err != nil { t.Fatalf("decrypt: %v", err) } if !bytes.Equal(dec, plain) { t.Fatalf("round trip mismatch: got %q want %q", dec, plain) } } } // TestCoreAesDecryptExRejectsShort 确保短于 nonce 的非法输入不 panic 且返回错误。 func TestCoreAesDecryptExRejectsShort(t *testing.T) { if _, err := CoreAesDecryptEx([]byte{1, 2, 3}, 12, "key"); err == nil { t.Fatal("expected error for input shorter than nonce") } } // TestCoreAesDecryptExWrongKey 用错误密钥解密不应还原出原文。 func TestCoreAesDecryptExWrongKey(t *testing.T) { enc, err := CoreAesEncryptEx([]byte("secret-payload"), 12, "key-a-000000000000000000000000000000") if err != nil { t.Fatalf("encrypt: %v", err) } dec, err := CoreAesDecryptEx(enc, 12, "key-b-111111111111111111111111111111") if err == nil && string(dec) == "secret-payload" { t.Fatal("wrong key must not recover plaintext") } }