|
1 | 1 | # Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
|
2 | 2 | # SPDX-License-Identifier: Apache-2.0
|
3 | 3 | """High level AWS Encryption SDK client functions."""
|
| 4 | +import copy |
| 5 | + |
4 | 6 | # Below are imported for ease of use by implementors
|
5 | 7 | from aws_encryption_sdk.caches.local import LocalCryptoMaterialsCache # noqa
|
6 | 8 | from aws_encryption_sdk.caches.null import NullCryptoMaterialsCache # noqa
|
@@ -84,7 +86,10 @@ def encrypt(**kwargs):
|
84 | 86 | with StreamEncryptor(**kwargs) as encryptor:
|
85 | 87 | ciphertext = encryptor.read()
|
86 | 88 |
|
87 |
| - return CryptoResult(result=ciphertext, header=encryptor.header, keyring_trace=encryptor.keyring_trace) |
| 89 | + header_copy = copy.deepcopy(encryptor.header) |
| 90 | + keyring_trace_copy = copy.deepcopy(encryptor.keyring_trace) |
| 91 | + |
| 92 | + return CryptoResult(result=ciphertext, header=header_copy, keyring_trace=keyring_trace_copy) |
88 | 93 |
|
89 | 94 |
|
90 | 95 | def decrypt(**kwargs):
|
@@ -143,7 +148,10 @@ def decrypt(**kwargs):
|
143 | 148 | with StreamDecryptor(**kwargs) as decryptor:
|
144 | 149 | plaintext = decryptor.read()
|
145 | 150 |
|
146 |
| - return CryptoResult(result=plaintext, header=decryptor.header, keyring_trace=decryptor.keyring_trace) |
| 151 | + header_copy = copy.deepcopy(decryptor.header) |
| 152 | + keyring_trace_copy = copy.deepcopy(decryptor.keyring_trace) |
| 153 | + |
| 154 | + return CryptoResult(result=plaintext, header=header_copy, keyring_trace=keyring_trace_copy) |
147 | 155 |
|
148 | 156 |
|
149 | 157 | def stream(**kwargs):
|
|
0 commit comments