pycryptodome 3.23.0


pip install pycryptodome

  Latest version

Released: May 17, 2025


Meta
Author: Helder Eijs
Requires Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*

Classifiers

Development Status
  • 5 - Production/Stable

License
  • OSI Approved :: BSD License
  • Public Domain

Intended Audience
  • Developers

Operating System
  • Unix
  • Microsoft :: Windows
  • MacOS :: MacOS X

Topic
  • Security :: Cryptography

Programming Language
  • Python :: 2
  • Python :: 2.7
  • Python :: 3
  • Python :: 3.7
  • Python :: 3.8
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13

PyCryptodome is a self-contained Python package of low-level cryptographic primitives.

It supports Python 2.7, Python 3.7 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, KW, KWP)

  • Hybrid Public Key Encryption (HPKE)

  • Accelerated AES on Intel platforms via AES-NI

  • First class support for PyPy

  • Elliptic curves cryptography (NIST P-curves; Ed25519, Ed448, Curve25519)

  • 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.

Wheel compatibility matrix

Platform CPython 2.7 CPython >=3.7 (abi3) CPython (additional flags: t) 3.13 CPython (wide) 2.7 PyPy 2.7 (73) PyPy 3.9 (pp73) PyPy 3.10 (pp73)
macosx_10_13_universal2
macosx_10_13_x86_64
macosx_10_15_x86_64
macosx_10_9_universal2
macosx_10_9_x86_64
manylinux1_i686
manylinux2010_i686
manylinux2010_x86_64
manylinux2014_aarch64
manylinux2014_i686
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_i686
manylinux_2_17_x86_64
manylinux_2_5_i686
musllinux_1_2_aarch64
musllinux_1_2_i686
musllinux_1_2_x86_64
win32
win_amd64
win_arm64

Files in release

pycryptodome-3.23.0-cp27-cp27m-macosx_10_9_x86_64.whl (1.6MiB)
pycryptodome-3.23.0-cp27-cp27m-manylinux2010_i686.whl (2.4MiB)
pycryptodome-3.23.0-cp27-cp27m-manylinux2010_x86_64.whl (2.4MiB)
pycryptodome-3.23.0-cp27-cp27m-win32.whl (1.7MiB)
pycryptodome-3.23.0-cp27-cp27mu-manylinux2010_i686.whl (2.4MiB)
pycryptodome-3.23.0-cp27-cp27mu-manylinux2010_x86_64.whl (2.4MiB)
pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_universal2.whl (2.4MiB)
pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_x86_64.whl (1.6MiB)
pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.1MiB)
pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2MiB)
pycryptodome-3.23.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.2MiB)
pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl (2.1MiB)
pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_i686.whl (2.2MiB)
pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl (2.2MiB)
pycryptodome-3.23.0-cp313-cp313t-win32.whl (1.7MiB)
pycryptodome-3.23.0-cp313-cp313t-win_amd64.whl (1.7MiB)
pycryptodome-3.23.0-cp313-cp313t-win_arm64.whl (1.6MiB)
pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl (2.4MiB)
pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl (1.6MiB)
pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.1MiB)
pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2MiB)
pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.2MiB)
pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl (2.1MiB)
pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl (2.2MiB)
pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl (2.2MiB)
pycryptodome-3.23.0-cp37-abi3-win32.whl (1.7MiB)
pycryptodome-3.23.0-cp37-abi3-win_amd64.whl (1.7MiB)
pycryptodome-3.23.0-cp37-abi3-win_arm64.whl (1.6MiB)
pycryptodome-3.23.0-pp27-pypy_73-manylinux2010_x86_64.whl (1.6MiB)
pycryptodome-3.23.0-pp27-pypy_73-win32.whl (1.7MiB)
pycryptodome-3.23.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (1.5MiB)
pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6MiB)
pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6MiB)
pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.6MiB)
pycryptodome-3.23.0-pp310-pypy310_pp73-win_amd64.whl (1.7MiB)
pycryptodome-3.23.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (1.5MiB)
pycryptodome-3.23.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6MiB)
pycryptodome-3.23.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6MiB)
pycryptodome-3.23.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.6MiB)
pycryptodome-3.23.0-pp39-pypy39_pp73-win_amd64.whl (1.7MiB)
pycryptodome-3.23.0.tar.gz (4.7MiB)
No dependencies