Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.7, Python 3.5 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-curves; Ed25519, Ed448)
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 and EdDSA
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.15.0-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35a8f7afe1867118330e2e0e0bf759c409e28557fb1fc2fbb1c6c937297dbe9a |
|
MD5 | 7d913d5c34adb32da528966cbf96c498 |
|
BLAKE2b-256 | 2dfc8e44023573ea3684fe8fde80b060931b5ff3c3e8c7b63e173fbcb2218ece |
Hashes for pycryptodomex-3.15.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a07a64709e366c2041cd5cfbca592b43998bf4df88f7b0ca73dca37071ccf1bd |
|
MD5 | 269e45740f4626f47ac46c8e5646e08d |
|
BLAKE2b-256 | adc97b7d6d0e9b7c1db0e16f6e58c203acf040e41a94de85570bbafd53baeac8 |
Hashes for pycryptodomex-3.15.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 463119d7d22d0fc04a0f9122e9d3e6121c6648bcb12a052b51bd1eed1b996aa2 |
|
MD5 | 42440758db6a51d61a904e6744569f1d |
|
BLAKE2b-256 | 2d244340a887f91c91056a9e777b6cc919c340a97e2bb98c8274c7099879e957 |
Hashes for pycryptodomex-3.15.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0776bfaf2c48154ab54ea45392847c1283d2fcf64e232e85565f858baedfc1fa |
|
MD5 | c04bdad71b1bea025cdd797ed52a6dd5 |
|
BLAKE2b-256 | c0697a02596d5def86ba7ece67460fe61456b92ee9661ff838b29a08d0aa88d8 |
Hashes for pycryptodomex-3.15.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04cc393045a8f19dd110c975e30f38ed7ab3faf21ede415ea67afebd95a22380 |
|
MD5 | ced49addc4bd966a9aef7612625ac62a |
|
BLAKE2b-256 | 4f0cc5499fc9797b727d6b85eec41f89cd9ee684e4415886f72b2b6d937554c7 |
Hashes for pycryptodomex-3.15.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94c7b60e1f52e1a87715571327baea0733708ab4723346598beca4a3b6879794 |
|
MD5 | b614e72e331af6a636616407f2e4e7d2 |
|
BLAKE2b-256 | 7edc50def83cf325cee27cef7a5d9e655f86fb7906ffe0a52b01cba52eb5b165 |
Hashes for pycryptodomex-3.15.0-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4cb9cb492ea7dcdf222a8d19a1d09002798ea516aeae8877245206d27326d86 |
|
MD5 | 24a85bfc2b2b987475ef8217815d0d08 |
|
BLAKE2b-256 | 7167d921770476d078ae17a6711a2b1f32e3e471c7864b2964c95116a7b92c32 |
Hashes for pycryptodomex-3.15.0-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67e1e6a92151023ccdfcfbc0afb3314ad30080793b4c27956ea06ab1fb9bcd8a |
|
MD5 | 291dd12d5beda0b472e632cac82ee82b |
|
BLAKE2b-256 | 4af602587b8f7e158c67228d0f9f9a6efa6253f7dfe1cf64b1b21b696112f2d4 |
Hashes for pycryptodomex-3.15.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eecdf9cdc7343001d047f951b9cc805cd68cb6cd77b20ea46af5bffc5bd3dfb |
|
MD5 | adf038b49541ff860e2639b6928a4d27 |
|
BLAKE2b-256 | 11dba5b22c87cad78b665095fe4c580ebb3e003fe388ce57232aedb92f9a263d |
Hashes for pycryptodomex-3.15.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46b3f05f2f7ac7841053da4e0f69616929ca3c42f238c405f6c3df7759ad2780 |
|
MD5 | 6bb54b7b237e8e765073ae5c058b4a48 |
|
BLAKE2b-256 | 85c9d465977afb008f0721e63fdf9a0e8e37bf6f188dc3c787b6ec9568621a48 |
Hashes for pycryptodomex-3.15.0-cp35-abi3-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04a5d6a17560e987272fc1763e9772a87689a08427b8cbdebe3ca7cba95d6156 |
|
MD5 | 55431b35c90f1e4ac0e84a8275d4e6f5 |
|
BLAKE2b-256 | 8ac82fa65115759682e9505752e188a038d5cb4ea2f88ff4dba85ca0bfcc21f3 |
Hashes for pycryptodomex-3.15.0-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9279adc16e4b0f590ceff581f53a80179b02cba9056010d733eb4196134a870 |
|
MD5 | eaaa8a563ad6339130670f1c1bf9e878 |
|
BLAKE2b-256 | ce1c0f93364b744f75770ac4d928413f89a9978ab96cfe6416d84c808e754c40 |
Hashes for pycryptodomex-3.15.0-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd452a5af7014e866206d41751886c9b4bf379a339fdf2dbfc7dd16c0fb4f8e0 |
|
MD5 | 9095ed81b564ec067d718b9913416878 |
|
BLAKE2b-256 | 382b605520ea5a63075517a747c19409bf1dc4d3b34fe41b52339c066357515b |
Hashes for pycryptodomex-3.15.0-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65204412d0c6a8e3c41e21e93a5e6054a74fea501afa03046a388cf042e3377a |
|
MD5 | 4d3eb549f2118d509fd4cfde58e0613d |
|
BLAKE2b-256 | 8971bd68f1c0654ee9c82a841feb41b8e05328ff4c154eeae98508e51d163256 |
Hashes for pycryptodomex-3.15.0-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 996e1ba717077ce1e6d4849af7a1426f38b07b3d173b879e27d5e26d2e958beb |
|
MD5 | 0d34db4ceed19a86ceb708ad69af1226 |
|
BLAKE2b-256 | 89d21666f32e1ab5c2716447821800ecb39764d00453fddb23d45fee4d422bde |
Hashes for pycryptodomex-3.15.0-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e47bf8776a7e15576887f04314f5228c6527b99946e6638cf2f16da56d260cab |
|
MD5 | f4214c6667bfddf8a7183be25dcbb88a |
|
BLAKE2b-256 | 8479133a093929b2ce20a4192075862c37dab579bfa9cb9383e6c2b9fd76a0a9 |
Hashes for pycryptodomex-3.15.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2b12968522a0358b8917fc7b28865acac002f02f4c4c6020fcb264d76bfd06d |
|
MD5 | 45bf57d32eaec0e0feaa8288ac2384e9 |
|
BLAKE2b-256 | e53f4e92e56ee0eefaedbb1bc4e85848b3fbbfed34f929a88e39088b2052ce1f |
Hashes for pycryptodomex-3.15.0-cp27-cp27mu-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 781efd04ea6762bb2ef7d4fa632c9c89895433744b6c345bd0c239d5ab058dfc |
|
MD5 | 1f4b5fafce4397da62e53c3c90b5c93b |
|
BLAKE2b-256 | f74f84cbd54a5a28cdc59df165c6f4cde9ea9847ae0b9055ebcc5a6b35913ba5 |
Hashes for pycryptodomex-3.15.0-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5676a132169a1c1a3712edf25250722ebc8c9102aa9abd814df063ca8362454f |
|
MD5 | 80b7164da5d489f488c6298851ae18d2 |
|
BLAKE2b-256 | f8e57e21896a03affd83cb9bc5cbf8576f63c5f6f26cccfb4196c874d466b5c7 |
Hashes for pycryptodomex-3.15.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3164a18348bd53c69b4435ebfb4ac8a4076291ffa2a70b54f0c4b80c7834b1d |
|
MD5 | 7da30d194c5afd9b38ae4da9303ffb82 |
|
BLAKE2b-256 | 19ebcb4796378c45dd350674c9787e304abab45fea89b0de5087ce578970a9a5 |
Hashes for pycryptodomex-3.15.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 191e73bc84a8064ad1874dba0ebadedd7cce4dedee998549518f2c74a003b2e1 |
|
MD5 | 7b4163b28d1b1b26d5722ea9b508f5af |
|
BLAKE2b-256 | e7c224b88c306d9ee909061e1535b355be43693be2e5557321417ca2448a1125 |
Hashes for pycryptodomex-3.15.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3709f13ca3852b0b07fc04a2c03b379189232b24007c466be0f605dd4723e9d4 |
|
MD5 | 6abd280d04b562bbe221b5924adcd63c |
|
BLAKE2b-256 | 9297fafba850c72cffb4e794b827d196a01b1b7ba332686354cc5e01527e1bf1 |
Hashes for pycryptodomex-3.15.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18e2ab4813883ae63396c0ffe50b13554b32bb69ec56f0afaf052e7a7ae0d55b |
|
MD5 | f3403b22f1cdc0aed52c90665ec4a720 |
|
BLAKE2b-256 | 28c95539ef0a0f963eedf757c79ffe71ba79fd06cbcdd16e0d733e81e6c7f5b9 |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48697790203909fab02a33226fda546604f4e2653f9d47bc5d3eb40879fa7c64 |
|
MD5 | 211690e3f44e401b52a8265740cabfcd |
|
BLAKE2b-256 | b8026cc7574c39d5a646068150ffa33681319a942a1b663b9a3eb1524b41a67e |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6306403228edde6e289f626a3908a2f7f67c344e712cf7c0a508bab3ad9e381 |
|
MD5 | bee6cb3f8175e1a18915d268b8bd0e6c |
|
BLAKE2b-256 | 78e3114892b4cd878fe470902d9629712573f7b05df0b1076754936d7854f2b0 |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7db44039cc8b449bd08ab338a074e87093bd170f1a1b76d2fcef8a3e2ee11199 |
|
MD5 | 0596b56ac2e6fcbdb0760a66ef28c284 |
|
BLAKE2b-256 | 956f48b103bea4ccc8351cf4a94af86d9c5799aac8de8882d00f8cbb59fcf703 |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78d9621cf0ea35abf2d38fa2ca6d0634eab6c991a78373498ab149953787e5e5 |
|
MD5 | e7cbe60adb350a1fbae4fe9e177e85aa |
|
BLAKE2b-256 | a7b0e60dd0b215420dff6423614de65852bcba5e17539ae50c45acb4a29eac97 |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8be976cec59b11f011f790b88aca67b4ea2bd286578d0bd3e31bcd19afcd3e4 |
|
MD5 | 4eaacfa80387482b2e82b984ca1409d9 |
|
BLAKE2b-256 | 99721f22fc479774170abc6e10690e412155af071dea9bc9ce37f0a55ff241e1 |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc9bc7a9b79fe5c750fc81a307052f8daabb709bdaabb0fb18fb136b66b653b5 |
|
MD5 | 3fb600648f79b7b1bafe018d216aee23 |
|
BLAKE2b-256 | 99b0e44654a967809bb8c3225e40f4d58686784b6a3ea3aecae7710296a965ef |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fadb9f7fa3150577800eef35f62a8a24b9ddf1563ff060d9bd3af22d3952c8c |
|
MD5 | 9f5c2ab6221d477c0cb24f9c42fcae36 |
|
BLAKE2b-256 | c2fa9443659d2752efe3d7b8bd630ffe7828969332eb60051552ec812f9d9527 |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4540904c09704b6f831059c0dfb38584acb82cb97b0125cd52688c1f1e3fffa6 |
|
MD5 | f87f00a0f4b785ce973565a3aa579132 |
|
BLAKE2b-256 | 020ebb03279d1d01c3494a6b2b2bfa3c1e70f19155efdf86cb90b362e5a19fe0 |
Hashes for pycryptodomex-3.15.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f5b6ba8aefd624834bc177a2ac292734996bb030f9d1b388e7504103b6fcddf |
|
MD5 | 5f43a387a462a74a02ca233a1a3da7ae |
|
BLAKE2b-256 | 1874e0e3453044c03476e96f9cb3baac26e6c962f930555d34515aa31fcbbbd3 |