Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.4 or newer, all Python 3 versions and PyPy.
You can install it with:
pip install pycryptodome
All modules are installed under the Crypto package.
Check the pycryptodomex project for the equivalent library that works under the Cryptodome package.
PyCryptodome is a fork of PyCrypto. It brings several enhancements with respect to the last official version of PyCrypto (2.6.1), for instance:
Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
Accelerated AES on Intel platforms via AES-NI
First class support for PyPy
Elliptic curves cryptography (NIST P-256 curve only)
Better and more compact API (nonce and iv attributes for ciphers, automatic generation of random nonces and IVs, simplified CTR cipher mode, and more)
SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms
Salsa20 and ChaCha20 stream ciphers
scrypt and HKDF
Deterministic (EC)DSA
Password-protected PKCS#8 key containers
Shamir’s Secret Sharing scheme
Random numbers get sourced directly from the OS (and not from a CSPRNG in userspace)
Simplified install process, including better support for Windows
Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
Major clean ups and simplification of the code base
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.
For more information, see the homepage.
All the code can be downloaded from GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pycryptodome-3.6.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 052c53809b04417de9a444e40d45b8b22806a39862460174c205a5d52acb2dd0 |
|
MD5 | f3a9aba59c46529602b44f7521231bff |
|
BLAKE2b-256 | 1e6fef658f4a144500202327a3627f4d19782201f0e20370abdf109b8d69832b |
Hashes for pycryptodome-3.6.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9cf995f1c4a1017829e54bed27105f61c14ccbe8d5d46b339d7f8d0a6bca7e2 |
|
MD5 | 5b9e430e0f5b72cf1e65d3b45331c3cf |
|
BLAKE2b-256 | d436f1ee2186188284091dce81dc64941d455f004c99c7617b14a4cc6e0f323f |
Hashes for pycryptodome-3.6.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0160c6de1af0434dae0b06a94d708a91468e18003ed2ec21194d8be496df8c2 |
|
MD5 | 900632aca3bb8719bc3312aec9dbccc8 |
|
BLAKE2b-256 | 95249ec13408356c5ed75a48b9c14aad82b770947f9fcf4a6cbddbd50df06d55 |
Hashes for pycryptodome-3.6.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e40639b3b414eb592ee96d773a950a33e0aae32f705fa30cbca6a6bc0ededec |
|
MD5 | 5183bfa16c22795527f940ee1630d5f5 |
|
BLAKE2b-256 | 03553c01a8a8ffb01669c5cbb7390e0676d71c8794850c7b08a9b6ed04c5aa9c |
Hashes for pycryptodome-3.6.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da21737decc83d3523873b70add82afe4b0403809ff489a27acbfac652772562 |
|
MD5 | 79800a82787df2dc9745e213b0c51b43 |
|
BLAKE2b-256 | 99412921144a833de61a5e096ee9ad4c15d15e40f8e7996961d223a9f8bf2298 |
Hashes for pycryptodome-3.6.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b5d1ea8a88898af2c92ff2c113206f8fec04209f0461cc831d6f38d859d5e21 |
|
MD5 | cc97b3b3ca4836bd72db57115ce0109c |
|
BLAKE2b-256 | 7fd70da9c0ca083cba1253a7e459822e9b6d96e1be7e985ec66e3c23a802d417 |
Hashes for pycryptodome-3.6.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12f77043303fd538ae78781bd1bad5db2483b86867a7833b78ae96f7c3d1d0de |
|
MD5 | a1e36499c9d317ee611f19ee74684b0b |
|
BLAKE2b-256 | cae9acf94c1de48ca101fef9061204669c20f51934874f22a6da95f1a7c34e58 |
Hashes for pycryptodome-3.6.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c90b59e61395467384b3ced7bc1f42951ca68a9684152ea3c7d9d75467ecbdd3 |
|
MD5 | fc2c629303acd7287ac26e8748283f6d |
|
BLAKE2b-256 | 0ce1f0650ba78a913b8d1271cf24d4e0e47e1a7e32cccdaa1dfccdfa18c226e7 |
Hashes for pycryptodome-3.6.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c95723af7fe6875805e43347a445d7bcd67ce0d51a87dfb848b02fd67a8ffc00 |
|
MD5 | 71aa916749cba6e678e8e55c495f7990 |
|
BLAKE2b-256 | d0f09f4fa0e786891eee6d2ffb0d19313a4a81db98b6ef2be4a33c48eba2e6b9 |
Hashes for pycryptodome-3.6.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 018d4d2adbd807d3336f49872aa9f019dedfeae54d4787400e091f85254fda0a |
|
MD5 | d63e92f07aa074f8f73b496c9d10fba9 |
|
BLAKE2b-256 | 905a18dfa00eb8a6d10e95e3f5aef34f80c97cc0f8b70e07f191e2e1eebd8e6f |
Hashes for pycryptodome-3.6.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41293e0ec848757505493cc476685d73f498ab08042ec1f97c33d59831f370b8 |
|
MD5 | 0fea4a3e3d4e3d15f48adcec20001c82 |
|
BLAKE2b-256 | e7438d66f1d03f26904954965df08d88258ec00cace2218779db227f66143e79 |
Hashes for pycryptodome-3.6.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c430bcac1e6d460615d389375608d03e930f0ef9957733bc07d40e4f0219e199 |
|
MD5 | a0b126dd8fe04c097cedb2a861f643c2 |
|
BLAKE2b-256 | 2d0421ba13b8652961a3a1b5e6ca5457da5294543a3e1cb2fac6525af65b5c5b |
Hashes for pycryptodome-3.6.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f12d7b50faebb269c2f5e5fe9e5c7b1c2d8b98e0f75ce28fc3dbf26bd1f11cf7 |
|
MD5 | bd6fc2cb89363c9dd04c3d7034247596 |
|
BLAKE2b-256 | 119ecf088e496786024eb8cbe2334f27765cee363f6068e02f0986948dc96504 |
Hashes for pycryptodome-3.6.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb2f9275399e8f890099ccc7920158e7bd5315375fa18eec0d8d3ce36b14ed69 |
|
MD5 | 04a026ddc235f1ab98713a8eb594081f |
|
BLAKE2b-256 | 54b7f1bfc0b22a12c9f6c3ec022f795784b38642e574bc212a59182248d0c62f |
Hashes for pycryptodome-3.6.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 412a6d0ee0bafe7d221f6988e7de845518d98f84e69871e8a9df15c1424e2800 |
|
MD5 | a39e150c41d07f23b28a1d844dd3d31c |
|
BLAKE2b-256 | 1774a9388205ec480284c853c0217bd5f4b9ee35321554a645efb604577a95c0 |
Hashes for pycryptodome-3.6.0-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a024ac99ce8dec9d78ce82cffb5bc91f09bfa5690c93acb8c94383911a0fb71a |
|
MD5 | 180a58ac95cd602675f3e59ac325d476 |
|
BLAKE2b-256 | e77916327c4e0265df603664d19641c38df3c4c95f16b85e60fdc61e694f67b0 |
Hashes for pycryptodome-3.6.0-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd53f5bfc3f0660cb4ece3577bf6a4866bf331209b5e018473802c0bb84e0ab1 |
|
MD5 | 6f5cac46c3623e0fab667684e86d0368 |
|
BLAKE2b-256 | f70bafe4f7a338e9b22fb73e73c9ac193c11440b54cd28e2cb29661aa5eaea8a |
Hashes for pycryptodome-3.6.0-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37dfac96a70d4b6f61da218f3322a77730f767af874ac06da06a2a52d36b174a |
|
MD5 | a6bb5483b208fbea867eba466cc5cae8 |
|
BLAKE2b-256 | 19414570b5338ed206ea3cb8112cf6dedab738763d0490037357114fbdcd49fb |
Hashes for pycryptodome-3.6.0-cp33-cp33m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f87f2e4e8320011a5c2d80dd2833c7e24969e3e06a069123e3c73cc1c9ac3fe2 |
|
MD5 | 591afe45f1c93f1bdbcef869d3490464 |
|
BLAKE2b-256 | 73f92daa9dce454f0c9c5434894261dba5ab426089b5116f5749d0abb930c6e8 |
Hashes for pycryptodome-3.6.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74c32a359cc1a9bfeb46e2ba6ffb35038c72eecb6622743ca7ae919a530e5a5d |
|
MD5 | 3c3341a04078ff09513f1ebf301fa09c |
|
BLAKE2b-256 | 2e041e337b2c28c6e9d9f7d82234e9707d37939448d8c5166031499e00e8176d |
Hashes for pycryptodome-3.6.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67027449ee1b2abf873639b61a7f373c99a3f03c3b795bca858b57e114ec379a |
|
MD5 | feaf88294f695ea30e81b5d056946263 |
|
BLAKE2b-256 | 994492da447d44f3234a2aaa7ec6cf70fee72c610c8e34d57360b2d7c4d48061 |
Hashes for pycryptodome-3.6.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06845706ef2b3f29825dac74692bf3378e7947a170effd2073f8f940d222aa50 |
|
MD5 | 8d2d0d7d96a93e2976cf48ef65a9f830 |
|
BLAKE2b-256 | 4b84d17fb3abea7e4ac9233ff8f44d6069dc7d7fe88af1d0a1fd8241aa191911 |
Hashes for pycryptodome-3.6.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32fe94b940cba54a0dd6e0f7b758b07334b9c02970748a7704f43d6d3e2b6525 |
|
MD5 | 2b8372f56bb4d4a507ddc35845dfbd7b |
|
BLAKE2b-256 | 957420469442877d0a5c0bf24673cdeea6957253cfdfd064528979f1b64ab4d8 |
Hashes for pycryptodome-3.6.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd0bdefde4c11c10db2b1b5f7296cf6570b2c283be6f88c3d6fa2b24847b9e9d |
|
MD5 | ebbe0941760e9c74db423fe29df6ed86 |
|
BLAKE2b-256 | 3d492a50fa3d97cba8f2b258d3f3fc254d5806590b149683fbcbf6f33ce97e37 |
Hashes for pycryptodome-3.6.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c340a9f2a77f98e43235e745e679ab361487a7df7b27087d4b2ab491563b0576 |
|
MD5 | 6962d3fd35fe9b7e523b9289b0614f45 |
|
BLAKE2b-256 | 86668241b37d03db7b16c7272779ad50ffd4622c4a2018e1b2cfde2fa83855f7 |
Hashes for pycryptodome-3.6.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f8907222af96df5b17c1342d460bc508dda6a403162b1126ae649c2dd7df218 |
|
MD5 | d000a86a5cae59eb4bbc100eafe7f894 |
|
BLAKE2b-256 | 7629d16a3e7e433819b64c4d7c3b817ca6c13480b27211a334a144553830ce3a |