Python implementation of RNCryptor
$ pip install rncryptor
import rncryptor
data = '...'
password = '...'
# rncryptor.RNCryptor's methods
cryptor = rncryptor.RNCryptor()
encrypted_data = cryptor.encrypt(data, password)
decrypted_data = cryptor.decrypt(encrypted_data, password)
assert data == decrypted_data
# rncryptor's functions
encrypted_data = rncryptor.encrypt(data, password)
decrypted_data = rncryptor.decrypt(encrypted_data, password)
assert data == decrypted_data
# encrypt_with_keys and decrypt_with keys functions
encryption_salt = '...' # 8 random bytes
encryption_key = rncryptor.make_key(password, encryption_salt)
hmac_key = rncryptor.make_key(password, hmac_salt)
encrypted_data = rncryptor.encrypt_with_keys(data, hmac_key, encryption_key)
decrypted_data = rncryptor.decrypt_with_keys(encrypted_data, hmac_key, encryption_key)
$ tox
$ tox -e py27 # test using only Python2.7
$ tox $(nproc) # run tests using all processes
An actual command can be found in tox.ini, but basically it's a common py.test
with a bunch of plugins.