aboutsummaryrefslogtreecommitdiffstats
path: root/oae_test.go
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2025-10-23 21:02:22 -0700
committerRose Hogenson <rosehogenson@posteo.net>2025-10-23 21:02:22 -0700
commit3c2c07a69daf75d377ba196c28524c0fc6a16db6 (patch)
tree83a1c9ea49bc8c0927f8de2ed9f3b933f29759f0 /oae_test.go
parentGet rid of the base64 encoding (diff)
downloadsym-3c2c07a69daf75d377ba196c28524c0fc6a16db6.tar.zst
Move sym files into the root directory
Diffstat (limited to 'oae_test.go')
-rw-r--r--oae_test.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/oae_test.go b/oae_test.go
new file mode 100644
index 0000000..16f9f96
--- /dev/null
+++ b/oae_test.go
@@ -0,0 +1,41 @@
+package sym
+
+import (
+ "bytes"
+ "io"
+ "strings"
+ "testing"
+)
+
+var testEncryptionMetadata = encryptionMetadata{
+ EncryptionType: encryptionAlgAES256_GCM,
+ SegmentSize: 18,
+}
+
+var testHashMetadata = hashMetadata{
+ PasswordHashType: pwHashPBKDF2_HMAC_SHA256,
+ Iterations: 10,
+ SaltSize: defaultSaltSize,
+}
+
+func TestOAEReadWrite(t *testing.T) {
+ t.Parallel()
+
+ const password = "asdf"
+ input := strings.Repeat("test input", 1024)
+ out := new(bytes.Buffer)
+ writer := testEncryptionMetadata.newEncryptingWriter(out, password, &testHashMetadata)
+ if _, err := io.WriteString(writer, input); err != nil {
+ t.Fatalf("Failed to write: %s", err)
+ }
+ if err := writer.Close(); err != nil {
+ t.Fatalf("writer.Close() failed: %s", err)
+ }
+ got, err := io.ReadAll(testEncryptionMetadata.newDecryptingReader(bytes.NewReader(out.Bytes()), password, &testHashMetadata))
+ if err != nil {
+ t.Fatalf("Failed to decrypt: %s", err)
+ }
+ if string(got) != input {
+ t.Errorf("Input failed to round-trip")
+ }
+}