Pure Python read/write encryption/decryption of encrypted OpenSSL 1.1.1 files
Project description
openssl_enc_compat
Pure Python 2.7 and 3.x library that is compatible with OpenSSL 1.1.1+ encryption and decryption. https://github.com/clach04/openssl_enc_compat
This is intended to be used a library, rather than as a command line tool. Can encrypt/decrypt raw binary and base64 encoded content. Only supports aes-256-cbc with salt using pbkdf2. pbkdf2 iterations defaults to 10,000 to match OpenSSL default but can be specified.
Also checkout:
- https://github.com/The-Crocop/pyaes256 - lots of dependencies with a nice API but limited to utf-8 data
- https://github.com/EbryxLabs/opencrypt - Python 3 only with a filename only API (and command line tools)
- https://github.com/Madhava-mng/openssltool - Python 3 only wapper around openssl command line tool
Sample
from openssl_enc_compat.cipher import OpenSslEncDecCompat
# echo hello| openssl enc -e aes-256-cbc -salt -pbkdf2 -iter 10000 -in - -base64 -out - -pass pass:password
openssl_crypted_base64_text = 'U2FsdGVkX18NXhFhTlAyvM2jXPu+hhsT344TvO0yLYk=' # base64
openssl_crypted_base64_text = b'Salted__\r^\x11aNP2\xbc\xcd\xa3\\\xfb\xbe\x86\x1b\x13\xdf\x8e\x13\xbc\xed2-\x89' # raw binary
password = b'password'
print('openssl_crypted_base64_text: %r' % openssl_crypted_base64_text)
print('password: %r' % password)
cipher = OpenSslEncDecCompat(password) # guess/default
plaintext = cipher.decrypt(openssl_crypted_base64_text) # guesses if base64 encoded or note
print('plaintext: %r' % plaintext)
Quick demo:
python -m openssl_enc_compat.cipher
Run tests
python -m openssl_enc_compat.tests.testsuite -v
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file openssl_enc_compat-0.0.3.tar.gz
.
File metadata
- Download URL: openssl_enc_compat-0.0.3.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 172001cf981fda217646f9bcca8968f8b906324cf15caf172ba791242a96b38c |
|
MD5 | 9acc1a78b7c3f6a61a1623268242706d |
|
BLAKE2b-256 | 3773faebe6253f6bddb20aa78657587224c61cacbb8c7f3b6ed76346b3a6c682 |