PyCryptodome is a self-contained Python package of low-level cryptographic primitives. It supports Python 2.6 or newer, all Python 3 versions and PyPy. PyCryptodome is a fork of PyCrypto. PyCryptodome is not a wrapper to a separate C library like OpenSSL. To the largest possible extent, algorithms are implemented in pure Python. Only the pieces that are extremely critical to performance (e.g. block ciphers) are implemented as C extensions.