35 lines
718 B
Go
35 lines
718 B
Go
package cryptox
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestEncryptDecryptRoundtrip(t *testing.T) {
|
|
secret := "test-secret-key"
|
|
plain := []byte(`{"user_id":1,"action":"login"}`)
|
|
dataB64, nonce, err := Encrypt(plain, secret)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
got, err := Decrypt(dataB64, secret, nonce)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if string(got) != string(plain) {
|
|
t.Fatalf("roundtrip mismatch: got %s", got)
|
|
}
|
|
}
|
|
|
|
func TestDecryptWrongNonce(t *testing.T) {
|
|
secret := "test-secret-key"
|
|
plain := []byte(`{"foo":"bar"}`)
|
|
dataB64, _, err := Encrypt(plain, secret)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_, err = Decrypt(dataB64, secret, "wrongnonce")
|
|
if err == nil {
|
|
t.Fatal("expected error with wrong nonce")
|
|
}
|
|
}
|