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 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 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 pycryptodomex-3.6.3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bbec1d25be08b855ace308fd80a88eeb6a5e52227c20f64dfef80357492f0ef |
|
MD5 | 0e64f866ed6f627c8eb2c1518dc0cad7 |
|
BLAKE2b-256 | 33eb0ffab9329c8fc2154d5fccd205b68c45c4026e0a644c0874cb3af890d75e |
Hashes for pycryptodomex-3.6.3-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e514af5b33e8d34357201e845f6a0b0de80c5d10213f74ee6ec06c2ad26631b |
|
MD5 | b91e99d61d98fd71698c946054f0ae2b |
|
BLAKE2b-256 | aafcac1435a53a00a824bae4750fa61bea8752c7c6af2d6a057c2c306bf540cd |
Hashes for pycryptodomex-3.6.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2168ab5008ef10226331300ee3406ee17d7659df31b583ac670869159fa8eeb |
|
MD5 | 23eef987d2ff643790e95a1176b88f0d |
|
BLAKE2b-256 | 53fa118fcb739c28c64fc3d7c9d394ad076a41cd54503eda9602823a2acc1b30 |
Hashes for pycryptodomex-3.6.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74c4db397bc2cb4b31770b997f0669def20b44f1ba9e7e7d1791a920b2fd6778 |
|
MD5 | 090e26d3582007dc46806e7c38298472 |
|
BLAKE2b-256 | 41a69ad0107f2cea2c3fe84ab7cc6acef557302a84df139185409ea57f9e1764 |
Hashes for pycryptodomex-3.6.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b73dcdc89fda4c8a9a253c7825c5f41736bde6f1b2ba95e72eeb2a1fb2791c1 |
|
MD5 | 7203ab26606094b8a4673e15dc14f547 |
|
BLAKE2b-256 | 89152087c4a8730e817faf1eabd249e9320c1b07445dd99d83bd2b47e244057b |
Hashes for pycryptodomex-3.6.3-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 236294a4f570f456118f86ea893a296a9ed80f441917f8abd2ee18e8a407b722 |
|
MD5 | 8cf6d2293712f80b2895c863461d01fc |
|
BLAKE2b-256 | 573f80d4feecbdc43faac089caaac32d54739cc15090df9a345f5477ea15d8f1 |
Hashes for pycryptodomex-3.6.3-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c36510c4e2407509c538e1aa1809ba14291f34b054fa60b7f480044c3916bbd |
|
MD5 | 36f7a206b695ff968bc8e6ec1b1e426f |
|
BLAKE2b-256 | 74216adcbb3dca5da0654052db26afbf5c030ccb55096c59a894dd701b9fe41c |
Hashes for pycryptodomex-3.6.3-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aef896cf49c9d47290b883781edb9ae5b9d74d0b6a9fd51ffac7564a1a979876 |
|
MD5 | 1488f05ea239bc745dcf3e1cbf12e33f |
|
BLAKE2b-256 | 62b5bfd7dc07b5d1b129b52ed15d6c219b2baba2a5321c27ae7f210abd0c8fe6 |
Hashes for pycryptodomex-3.6.3-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7181197cd987acf1464d32af1f52096e80a978ea673fc419a85f0c08b50a1584 |
|
MD5 | 01e89e23aedfc80fc4fab3089e2e840a |
|
BLAKE2b-256 | 8e9cc7753445af74d170a5f1e96f35dfda9b3e70c18e14d1f932972b9f916a75 |
Hashes for pycryptodomex-3.6.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b9f67fbf00a67ba4d7c4a3ece72ed60173c6b9082f4093497c37cfd4a230fc4 |
|
MD5 | 3cf43d8dad3bfcc1bd9a7da53eb7b9b3 |
|
BLAKE2b-256 | 26e5320d88661316d1504f048995fc40e0b07d76f3b0ce7f0385565116f9d30a |
Hashes for pycryptodomex-3.6.3-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 538201b0db83b916321e0339230451219a22991230ea2e43fdf085116e067a18 |
|
MD5 | 5e57296b60c0ea47e750f26a97787ff6 |
|
BLAKE2b-256 | 73fea3d4750bb32a1fa7c2d64bbca0a7ef0f58036de227213f7374201daf3acc |
Hashes for pycryptodomex-3.6.3-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6c4a57a6f86c34e7087eb3227b11d72ff6eb79756e066d3f7969aa9be4020ba |
|
MD5 | 9ab220a4eb33f6f81ad2a6229586ca7c |
|
BLAKE2b-256 | 6fb837db42cc576731cbaa50ae6d524fee1e5ae870ad2275cf288e721fe12e9c |
Hashes for pycryptodomex-3.6.3-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23bd128d3801826e3e4f685932e1d0799f71d6c39b60780b6120bcffc5caf994 |
|
MD5 | 5dae40700c1df78c999035a27bf269a7 |
|
BLAKE2b-256 | 5fa7428b38115995ce3a5affc9237416d9fd577a1f3c0d9b51939f5069bb421f |
Hashes for pycryptodomex-3.6.3-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42f152cf5d9645c765ca0b2c150d3ca4aa2251944f2fdeccabaf6fb9dcbf61f2 |
|
MD5 | 2df636c1b94bcece6742ecf2b9634e58 |
|
BLAKE2b-256 | 831c05927a06561d85fc96446867fee6dec53429ee95be09420bed1f41e43898 |
Hashes for pycryptodomex-3.6.3-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9060aa7eb1b70a5102577961888680f1147779fec76e91d84fdf8b9929970d7 |
|
MD5 | e3295221b2c3bfdb2727d0d3c445482b |
|
BLAKE2b-256 | 0e3e6f60a2fa1e383003d5819f4a9868883e21064f93f5da7d62827b46be5bf9 |
Hashes for pycryptodomex-3.6.3-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4786e5adff0801dbff4bb41230b52bad17c9e7c23ce1969eeba2f19d89a108f0 |
|
MD5 | 6a0964a4a14dcc031c19a33a50cbc2d5 |
|
BLAKE2b-256 | 34b6815dff8f1f7fac9026833241f527723a9dc8b6256767566e125519d4b63c |
Hashes for pycryptodomex-3.6.3-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61105fb59cfb7d5d06209e88741909a8f309815e36ac6a9169b1cc89202c0e99 |
|
MD5 | 0326209ec8680a417ffa780b2d7a97e3 |
|
BLAKE2b-256 | 5c17a78094c596b044c8db1dee5b28d098ed62ee12aad2b186f6f88ffe84c295 |
Hashes for pycryptodomex-3.6.3-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08390a40ca7e72c65273bf66c2de02fee3849a8926895862e4df65dae19e7bd4 |
|
MD5 | 47849b5381dc46372ee0e7acce699d22 |
|
BLAKE2b-256 | f78dddc36756f364f87bee064d7ea2dd33dd98f0edaecb0a9e03aa421d1a275c |
Hashes for pycryptodomex-3.6.3-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 219ad9f6df7790e03087bc1ba248bb21343bc4e3a5655924f03f324aeb84d00d |
|
MD5 | 102aca170eecbd0ccb4fdf374f4da00f |
|
BLAKE2b-256 | b997c336d963468c9cafb1332f4869547f0c84bed0bc4a2202aa21fb2a63c378 |
Hashes for pycryptodomex-3.6.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3509ff1f71664fefc31d3812e6de6d2399180db064e2b56816c0143ef8c3cf4 |
|
MD5 | 9844e719be45f825be7dd90740d6991c |
|
BLAKE2b-256 | a1834a59ee1dea9b7b26d795ffea694bda23f8f459a31a50604ae17315de6ca6 |
Hashes for pycryptodomex-3.6.3-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19dd02399981701760515e8dd47b3737efef52284c576f5f967a3e50d17c8e7a |
|
MD5 | 474c91097754f170407cac3b821301e4 |
|
BLAKE2b-256 | c365f3dd79d74c516176f0692b2053fef357453ccaf3997e0ecfae72053701f7 |
Hashes for pycryptodomex-3.6.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4b91d8f48644eb78a874f1f9422de910929e3b2fea7bc575de1be0d458459da |
|
MD5 | 04db82c6a42710c38464bb1323022008 |
|
BLAKE2b-256 | 24b33c7a56ec50270862712c13257dd122efe4a66286b0b3a6a9ca13e6e2ad93 |
Hashes for pycryptodomex-3.6.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5fa1eccee2ef8c28256700cfabed091cfcf7bd7e5db4090adaf480fd3aff37f |
|
MD5 | fce1f44b9bd72bc4a9bbe0826cbd8baa |
|
BLAKE2b-256 | b72957fbb4dc8932385eba09b9d748c64317cb72f7c632bcd1f0ab44b783b880 |
Hashes for pycryptodomex-3.6.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd95d82b9c71afec2a48ac41b8153af7b4a9e8055a32105ac61c9e2d98afd026 |
|
MD5 | 4c6776c0733cc2b87e556ef392f8edb9 |
|
BLAKE2b-256 | bd8f39d775e5b676e5e8b087a178d7482842bdb63ac37fed883f555605a9aba6 |
Hashes for pycryptodomex-3.6.3-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9550b0094047b947de01b990290452cb3d54bd1af645cdf750374d6f7ab4bc62 |
|
MD5 | 6f1827dcc43273397c80e5af4a067637 |
|
BLAKE2b-256 | 9c48435ec97828c3c142fbfb71f3a1e65a52e44c451292f7b922f5fd4adcb2b3 |
Hashes for pycryptodomex-3.6.3-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f500a183ff578fc8417f6b4c2fcdaa88286bde29bbe95d2546884d0607d3c603 |
|
MD5 | 6050b21dda1bbf8fb832f2773889623e |
|
BLAKE2b-256 | 3d6b5596c880bf8c5f7fb16e556fe75ae4b31a29d5011092b5bb4689693b49b3 |