A curated collection of cryptographic libraries. For each library, we provide a a brief description of its main features.
Python cryptographic interface built on top of the OpenSSL cryptographic library (written in C). Provides high level recipes for authenticated encryption and X.509 certificate management. Low level (hazmat) primitives provided for general cryptographic operations.
- Developer: Python Cryptographic Authority (PyCA)
- Initial Release: 01/08/2014
- Latest version: 2.2.1 (03/20/2018)
- Languages: Python
- License: Apache 2.0 or BSD-3-Clause
Website - GitHub - PyPi - Documentation
High-level interface for a limited set of cryptographic operations and key management built on top of lower-level libraries. Designed to provide safe and easy access to cryptographic resources. All configuration is done through key generation, which is accomplished through an included command-line tool.
- Developer: Community Project
- Initial Release: 12/28/2011
- Latest version: 0.716 (05/16/2016)
- Languages: Java, Python, C++
- License: Apache 2.0
Website - GitHub - PyPi - Documentation
Python interface built on top of the OpenSSL cryptographic library (written in C). Provides access to a wide range of basic cryptographic operations as well as SSL/TLS, HTTPS, S/MIME, X.509 Certificate management, etc.
- Maintainer: Matěj Cepl
- Initial Release: 06/24/2003
- Latest version: 0.29 (02/23/2018)
- Languages: Python
- License: MIT
Website - GitLab - PyPi - Documentation
Python library of cryptographic algorithms implemented in C. Includes cryptographic algorithms for shared key and public key encryption and authentication, cryptographic hashes, and key derivation. Also provides a secure PRNG, a strong version of Python's random module, and a small set of useful mathematical operations.
- Developer: Dwayne Litzenberger
- Initial Release: 11/11/2002
- Latest version: 2.6.1 (10/14/2013).
- Languages: Python
- License: Public Domain (mostly, see license)
Website - GitHub - PyPi - API documentation - Configuration details
Python library of cryptographic algorithms, partially implemented in C. Began as a fork of PyCrypto. Continued development has added support for authenticated encryption, safe stream ciphers, elliptic curve operations (encryption and signing), SHA3 hash functions, etc.
- Developer: Helder Eijs (Legrandin)
- Initial Release: 6/24/2014
- Latest version: 3.5.1 (03/07/2018)
- Languages: Python
- License: Public Domain, BSD-2-Clause
Website - GitHub - PyPi - Documentation - Configuration details
A Python interface for the libsodium cryptographic library (written in C), a fork of the Networking and Cryptography Library (NaCl). Libsodium (and NaCl) are designed to provide easy access to a carefully selected set of cryptographic algorithms implemented for saftey and efficiency. The pyNaCl interface provides similarly high-level access to those resources from within the Python language.
- Developer: Python Cryptographic Authority (PyCA)
- Initial Release: 04/14/2013
- Latest version: 1.2.1 (12/04/2018)
- Languages: Python
- License: Apache 2.0
Website - GitHub - PyPi - Documentation
A lightweight Python interface for a subset of the OpenSSL cryptographic library (written in C). Does not provide general access to basic cryptographic operations, but instead focuses on the construction of SSL/TLS sessions and the lower-level cryptographic operations required to manage them (public key authentication and X.509 certificate handling).
- Developer: Python Cryptographic Authority (PyCA)
- Initial Release: 07/16/2001
- Latest version: 17.5.0 (11/30/2017)
- Languages: Python
- License: Apache 2.0
Website - GitHub - PyPi - Documentation
A lightweight interface wrapped around the libsodium cryptographic library (written in C), a fork of the Networking and Cryptography library (NaCl). This is practically a repoduction of the lower-level NaCl interface for cryptographic operations slightly adapted for usage in Python.
- Developer: Stefan Marsiske
- Initial Release: 08/25/2013
- Latest version: 0.7.0 (02/02/2018)
- Languages: Python
- License: BSD-2-Clause
- Languages: C, Java