aboutsummaryrefslogtreecommitdiffstats
path: root/oae_test.go
diff options
context:
space:
mode:
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")
+ }
+}