Add AES encryption/decryption functions for working on iterables.

Review Request #12371 — Created June 14, 2022 and submitted — Latest diff uploaded

Information

Djblets
release-3.x

Reviewers

This introduces new aes_encrypt_iter() and aes_decrypt_iter()
functions in djblets.secrets.crypto, which can operate on iterables.

aes_encrypt_iter() iterates through an iterable that yields byte or
Unicode strings to encrypt. It then yields the encrypted blocks. It's
smart enough to include the IV in the first block and the finalizer in
the final block.

aes_decrypt_iter() iterates through an iterable of encrypted byte
strings. It yields the decrypted blocks.

These will be used internally for encrypted caching, but can also be
useful for things like streaming data to files or HTTP responses.

Unit tests pass.

Diff Revision 1

This is not the most recent revision of the diff. The latest diff is revision 2. See what's changed.

orig
1
2

Commits

First Last Summary ID Author
Add AES encryption/decryption functions for working on iterables.
This introduces new `aes_encrypt_iter()` and `aes_decrypt_iter()` functions in `djblets.secrets.crypto`, which can operate on iterables. `aes_encrypt_iter()` iterates through an iterable that yields byte or Unicode strings to encrypt. It then yields the encrypted blocks. It's smart enough to include the IV in the first block and the finalizer in the final block. `aes_decrypt_iter()` iterates through an iterable of encrypted byte strings. It yields the decrypted blocks. These will be used internally for encrypted caching, but can also be useful for things like streaming data to files or HTTP responses.
5d854195c022685ef24e121bd0c3d075c061ff98 Christian Hammond
djblets/secrets/crypto.py
djblets/secrets/tests/test_crypto_utils.py
Loading...