This adds support for the AES128-CTR-SHA256 format. It also fixes a handful of bugs (each in a separate commit), and makes a couple of other changes which may or may not be a good idea:
PyCrypto can be difficult to install, and hasn't been under active development since 2013. pyca/cryptography is easy to install on a bunch of platforms (including various Linux distros, Windows, and MacOS), has been under active development since 2013, and is maintained by some of the same folk who maintain pynacl and pyopenssl.
Don't overwrite already-existing files when decrypting or encrypting.
This one's just a matter of preference....
If you'd rather I remove any of the commits from the PR, or make any other changes, let me know!
I tested this with circa-2016 versions in the hopes that it keeps decent backwards-compatibility (Python 3.5 and cryptography v1.2.3), and very briefly with Python 3.8 and the latest cryptography (v3.2.1), but haven't done a much testing beyond that.
This adds support for the AES128-CTR-SHA256 format. It also fixes a handful of bugs (each in a separate commit), and makes a couple of other changes which may or may not be a good idea:
Switch from PyCrypto to pyca/cryptography
PyCrypto can be difficult to install, and hasn't been under active development since 2013. pyca/cryptography is easy to install on a bunch of platforms (including various Linux distros, Windows, and MacOS), has been under active development since 2013, and is maintained by some of the same folk who maintain pynacl and pyopenssl.
Don't overwrite already-existing files when decrypting or encrypting.
This one's just a matter of preference....
If you'd rather I remove any of the commits from the PR, or make any other changes, let me know!
I tested this with circa-2016 versions in the hopes that it keeps decent backwards-compatibility (Python 3.5 and cryptography v1.2.3), and very briefly with Python 3.8 and the latest cryptography (v3.2.1), but haven't done a much testing beyond that.
closes #7, closes #8, closes #14, closes #15