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-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.10.4-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cd44aca92f997c049050a6d2048a3009068dfe34830f76964019679c727fe40 |
|
MD5 | 6f9562376ff2b31bad786a186a8c7189 |
|
BLAKE2b-256 | 209fc6c859f10d7e9899ec7c2854e71a9483c87b828a32de63d6c3dd9c162427 |
Hashes for pycryptodomex-3.10.4-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ad37bae59782e864317725da11cd9f9bc4e6def1e68f673054e0e855ceef9ac |
|
MD5 | 4697f42bb5472828e8fe8c34b70464fb |
|
BLAKE2b-256 | f63ccf42d347ba2bc0ef5a59e4924bf35d4eaae946201b9af0fd23322c6a4dde |
Hashes for pycryptodomex-3.10.4-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c905625a65f2b05c9d1c4be8c182f34ee274d704441c3cc57f440097ccc63dc3 |
|
MD5 | 4f1e53310e3083da00173997dd9b13cb |
|
BLAKE2b-256 | d95a576f9102c7699b77e5ec85c30c507fcccc3631f93bcd0ad943ca55640ab5 |
Hashes for pycryptodomex-3.10.4-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82ee08933c2b682cf55a229851c7d69767d307f33f05b1f05a09f207cbb25308 |
|
MD5 | 2d9d2fa95db5f4b0c5730cdc0953be94 |
|
BLAKE2b-256 | 68eb6d72e7ff2488e1819b51a08f84fda9b0b3852ca91456564f4814465f06fe |
Hashes for pycryptodomex-3.10.4-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e1b6dfe40e98a4f0368fa4df4c6f61ef8ed1d505efc8c1d5936e0091a127da6 |
|
MD5 | 0afa28f1a549c0b21c56540eb839e802 |
|
BLAKE2b-256 | 4789b9c307acfde84dd2771fcf290f619158de1a50f4da7e5f13daeb21026bb5 |
Hashes for pycryptodomex-3.10.4-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9dae6c26803e04cac1aa4144d0f3ec4f9984c10449208eed430c98c63776d0d0 |
|
MD5 | ba5ef7cb65e6319ca7ad1c7fe26401df |
|
BLAKE2b-256 | 46486ba7bc542b988377baeead2a4da9627ab79eaecc5f926ed5d227cd3495ee |
Hashes for pycryptodomex-3.10.4-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb585c23505bc6a6c51d91830ea15bb28369ecab6301ab3e8f0474b5c651c064 |
|
MD5 | 1c6edee83dbf94e88e4c7031b560bee1 |
|
BLAKE2b-256 | 6b3225256723030ee9d9e06d2d801f60b601e61ef212376aa059def5636416e7 |
Hashes for pycryptodomex-3.10.4-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e767c7a84d7eff2294ea488dfd1b9583b886f95cd521c59495f0266c7d967e1f |
|
MD5 | 5baf606e728aa1964ee50690dc5227c4 |
|
BLAKE2b-256 | 8e31259f16b10b3bdf3988a78fa02c4586033fb20f34ce7505d4fbfd0ac61b0f |
Hashes for pycryptodomex-3.10.4-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 041cbde579b3e044ea1b24ff16e4a2d84eacdfd925a96bca21707df0953d1f94 |
|
MD5 | 2a831e13f07f933cecbed10efa748c8d |
|
BLAKE2b-256 | 80dd5b79393f8b4be49dab95952ee0d660c8ac00ac314427b3014c4eaf1bdce0 |
Hashes for pycryptodomex-3.10.4-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 784b39e5c4d6331f559036b0efc8593d3336a6e6a0db86997fe2679bc84a3a82 |
|
MD5 | 9144e4468b23666577d1ac0286c2cd0d |
|
BLAKE2b-256 | 30f93664e08c0c599f46fd801c4d69f8fed2922e10f8f95cb6d7ff846e02c847 |
Hashes for pycryptodomex-3.10.4-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a68871322ece62fea85ba63c16c5d0fb150be723e71cb879b6fd011c38afc502 |
|
MD5 | 70cc41462b7c45a41b8dd6d4fdddcfc1 |
|
BLAKE2b-256 | 46806df6e898c70db2f1cf9c29310fe0da094df7764c5efe7bc2dd77308e3ccc |
Hashes for pycryptodomex-3.10.4-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e628383788eac3f661798c01121029a60722a0922b3e903ea88be3065231256 |
|
MD5 | 8b5f502678afa096e1e5259e0ca1b2cb |
|
BLAKE2b-256 | 170e03393dd997f33e3326c4f15a984bd0e99b0435693c9d1f74afced026f1a8 |
Hashes for pycryptodomex-3.10.4-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c07f8cad7b2597357291f144a07c0120399bc0a1ee5ca0c6b2af52691ad2a22a |
|
MD5 | 93e8d4e105741814eaf3e3c0bd656062 |
|
BLAKE2b-256 | 3f4cfe8927bde09e2c88f129f0d19533cdc4c565a6d1f83609d1708a15e663ce |
Hashes for pycryptodomex-3.10.4-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22838f744833bd5befb6b9b55c50e255b39fa3cb2c7d28c2d9e903f222f8cc4c |
|
MD5 | 23232bed30d57a870e3a05a68f4b43fa |
|
BLAKE2b-256 | c4763042b407fd389310f2ad0f645fa5958769ad5feb83ff9dc515f035a70139 |
Hashes for pycryptodomex-3.10.4-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea3e634623ff41a9471517a9a3735821d91cfc97b8b803522e9fd96c1a094568 |
|
MD5 | cb033dc17ec369f4532a4b66d39a9bec |
|
BLAKE2b-256 | 0d597cafaccd82fccf372424c06f1e25cc4d653f8da85d53a376067de6b7bdff |
Hashes for pycryptodomex-3.10.4-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99f925b9a1c6a62f03385e0c14f8fd55d2366bb47fd8c3ccd82764c4f39aa5b5 |
|
MD5 | d97ae96819e607898054c3bc2c20c0f8 |
|
BLAKE2b-256 | 92c8cd4d91b1227bbdc2b701880f81c7809adf8065e44a228d3ea46583d5cc41 |
Hashes for pycryptodomex-3.10.4-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56e99b06ee238c353cd538058ce05fa2bc34bd819dfd21c1026ed9271ba98962 |
|
MD5 | 04185650d0fbca2e39385355ce49bfec |
|
BLAKE2b-256 | 9678d7806b9399a717f2c62f007a8b5f2fc02743d0855a75a26ba1dfe3bd5d9b |
Hashes for pycryptodomex-3.10.4-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a32f4d69ee69d72c54d9d5f7b3810212d5dca76aa97a850884bd8b0636411fa |
|
MD5 | 57c09972a01b062a33ceaeb5e6dc6a97 |
|
BLAKE2b-256 | ad53a8a5f583d9485b53075a2f6c5e11eca7e77eecc5957a054c41d9180a448d |
Hashes for pycryptodomex-3.10.4-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a3926b38f0ae61b72472acda1aac00f7b54875ecc1cb6bdd07da6cc02006416 |
|
MD5 | 4a1e27d096890ea7ca31736ec19bc1ea |
|
BLAKE2b-256 | 64f75c77d4427c2c6905dbd74be23d2627f575a3f8dbb7537b3a127caabe3576 |
Hashes for pycryptodomex-3.10.4-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08095bbbb536a817247411e28deaf67fc29a00ca0a099464ba2cfaa34f5999dd |
|
MD5 | 74b3dd5931d27a3f2b171cc78c877789 |
|
BLAKE2b-256 | addf7e1a9440f081af606a727a1f486ea91495b5e4f278745789ba315d38ad5e |
Hashes for pycryptodomex-3.10.4-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1339bc64209135b004916978e5d56bf14166fda78e68338a72427e0d3b92ea98 |
|
MD5 | dbe9e070a7135d90319dc4530dfd04b3 |
|
BLAKE2b-256 | d1b49844eb79105bb502caffa70dea588431de1d9e4021c618fe9a5aaf81839c |
Hashes for pycryptodomex-3.10.4-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb72db4db594398c8b59caacfe9aa8c269c5cc41b4cdd20b471b6490ba60256d |
|
MD5 | 64e40504edae451d1a5b25f314997abc |
|
BLAKE2b-256 | a93240e48409fa11bd0e93377c6cb77a5e9afcd0af4bb0104d1acf773a562dc2 |
Hashes for pycryptodomex-3.10.4-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 911722bce054221f6411f1e5a790962a0e2beb6eb9647f83fd3b4ca06de6d5b6 |
|
MD5 | ec9f1de14f790aef25098112c58617ec |
|
BLAKE2b-256 | 3f61ff276adad8d3ab80cc0ee34725823748af53a29efc20717970209c45c30d |
Hashes for pycryptodomex-3.10.4-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c2b3ac851227dc4ffc1aa006d3ec971c8f8fa212409538e4d6b311fa77be97f |
|
MD5 | e17463029eb0c684508a369cd89ce1ea |
|
BLAKE2b-256 | 185cd8fb7f6a09701b3315c84a55e825b3c6ddc1571e3004b907272f38c97618 |
Hashes for pycryptodomex-3.10.4-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac33233c2a1c6dc7279b4b1db7c534bdf4b9c2252290a3c4a86d21443712c2c7 |
|
MD5 | f35c61aa0299dec244276f9e05c274ec |
|
BLAKE2b-256 | 3d54564d674915b4f94dfc3e30ad9adf4379bf0a49cf754a8648501104426dd4 |
Hashes for pycryptodomex-3.10.4-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a75f9ba6d01e9b21b0f40079646c10b0a7fc1404dcf756731afd137b1f9b109a |
|
MD5 | deded14976c522bc7861bae6f676a51d |
|
BLAKE2b-256 | 093fc84772d32738e0332000dca7e692f8d00fde205f60a9693a7856f3550302 |
Hashes for pycryptodomex-3.10.4-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04299f783efa97f540e1fe72e6ee332614778c72ccabc2e84452435a5768748e |
|
MD5 | 50d5c4f1d435ffbd77f6a4db6da16750 |
|
BLAKE2b-256 | 79785b3973a00b619772251bdaacd307fa129d68cdb4c2a7decee97f254476aa |
Hashes for pycryptodomex-3.10.4-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f88c0808b356ffeef1243e97a042b2c767f076325d50472da696f359a6afa29 |
|
MD5 | 423a3a9492dcc92c97beb8b81d7d09c5 |
|
BLAKE2b-256 | 4d7b7ee8b6bfd12b131967f60c50dd59e417c477651ed07f0effb1dd305f4ac1 |
Hashes for pycryptodomex-3.10.4-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1888507549eccedd0fff20dfa70c95b3848bf5b4fe2da1c971ee3ee646675d9 |
|
MD5 | caad0b634753727e0c99fc893db94109 |
|
BLAKE2b-256 | 71ea51a74ffa9b198e60acd1556e834ab8089099662d640dd904462d10c8bafb |