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 pycryptodomex
All modules are installed under the Cryptodome package.
Check the pycryptodome project for the equivalent library that works under the Crypto 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 pycryptodomex-3.9.8-cp39-cp39-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5bd6891380e0fb5467251daf22525644fdf6afd9ae8bc2fe065c78ea1882e0d |
|
MD5 | c0ee8fb494e0d1b0e40c1cd30cd81b82 |
|
BLAKE2b-256 | 479bfb9a8b8cfe88a6546233e02fd1ec6f698de7120769177f588674b5662f19 |
Hashes for pycryptodomex-3.9.8-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e070a1f91202ed34c396be5ea842b886f6fa2b90d2db437dc9fb35a26c80c060 |
|
MD5 | 0b975ec86fec44414ba888627d2245ef |
|
BLAKE2b-256 | d61e33baebc3e875a71ccf12d33435ef13b9cb02fc925557ae21a810321930c1 |
Hashes for pycryptodomex-3.9.8-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35b9c9177a9fe7288b19dd41554c9c8ca1063deb426dd5a02e7e2a7416b6bd11 |
|
MD5 | a45babe1fe7ddddfb09899322687d1c2 |
|
BLAKE2b-256 | ea689ef6d3cc516d13d58b86648f86630008c6b6c12d81bdf2193fe405d7e297 |
Hashes for pycryptodomex-3.9.8-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 914fbb18e29c54585e6aa39d300385f90d0fa3b3cc02ed829b08f95c1acf60c2 |
|
MD5 | b362c222d2ae7d32c753a80cf3185034 |
|
BLAKE2b-256 | 6320ee41b6fd4a2a771509a2ca8f7b50528268eb6b6511298ff7adef74f000b8 |
Hashes for pycryptodomex-3.9.8-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc2bed32c7b138f1331794e454a953360c8cedf3ee62ae31f063822da6007489 |
|
MD5 | e67b5b6eebacccba975d9864931e8b74 |
|
BLAKE2b-256 | 536c246b3fd9c3e8a0078b116eea44255823e560fbc1ba4b00321e17bce15ef7 |
Hashes for pycryptodomex-3.9.8-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85c108b42e47d4073344ff61d4e019f1d95bb7725ca0fe87d0a2deb237c10e49 |
|
MD5 | 46163010767271c5d15fb8086dd7d93a |
|
BLAKE2b-256 | 91f6492330d468b7b798786c6cb649b2536476a1c6fc4dad6790ffd29355b729 |
Hashes for pycryptodomex-3.9.8-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ae6379350a09339109e9b6f419bb2c3f03d3e441f4b0f5b8ca699d47cc9ff7e |
|
MD5 | c14e75ece9ef6d79c3571505868505ce |
|
BLAKE2b-256 | c0fa7f07a2086fc541655b860e690bd9a5e12cc580bc3d9aea6abff0dc43fb31 |
Hashes for pycryptodomex-3.9.8-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fcdda24dddf47f716400d54fc7f75cadaaba1dd47cc127e59d752c9c0fc3c48 |
|
MD5 | b55d2f5a908797f4df3ec68683a757f7 |
|
BLAKE2b-256 | 8e8982049d35da0277d6f661f5d1eac81d6f61ef6f3b1a1d9b10057254c561d9 |
Hashes for pycryptodomex-3.9.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea4d4b58f9bc34e224ef4b4604a6be03d72ef1f8c486391f970205f6733dbc46 |
|
MD5 | 25fc7d1677d427745e107d60f257a384 |
|
BLAKE2b-256 | 05f5e5685cd943ef38f3546cff5953fe709e82480712eb42ac402c0757353ded |
Hashes for pycryptodomex-3.9.8-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17272d06e4b2f6455ee2cbe93e8eb50d9450a5dc6223d06862ee1ea5d1235861 |
|
MD5 | 75a522573c3cba3b24802d4018ea0dfc |
|
BLAKE2b-256 | 18465329636a6252c837fa67f3cc5580d18e2cddaf0de151acbea83db8524abd |
Hashes for pycryptodomex-3.9.8-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89be1bf55e50116fe7e493a7c0c483099770dd7f81b87ac8d04a43b1a203e259 |
|
MD5 | 84465f09cd5730f0308087d82657ecab |
|
BLAKE2b-256 | e15b3446448b85a9a380f699f2be595323d9199a6ced1da96c8acb2142c53597 |
Hashes for pycryptodomex-3.9.8-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddb1ae2891c8cb83a25da87a3e00111a9654fc5f0b70f18879c41aece45d6182 |
|
MD5 | b9dddce5ac5590a35b522d055b3d1a15 |
|
BLAKE2b-256 | fd94b4a6dcf13bc7415699b3c3e1e589279c3caff71402449ce1be0f6c022c1a |
Hashes for pycryptodomex-3.9.8-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3caa32cf807422adf33c10c88c22e9e2e08b9d9d042f12e1e25fe23113dd618f |
|
MD5 | bb4f1836dc1e3572156b709d7f16084d |
|
BLAKE2b-256 | bb625728c57e90339de1e8dd2b61b68dfc9b1c1a873a5c18d82342ec40cd80b3 |
Hashes for pycryptodomex-3.9.8-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e0b27697fa1621c6d3d3b4edeec723c2e841285de6a8d378c1962da77b349be |
|
MD5 | 73cd1a4e88cb999111573455d492085f |
|
BLAKE2b-256 | ab22ed0af27f2c653f641853e0c8b21095c80e53b505ec08c405b36e882e3aa3 |
Hashes for pycryptodomex-3.9.8-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2bc4e1a2e6ca3a18b2e0be6131a23af76fecb37990c159df6edc7da6df913e3 |
|
MD5 | a7a504c0eaf0a7ed800a274e9cd946a6 |
|
BLAKE2b-256 | ecae8edd08ed1c862518f85a174f948b579e84770dbbc04c3329db05b22a7bd7 |
Hashes for pycryptodomex-3.9.8-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58e19560814dabf5d788b95a13f6b98279cf41a49b1e49ee6cf6c79a57adb4c9 |
|
MD5 | 0dc6787ad62c657f3dd946266facf548 |
|
BLAKE2b-256 | 0526ce76961275631e0986a6938df2417dac450b017ef11b820b6c5a131f664a |
Hashes for pycryptodomex-3.9.8-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2ee8ba99d33e1a434fcd27d7d0aa7964163efeee0730fe2efc9d60edae1fc71 |
|
MD5 | ad96610209f45a92014b7f4f7d82b3f6 |
|
BLAKE2b-256 | f4c7082258ffb50c21c71b4789a46220443acf35796e9d57ffc0968e5b139ca0 |
Hashes for pycryptodomex-3.9.8-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c315262e26d54a9684e323e37ac9254f481d57fcc4fd94002992460898ef5c04 |
|
MD5 | f2d13e1c0e2d0362a6aa934f5d33d065 |
|
BLAKE2b-256 | 79e4b88062b8f7a9e7a0092283bc235deeaa4c2592cd72b2cf86fd57b62636bf |
Hashes for pycryptodomex-3.9.8-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f60b3484ce4be04f5da3777c51c5140d3fe21cdd6674f2b6568f41c8130bcdeb |
|
MD5 | 30e849cbb41af6cac2cf1eb81c5b4d97 |
|
BLAKE2b-256 | e147d3ead950b09799b4c8816f6c62fbe09991932baadb1a7c372ed8ef0e8fbe |
Hashes for pycryptodomex-3.9.8-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e42860fbe1292668b682f6dabd225fbe2a7a4fa1632f0c39881c019e93dea594 |
|
MD5 | 354b83b5a4ee11e0741659f11bf69fda |
|
BLAKE2b-256 | d6ce9c88e27ef7c74ac8d3aaffc1a49b7dbc7c5251e41c26cc3556408c2a40ef |
Hashes for pycryptodomex-3.9.8-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93a75d1acd54efed314b82c952b39eac96ce98d241ad7431547442e5c56138aa |
|
MD5 | 929e2d485ed38826e9e0807f490a3b6c |
|
BLAKE2b-256 | 617888af1d490e07fb5492932ae9d4cb8320f252dbdeb11be97251db9776ad8b |
Hashes for pycryptodomex-3.9.8-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2275a663c9e744ee4eace816ef2d446b3060554c5773a92fbc79b05bf47debda |
|
MD5 | 11b4e2438c9ffc8c6a55f8bbf71008a1 |
|
BLAKE2b-256 | 3e8896b1f25a0460c97359ca05a08be019be346bbc8290b2c130cb58e9361900 |
Hashes for pycryptodomex-3.9.8-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4e1c486bf226822c8dceac81d0ec59c0a2399dbd1b9e04f03c3efa3605db677 |
|
MD5 | 51565c6594352e525384ba2afcc1266f |
|
BLAKE2b-256 | c007d8c0a9e85b8c814ee09cbf7eb365bd73b12002921a6f0c67738354e9524f |
Hashes for pycryptodomex-3.9.8-cp35-cp35m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b23d63030819b7d9ac7db9360305fd1241e6870ca5b7e8d59fee4db4674a490 |
|
MD5 | 25a99d112211c50ad729bfc6a39aed88 |
|
BLAKE2b-256 | 09db7e06630b5de250dcb85c9e708521f8d32b1cf7902d42cfda981c07f23991 |
Hashes for pycryptodomex-3.9.8-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccbbec59bf4b74226170c54476da5780c9176bae084878fc94d9a2c841218e34 |
|
MD5 | 2139ccb693604160d990f03b3ad94978 |
|
BLAKE2b-256 | 0d03b9ccad7712605f8c216c2e167b86ad49730a614136c6ffb85d6f158d3420 |
Hashes for pycryptodomex-3.9.8-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06f5a458624c9b0e04c0086c7f84bcc578567dab0ddc816e0476b3057b18339f |
|
MD5 | 7d1ca67fa2dc7403002d080b61cf2a4d |
|
BLAKE2b-256 | 6646d86e44f99735298b4e3d824225f6232e9825dc845c96e22256a342beab9c |
Hashes for pycryptodomex-3.9.8-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8044eae59301dd392fbb4a7c5d64e1aea8ef0be2540549807ecbe703d6233d68 |
|
MD5 | 2e3e02036eb2c488ea531972163872e6 |
|
BLAKE2b-256 | 5b145ef71ee5ecffc5b4345ed99ecd1a388cd3096c81f07bd8da71953bc86296 |
Hashes for pycryptodomex-3.9.8-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2199708ebeed4b82eb45b10e1754292677f5a0df7d627ee91ea01290b9bab7e6 |
|
MD5 | 98a3e3e7011d2038f5477b7a83c7c0e7 |
|
BLAKE2b-256 | 636d8b2749763ee16eeeb02bc4ddc483d6b7436d9ec4f0c8e985a99849d4835a |
Hashes for pycryptodomex-3.9.8-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2710fc8d83b3352b370db932b3710033b9d630b970ff5aaa3e7458b5336e3b32 |
|
MD5 | 62da227e8636ceed6a2e944075795dee |
|
BLAKE2b-256 | 9133a50ab95416142083e73a3a808f0ef559f2f13f839334b4559c906e3cc012 |
Hashes for pycryptodomex-3.9.8-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2d756620078570d3f940c84bc94dd30aa362b795cce8b2723300a8800b87f1c |
|
MD5 | 343a81c29bdaaab7ac751f1487a2ad08 |
|
BLAKE2b-256 | 45e4cca29be42c2ae39ea8dbbff810dcf24c7201670c1c72bcb3acbcc700a817 |
Hashes for pycryptodomex-3.9.8-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fd758e5e2fe02d57860b85da34a1a1e7037155c4eadc2326fc7af02f9cae214 |
|
MD5 | 696a246f8b7d96b6cb1f93cee84fa945 |
|
BLAKE2b-256 | f7f9cdd9f15f5717f163b0169015c75a5ff673e0c7375cc353204bbe6f8f6a37 |
Hashes for pycryptodomex-3.9.8-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c990f2c58f7c67688e9e86e6557ed05952669ff6f1343e77b459007d85f7df00 |
|
MD5 | f0b5f1d8fda7cff8a40f1eb931661e65 |
|
BLAKE2b-256 | 461e816df8b28de9a3f4105ee0e8358dab0954dd5a8ae2906646571bb4323ba9 |
Hashes for pycryptodomex-3.9.8-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1714675fb4ac29a26ced38ca22eb8ffd923ac851b7a6140563863194d7158422 |
|
MD5 | 296d6ff9d2c1b5964dcdbe584f3b9830 |
|
BLAKE2b-256 | cdbfe5c026a70d36e2b5ad959eadc3c68c218e479e042c5934303778176091cb |
Hashes for pycryptodomex-3.9.8-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0d085c8187a1e4d3402f626c9e438b5861151ab132d8761d9c5ce6491a87761 |
|
MD5 | 3c152e4fd47b3463a6ce10a46e7083ac |
|
BLAKE2b-256 | 25a014867017639743ef954c1b4a6b9df3627ab63cb2f417f7f1f34f1a5bf6eb |