diff options
Diffstat (limited to 'oae_test.go')
| -rw-r--r-- | oae_test.go | 41 |
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") + } +} |
