diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2025-10-23 21:02:22 -0700 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2025-10-23 21:02:22 -0700 |
| commit | 3c2c07a69daf75d377ba196c28524c0fc6a16db6 (patch) | |
| tree | 83a1c9ea49bc8c0927f8de2ed9f3b933f29759f0 /oae_test.go | |
| parent | Get rid of the base64 encoding (diff) | |
| download | sym-3c2c07a69daf75d377ba196c28524c0fc6a16db6.tar.zst | |
Move sym files into the root directory
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") + } +} |
