Add djblets.secrets, for AES crypto helpers and token generation.

Review Request #12369 — Created June 13, 2022 and submitted — Latest diff uploaded

Information

Djblets
release-3.x

Reviewers

This introduces a new djblets.secrets module, which will be the home
of any future crypto/secrets-related work going forward.

This currently contains djblets.secrets.crypto, a collection of AES
encryption/decryption utilities that wrap the cryptography module.
This is a near-straight port of reviewboard.scmtools.crypto_utils,
with the exception that encrypt_password() has been renamed to
aes_encrypt_base64() and decrypt_password() has been renamed to
aes_decrypt_base64(). This is to help make it clear what form of
encryption and results are expected, and to allow room for other similar
utilities in the future.

cryptography is now a hard dependency of Djblets, rather than a soft
dependency, as Djblets-shipped code will be making use of this module in
the future.

Unit tests pass.

Commits

Files