Something went wrong. Try again.
An ATProto Powered Reputation Network
Something went wrong. Try again.
1.2 kB · 47 lines
Go
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package secure
import ( "context" "encoding/base64" "path/filepath" "testing" "time"
"provenance/internal/storage")
func TestVault(t *testing.T) { store, err := storage.Open(filepath.Join(t.TempDir(), "secrets.db")) if err != nil { t.Fatal(err) } defer store.Close() vault, err := New(store, base64.StdEncoding.EncodeToString(make([]byte, KeyBytes))) if err != nil { t.Fatal(err) } ctx := context.Background() if err := vault.Put(ctx, "kind", "id", []byte("private-token"), time.Now().Add(time.Hour)); err != nil { t.Fatal(err) } sealed, err := store.Get(ctx, "kind", "id") if err != nil { t.Fatal(err) } if string(sealed) == "private-token" { t.Fatal("stored plaintext") } if err := store.Put(ctx, "kind", "other", sealed, time.Now().Add(time.Hour)); err != nil { t.Fatal(err) } if _, err := vault.Get(ctx, "kind", "other"); err == nil { t.Fatal("accepted relocated ciphertext") } sealed[len(sealed)-1] ^= 1 if err := store.Put(ctx, "kind", "id", sealed, time.Now().Add(time.Hour)); err != nil { t.Fatal(err) } if _, err := vault.Get(ctx, "kind", "id"); err == nil { t.Fatal("accepted modified ciphertext") }}