diff options
| author | Levi Durfee <levi.durfee@gmail.com> | 2026-01-08 17:08:37 -0500 |
|---|---|---|
| committer | Levi Durfee <levi.durfee@gmail.com> | 2026-01-08 17:08:43 -0500 |
| commit | 6bf86ba37918b918cd8bf432757c00f69d35b85f (patch) | |
| tree | b99da08faf709ab8a5ded0fa8739e7314f65850a | |
| parent | 8212976ed43fd4f4d913f848b173e5be71fac19a (diff) | |
Add more tests
| -rw-r--r-- | internal/goaes_test.go | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/internal/goaes_test.go b/internal/goaes_test.go index b07ee68..d285398 100644 --- a/internal/goaes_test.go +++ b/internal/goaes_test.go @@ -119,3 +119,79 @@ func TestWrapDEK(t *testing.T) { t.Errorf("edek too small, edek: %v len: %d", edek, len(edek)) } } + +func TestUnwrapDEK(t *testing.T) { + kek, err := internal.NewKEKFromEnvB64( + validPassphrase, + []byte("salt"), + ) + if err != nil { + t.Fatalf("failed to create kek. error %v", err) + } + + dek, err := internal.NewDEK() + if err != nil { + t.Fatalf("failed to create dek. error %v", err) + } + + edek, err := internal.WrapDEK(dek, kek) + if err != nil { + t.Fatalf("failed to create edek. error %v", err) + } + + if bytes.Equal(dek, edek) { + t.Error("dek should not be the same as edek") + } + + if len(edek) < minWrappedDEKSize { + t.Errorf("edek too small, edek: %v len: %d", edek, len(edek)) + } + + unwrapped, err := internal.UnwrapDEK(edek, kek) + if err != nil { + t.Fatalf("failed to create edek. error %v", err) + } + + if !bytes.Equal(dek, unwrapped) { + t.Errorf("unwrapped key doesn't match, %v %v", edek, unwrapped) + } +} + +func TestEncryptData(t *testing.T) { + input := []byte("hello") + dek, err := internal.NewDEK() + if err != nil { + t.Fatalf("failed to create dek. error %v", err) + } + + ct, err := internal.EncryptData(input, dek) + if err != nil { + t.Fatalf("failed to encrypt. error %v", err) + } + + if bytes.Equal(input, ct) { + t.Error("input wasn't encrypted") + } +} + +func TestDecryptData(t *testing.T) { + input := []byte("hello") + dek, err := internal.NewDEK() + if err != nil { + t.Fatalf("failed to create dek. error %v", err) + } + + ct, err := internal.EncryptData(input, dek) + if err != nil { + t.Fatalf("failed to encrypt. error %v", err) + } + + pt, err := internal.DecryptData(ct, dek) + if err != nil { + t.Fatalf("failed to decrypt. error %v", err) + } + + if !bytes.Equal(input, pt) { + t.Error("decrypted doesn't match input") + } +} |
