Skip to content

Bump pycryptodome from 3.23.0 to 4.0.1 - #259

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/pycryptodome-4.0.1
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/pycryptodome-4.0.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 21, 2026

Copy link
Copy Markdown
Contributor

Bumps pycryptodome from 3.23.0 to 4.0.1.

Release notes

Sourced from pycryptodome's releases.

v4.0.1 - Le Havre

New features

  • The Windows wheels for x86-64 are built with clang-cl (compatible with MSVC), so the code for CPUs with AVX2, BMI2 and ADX is also used on Windows: SHA-3 and the other Keccak-based functions, KangarooTwelve, ChaCha20, Salsa20, and the big integers of RSA, DSA and the NIST curves. To build from source with clang-cl, set the environment variable PYCRYPTODOME_CLANG_CL (see the installation instructions).

v4.0.0 - Grenoble

Major release, with some breaking changes. See Changelog.

v3.24.1 - Frejus

Resolved issues

  • Security: the time to create an ECDSA, EdDSA or DSA signature depended on the secret nonce, enough to recover the private key with a lattice attack. DSA signing is now about 40% slower with GMP. Thanks to Daniel Bleichenbacher.

v3.24.0 - Evreux

New features

  • Speed up KangarooTwelve by 50% for long messages (1MB or more).
  • New parameter threads for Crypto.Hash.KangarooTwelve.new(), to hash long messages on several CPU cores (threads=0 for all of them). The output does not depend on the number of threads.

Resolved issues

  • GH#875: Fixed the Object Identifiers (OID) for BLAKE2.
  • Fixed a potential DOS attack when decrypting a password-encrypted PKCS#8 key, when the iteration count is enourmous. Decryption will now fail if it exceeds 50M iterations; the limit can be changed or removed via the new max_iteration_count option. Thanks to afldl for reporting.
  • Fixed the maximum number of bytes that GCM should encrypt. Thanks to Loganaden Velvindron.
  • Fixed ECC operations on 32-bit Windows (x86) wheels: due to a compiler bug in Visual Studio 2022, the modular inversion skipped half of the exponent bits, producing wrong results.
  • Fixed a bug in KangarooTwelve in the scenario where customization string is very long (8190 bytes or longer) and the message to hash is empty.

Other changes

  • Build Windows wheel with Visual Studio 2022, from Visual Studio 2019.
  • Remove support for Python 3.7.
Changelog

Sourced from pycryptodome's changelog.

4.0.1 (17 October 2026) ++++++++++++++++++++++++++

New features

  • The Windows wheels for x86-64 are built with clang-cl (compatible with MSVC), so the code for CPUs with AVX2, BMI2 and ADX is also used on Windows: SHA-3 and the other Keccak-based functions, KangarooTwelve, ChaCha20, Salsa20, and the big integers of RSA, DSA and the NIST curves. To build from source with clang-cl, set the environment variable PYCRYPTODOME_CLANG_CL (see the installation instructions).

4.0.0 (14 October 2026) ++++++++++++++++++++++++++

Breaking changes

  • Remove support for Python 2.7 and 3.8. The minimum supported version is now Python 3.9.
  • The pycryptodomex package (Cryptodome namespace) is no longer released (except for important security patches, but still on the 3.x branch). The library is only available as pycryptodome, under the Crypto namespace.
  • The self-tests are now run by pytest, which must be installed for python -m Crypto.SelfTest to work. The test command of setup.py is removed: install the package (e.g. with pip install -e .) and run python -m Crypto.SelfTest instead.
  • In Crypto.Protocol.KDF.SP800_108_Counter(), the label can no longer contain zero bytes, while the context now can (for instance, a binary nonce). The zero byte between them still separates the two unambiguously, as required by NIST SP 800-108r1 (GH#896).
  • The coordinates of EccPoint and EccXPoint (x, y and xy), EccKey.d and the components of ElGamal keys (p, g, y and x) are now Python int objects, not Crypto.Math.Numbers.Integer. The ElGamal components can no longer be assigned.
  • The GMP library is no longer used, and the environment variable PYCRYPTODOME_DISABLE_GMP has no effect. Big integers are handled by the new constant-time code (see below). Crypto.Math.Numbers.Integer (an internal class) no longer supports negative values.
  • Elliptic curve points are decoded more strictly. Importing a NIST curve public key (SEC1, DER, PEM or OpenSSH) fails if a coordinate of the point is equal to or larger than the modulus p, as required by SEC1 (such coordinates were reduced modulo p before; EccPoint and ECC.construct() still reduce them). Ed25519 and Ed448 points (public keys, and R in signatures) are decoded as in RFC 8032: an encoding with x = 0 and the sign bit of x set, or (for Ed448) with any of the 7 low bits of the last byte set, is now rejected.
  • RSA keys are limited to a modulus of 16384 bits: RSA.generate(), RSA.construct() and RSA.import_key() raise ValueError for larger ones. The constant-time arithmetic is slower than GMP, and a large public key from an untrusted source could take minutes to import or use.
  • Crypto.Protocol.KDF.bcrypt_check() rejects (with Crypto.KdfIterationLimitError, a ValueError) a bcrypt hash whose cost is above 20, which takes about one minute: a hash from an untrusted source, which states its own cost, could otherwise tie up the CPU for a day. Use the new parameter max_cost

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [pycryptodome](https://github.com/Legrandin/pycryptodome) from 3.23.0 to 4.0.1.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](Legrandin/pycryptodome@v3.23.0...v4.0.1)

---
updated-dependencies:
- dependency-name: pycryptodome
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Oct 21, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants