Files
ai-gateway-go/internal/provider/credentials_test.go
T
superidou 5759c1862e AI Gateway Go 0.10.0 源码快照 + 旗舰版需求规划报告
M0-M7 已完成:核心网关(身份/RBAC/TOTP/OIDC/SAML/Provider/配额/路由/内容策略/审计/定价)+ 资源市场(MCP/Skills/数字员工)。
含 22 个 PostgreSQL 迁移、管理端/门户端前端源码、OpenAPI 契约、部署 compose。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-12 11:45:54 +08:00

27 lines
721 B
Go

package provider
import (
"encoding/base64"
"testing"
)
func TestCredentialCipherRoundTripAndAuthentication(t *testing.T) {
key := base64.StdEncoding.EncodeToString(make([]byte, 32))
cipher, err := NewCredentialCipher(key, 7)
if err != nil {
t.Fatal(err)
}
encrypted, version, err := cipher.Encrypt([]byte(`{"api_key":"secret"}`))
if err != nil {
t.Fatal(err)
}
plaintext, err := cipher.Decrypt(encrypted, version)
if err != nil || string(plaintext) != `{"api_key":"secret"}` {
t.Fatalf("unexpected decrypt result %q: %v", plaintext, err)
}
encrypted[len(encrypted)-1] ^= 1
if _, err := cipher.Decrypt(encrypted, version); err == nil {
t.Fatal("tampered ciphertext must fail authentication")
}
}