- module path renamed (no external importers); golangci local-prefixes - ACCESS_ENGINE_RUN_TOPAZ_INTEGRATION replaces FLEX_AUTH_RUN_TOPAZ_INTEGRATION - README title and identity paragraph reflect the landed renames - docs/runtime-rename-inventory.md: per-consumer references by kind and order - chart name, image package and /opt paths deliberately left for T05 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 735967@bnt-lap001 Assistant-Session: 5971967f-77f8-4ced-9e02-c6ef67040ffc
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package sign_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/netkingdom/access-engine/internal/sign"
|
|
"github.com/netkingdom/access-engine/pkg/api"
|
|
)
|
|
|
|
func TestWriteReplaySignatureFixtures(t *testing.T) {
|
|
if os.Getenv("UPDATE_FIXTURES") != "1" {
|
|
t.Skip("set UPDATE_FIXTURES=1 to regenerate signed replay fixtures")
|
|
}
|
|
dir := filepath.Join("..", "..", "examples", "secrets-engine", "replay")
|
|
data, err := os.ReadFile(filepath.Join(dir, "decision_rotate.json"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var envelope api.DecisionEnvelope
|
|
if err := json.Unmarshal(data, &envelope); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_, priv := fixtureKey()
|
|
if err := sign.Sign(&envelope, priv, "testdata-ed25519"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
writeJSON(t, filepath.Join(dir, "decision_rotate_signed.json"), envelope)
|
|
envelope.Effect = api.DecisionEffectDeny
|
|
envelope.Reason = "tampered_after_signing"
|
|
writeJSON(t, filepath.Join(dir, "decision_rotate_signed_tampered.json"), envelope)
|
|
}
|
|
|
|
func writeJSON(t *testing.T, path string, value any) {
|
|
t.Helper()
|
|
data, err := json.MarshalIndent(value, "", " ")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.WriteFile(path, append(data, '\n'), 0o644); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|