Move from PyCrypto to the newer, maintained cryptography package.
Review Request #8813 — Created March 12, 2017 and submitted
PyCrypto's been unmaintained for a while, which in theory opens the door
to security issues. In practice, this doesn't truly affect us, as we
only use the AES encryption/decryption, which doesn't appear to have had
any security problems. However, from a user standpoint, it's easier to
install the new cryptography module and harder to install PyCrypto, and
it's better to have more modern options.This change moves us over from PyCrypto fully to cryptography, updating
dependencies accordingly. This is fully backwards-compatible, meaning
that existing installs with encrypted content from PyCrypto will
continue to work with cryptography, and vice-versa if downgrading.Documentation for the functions have also been added, helping to
clarify the types of encryption used.Unit tests were added to ensure these operations continue to work and
that backwards-compatibility does not break.
Tested that all credentials on my development server made from PyCrypto
were properly loaded, and new credentials could be saved and then loaded
again.Unit tests pass.