Skip to content

RNCryptor/RNCryptor-python

Repository files navigation

RNCryptor-python

Actual PyPI version CI status

Python implementation of RNCryptor

Installation

$ pip install rncryptor

Usage

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)

Testing

$ 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.