Simple cryptographic library for hashing and encrypting
Cryptographic library with really simple API.
Includes functions for hashes, symmetric and asymmetric crypto, along with helper functions. Acts as a wrapper for PyCrypto and a few standard libraries.
Documentation is available at http://simplecrypto.readthedocs.org.
The full source code repository is at https://github.com/boppreh/simplecrypto.
pip install simplecrypto
This library depends on PyCrypto. On Linux this is installed automatically by pip. If the dependency installation fail on Windows, you may want to use a prebuilt installer. If you wish to compile it I suggest using the Mingw tools as indicated here.
from simplecrypto import sha1, encrypt, decrypt, RsaKeypair, base64 sha1('The quick brown fox jumps over the lazy dog') # '2fd4e1c67a2d28fced849ee1bb76e7391b93eb12' # `encrypt` and `decrypt` use AES-256. m = encrypt('secret message', 'secret key') print(m) # 'uRKa9xX7zW6QT1yJxIQb5E/0DzaxQglVggnFam5K' decrypt(m, 'secret key') # b'secret message' skey = RsaKeypair(2048) pkey = skey.publickey m = pkey.encrypt('secret message') skey.decrypt(m) # b'secret message' s = skey.sign('authenticated message') pkey.verify('authenticated message', s) # True base64('message') # 'bWVzc2FnZQ=='
- Package tests.
- Add HMAC support.
- Use SHA256 as default RSA hash
- Allow selection of PRNG used for RSA key generation
- Minor changes for better Python2 support
- Add project to Travis and Coverall.
- Increase test coverage to 100%.
- Add installation instructions.
- Rename guess_hash to guess_transformation.
- Add serialize to RSA keys.
- Allow RSA keys to receive PEM encoded keys in the constructor.
- Implement __repr__ method in base Key class (you can now print keys).
- Split package into modules key, formats, hashes, random and exceptions.
- Update project information (keywords, classifiers, description, etc).
- Add send and receive functions for secure message building.
- Raise EncryptionError instead of generic errors.
- Slightly better test coverage.
- Add base Key class.
- Introduce raw versions of encrypt and decrypt.
- Implemented key printing and comparison.
- Return str from to_base64 and allow from_base64 to receive str.
- Create classes for different key types.
- Change return from to_hex to str for consistency with base64.
- guess_hash function moved to different module.
- Automatically use session keys when encrypting large messages.
- Initial release.