Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.6 and 2.7, Python 3.4 and newer, 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, P-384 and P-521 curves 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.9.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7be60dc2126ee350ac7191549f5ab05c2dd76a5d5a3022249f395a401c6ea37 |
|
MD5 | 57fb135f02a91850dd3034d7b3ee3d3a |
|
BLAKE2b-256 | 436141dfdccaf42732ce1a6aef4a69fba916d6eb0ae189ce5a2a67888cee3ffb |
Hashes for pycryptodome-3.9.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a7a9a4a7f8f0990fa97fee71c7f7e0c412925c515cfc6d4996961e92c9be8e5 |
|
MD5 | d76e2a4acb8452aef85c19cca13a12a8 |
|
BLAKE2b-256 | 5ccd142130177b525c570229df0e2b3bd3cd2365b041dfee4685444d9bd477b1 |
Hashes for pycryptodome-3.9.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1a4f3f651471b9bf60b0d98fa8a994b8a73ff8ab4edc691e23243c853aaff9f |
|
MD5 | acc7a8585942e4974173a3c70dcf86ca |
|
BLAKE2b-256 | 91d7b8c757780f8df4638d8905fd2e6d75846b739061ad31d7763e6ec6f84cba |
Hashes for pycryptodome-3.9.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ff619b8e4050799ca5ca0ffdf8eb0dbccba6997997866755f37e6aa7dde23fe |
|
MD5 | 6191083650a91fc5a7d8087a2cfe1fb7 |
|
BLAKE2b-256 | 713caeda705ceb4244d8e009535f2cfe4600390d4cfe64bc48f6b03775a41741 |
Hashes for pycryptodome-3.9.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5452b534fecf8bf57cf9106d00877f5f4ab7264e7a5e1f5ea8d15b04517d1255 |
|
MD5 | 8faa67060dd46522e2547a79e1199fa2 |
|
BLAKE2b-256 | da982c6a648d9ded482bfbffa12b600d629e9006aa4d50a003d30805068a3ace |
Hashes for pycryptodome-3.9.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f8e6851c0a45429f9b86c1597d3b831b0cff140b3e170a891fce55ef8dac2bb |
|
MD5 | 37f4cd8ef77628ac0218f724680153a2 |
|
BLAKE2b-256 | b9fd6c890fa483d4aec1f214bd4b201cb87857dc57c5ed69c9236a838b2a726a |
Hashes for pycryptodome-3.9.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2d78644655629c7d1b9bf28e479d29facc0949d9ff095103ca9c2314b329ee0 |
|
MD5 | 2852d7461fd16946464d5d758009f1da |
|
BLAKE2b-256 | 4457da3aee6f8637c23c6fe43308f8107b46af6f6853b5aec960c9ca6748757a |
Hashes for pycryptodome-3.9.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6840c9881e528224ebf72b3f73b3d11baf399e265106c9f4d9bae4f09615a93a |
|
MD5 | 6e3acb9babe50973b9d1b4cdd7a02248 |
|
BLAKE2b-256 | c1f10ba99559391621280ce24adea245d31bf2eb2f20ac72270eead1813e8d2b |
Hashes for pycryptodome-3.9.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 600bf9dd5fbed0feee83950e2a8baacaa1f38b56c237fff270d31e47f8da9e52 |
|
MD5 | ccf726f56522f64eb8c3c5c11a5487cf |
|
BLAKE2b-256 | a060824886f507ef411ea9d44ba6587eaa5fd815ce94ab532acdec21d1c01248 |
Hashes for pycryptodome-3.9.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33c07e1e36ec84524b49f99f11804d5e4d2188c643e84d914cb1e0a277ed3c79 |
|
MD5 | b1a573fe72c5769ed55839464adb405d |
|
BLAKE2b-256 | bd1174977c7d7a5a602b6fc705bee85ad4be7179a99a32bc9432f9395da8b5ab |
Hashes for pycryptodome-3.9.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f02382dc1bf91fb7123f2a3851fb1b526c871fa9359f387f2bcc847efc74ae52 |
|
MD5 | a68b49c217792e503819b05d8398888f |
|
BLAKE2b-256 | e6d1118ae2a7dcc46df6a592d9697a9e5d360b6089402f2056c0c181d1454322 |
Hashes for pycryptodome-3.9.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 233a04bb7bdd4b07e14d61d5166150942d872802daa4f049d49a453fe0659e94 |
|
MD5 | 98c814cfd5be57c1580c5ad003ad9e23 |
|
BLAKE2b-256 | 69034a723c3c22ce8c2f27e5ce82dd32f0525b3cf41085c0fc12338df35a7d4d |
Hashes for pycryptodome-3.9.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a35a5c588248ba00eb976a8554211e584a55de286783bc69b12bdd7954052b4a |
|
MD5 | 560870f8abaa7aca40539d595841b05f |
|
BLAKE2b-256 | 872c4f9ca850571cb7b9993c7f1ef987db722184a09c0e8ce47b8b91a303afca |
Hashes for pycryptodome-3.9.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18f376698e3ddcb1d3b312512ca78c9eed132e68ac6d0bf2e72452dfe213e96f |
|
MD5 | 84049466070fd41892014b0a757425ac |
|
BLAKE2b-256 | 50ee7e11144c73df6bc6d48a38ad3046ba001865610d6001073c65dfa473cc15 |
Hashes for pycryptodome-3.9.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 023c294367d7189ae224fb61bc8d49a2347704087c1c78dbd5ab114dd5b97761 |
|
MD5 | 915f2d8dc9d4f9d82db0f7151d5470da |
|
BLAKE2b-256 | 06c428dc5b3f4313914f3412b37863de96914428ba1f55023f05ddeae71976f3 |
Hashes for pycryptodome-3.9.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3701822a085dbebf678bfbdfbd6ebd92ffa80d5a544c9979984bf16a67c9790b |
|
MD5 | 7cb8d95fa462d49f681298dd7ac6097f |
|
BLAKE2b-256 | 2a3b48f2d08e70605c3010cd23eaba750c547889bfbb603dff729a625bab9c2c |
Hashes for pycryptodome-3.9.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52d20b22c5b1fc952b4c686b99a6c55c3b0b0a673bec30570f156a72198f66ff |
|
MD5 | 5a520863249d47c6ea67817e66c5b69c |
|
BLAKE2b-256 | 35067c193e8f2f3e1b1361f09dcb4118da4448abe79f5101275398086a78b4b3 |
Hashes for pycryptodome-3.9.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f29e1238ad3b6b6e2acd7ea1d8e8b382978a56503f2c48b67d5dc144d143cb0 |
|
MD5 | 1ee09642029c6411e13f53697563395b |
|
BLAKE2b-256 | 6505a8e8be9e2aae210a135197dbfe36fcb7ce86f10b885f608fb523d93467f9 |
Hashes for pycryptodome-3.9.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d2135c941d38f241e0e62dbdfc1ca5d9240527e61316126797f50b6f3e49825 |
|
MD5 | 0cf57c6ec6f6fe762cad7107ca5d9c27 |
|
BLAKE2b-256 | 93658942606c6c7c1172a049aa93dffb8c8687ca54d193130eba463c507bef30 |
Hashes for pycryptodome-3.9.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f6cdddf1fe72e7f173e9734aa19b94cbd046b61a8559d650ff222e36021d5c1 |
|
MD5 | cb07ca9c9ad3d78e260ce4081f91d94f |
|
BLAKE2b-256 | d3941b6974fa0acfbc9b432124ad8863865d07bff5eca7713819be0bfb41f863 |
Hashes for pycryptodome-3.9.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0962aea03933b99cf391c3e10dfef32f77915d5553464264cfbc6711f31d254 |
|
MD5 | 0436d28f82b86690eca060a5fb957f92 |
|
BLAKE2b-256 | c14547a2f5373ff04868e579a558d91d4405e8c4bc2b632da97cdcbda783936d |
Hashes for pycryptodome-3.9.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1de815b847982f909dc2e5e2ca641b85cde80d95cc7e6a359c03d4b42cd21568 |
|
MD5 | a9bd6907d26b2c8cdd6a4549a99add73 |
|
BLAKE2b-256 | 5b678a1c9c9c620bed333641ced0a6e8ce30604c9362f982efe0ede2419cef91 |
Hashes for pycryptodome-3.9.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c419943306756ddd1a1997120bb073733bc223365909c68185106d5521cbc0ef |
|
MD5 | 19fddd7af00576ae30d15a42025415bf |
|
BLAKE2b-256 | 4be31829c5be39d54c3d249ce7e30936b4aca33f1bb6b87b88f3f3490227d9b3 |
Hashes for pycryptodome-3.9.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c453ad968b67d66448543420ec39770c30bd16d986058255f058ab87c4f6cc1f |
|
MD5 | fd784e6ec3b9aac681a4eca0ce42891e |
|
BLAKE2b-256 | e12302d7f178908e3f4f19f4270771860cd21dee8426efe290c575ec49f674d4 |
Hashes for pycryptodome-3.9.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7252498b427c421e306473ed344e58235eedd95c15fec2e1b33d333aefa1ea10 |
|
MD5 | f3bc121d4f1b1aac59f309457ee6e99a |
|
BLAKE2b-256 | 9cf2a75a26f4de308a339ca96324918bb524113f49290d46cd159bb061c85326 |
Hashes for pycryptodome-3.9.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a117047a220b3911d425affcd1cbc97a1af7ea7eb5d985d9964d42b4f0558489 |
|
MD5 | 025ad6f7a669595cb517e9ed5ff8f290 |
|
BLAKE2b-256 | 2ed0f13513adf0d8cbbfb21d6209d596e17531a205c3bf86726fc6a70a8eaf85 |
Hashes for pycryptodome-3.9.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71b041d43fe13004abc36ca720ac64ea489ee8a3407a25116481d0faf9d62494 |
|
MD5 | 118f64baacfc8e32f282ca1e761eb074 |
|
BLAKE2b-256 | 0176dd9c686522f175e9333621a1ec201df81b8f820d86f2153e5ac4e4935467 |