Skip to content

⬆️ Update pycryptodome requirement from ~=3.23.0 to ~=4.0.1 - #1115

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

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

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Updates the requirements on pycryptodome to permit the latest version.

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

Updates the requirements on [pycryptodome](https://github.com/Legrandin/pycryptodome) to permit the latest version.
- [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
...

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 20, 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