Skip to content

DEP(deps): Update pycryptodome requirement from ~=4.0 to ~=4.1 - #294

Merged
denisneuf merged 1 commit into
mainfrom
dependabot/pip/main/pycryptodome-approx-eq-4.1
Oct 23, 2026
Merged

denisneuf merged 1 commit into
mainfrom
dependabot/pip/main/pycryptodome-approx-eq-4.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Updates the requirements on pycryptodome to permit the latest version.

Release notes

Sourced from pycryptodome's releases.

v4.1.0 - Issy-les-Moulineaux

New features

  • New module Crypto.PublicKey.MLDSA, for ML-DSA keys (FIPS 204). It is based on the portable C code of mldsa-native <https://github.com/pq-code-package/mldsa-native>_ (v2.0.0), with the Keccak code of PyCryptodome. On CPUs with AVX2 and BMI2, a version compiled for them and with 4-way SHA-3 is used: compared to the portable version, key generation and verification are 30-45% faster, signing 15-30%.
  • New module Crypto.Signature.mldsa, for ML-DSA and HashML-DSA signatures (FIPS 204), hedged (default) or deterministic, with an optional context. The new MLDSAMuHash computes the message representative mu (external mu), to sign or verify a large message in pieces.
  • New function digest() in the modules of the SHA-2 and SHA-3 hashes, to hash a whole message with a single call, like Crypto.Hash.KangarooTwelve.digest(). For messages up to 1 KiB, it is 1.5x to 3.4x faster than new() followed by digest().
  • Crypto.IO.PKCS8.wrap() has a new parameter public_key, to create a OneAsymmetricKey version 2 (RFC 5958) with the field publicKey. Crypto.IO.PKCS8.unwrap() returns an UnwrappedKey: still a tuple (oid, private_key, params), with the same items as attributes, plus public_key (the field publicKey, if present).
  • The scalar Keccak permutation (used by SHA-3, SHAKE, cSHAKE, KMAC, TupleHash, TurboSHAKE and KangarooTwelve) processes the state one plane at a time, two rounds per iteration, which needs fewer registers: SHA-3 and SHAKE are 5-10% faster.

Resolved issues

  • Crypto.PublicKey.ECC.import_key() checks that the field publicKey of a PKCS#8 OneAsymmetricKey version 2 (RFC 5958), if present, matches the private key. Before, it was ignored.
Changelog

Sourced from pycryptodome's changelog.

4.1.0 (19 October 2026) ++++++++++++++++++++++++++

New features

  • New module Crypto.PublicKey.MLDSA, for ML-DSA keys (FIPS 204). It is based on the portable C code of mldsa-native <https://github.com/pq-code-package/mldsa-native>_ (v2.0.0), with the Keccak code of PyCryptodome. On CPUs with AVX2 and BMI2, a version compiled for them and with 4-way SHA-3 is used: compared to the portable version, key generation and verification are 30-45% faster, signing 15-30%.
  • New module Crypto.Signature.mldsa, for ML-DSA and HashML-DSA signatures (FIPS 204), hedged (default) or deterministic, with an optional context. The new MLDSAMuHash computes the message representative mu (external mu), to sign or verify a large message in pieces.
  • New function digest() in the modules of the SHA-2 and SHA-3 hashes, to hash a whole message with a single call, like Crypto.Hash.KangarooTwelve.digest(). For messages up to 1 KiB, it is 1.5x to 3.4x faster than new() followed by digest().
  • Crypto.IO.PKCS8.wrap() has a new parameter public_key, to create a OneAsymmetricKey version 2 (RFC 5958) with the field publicKey. Crypto.IO.PKCS8.unwrap() returns an UnwrappedKey: still a tuple (oid, private_key, params), with the same items as attributes, plus public_key (the field publicKey, if present).
  • The scalar Keccak permutation (used by SHA-3, SHAKE, cSHAKE, KMAC, TupleHash, TurboSHAKE and KangarooTwelve) processes the state one plane at a time, two rounds per iteration, which needs fewer registers: SHA-3 and SHAKE are 5-10% faster.

Resolved issues

  • Crypto.PublicKey.ECC.import_key() checks that the field publicKey of a PKCS#8 OneAsymmetricKey version 2 (RFC 5958), if present, matches the private key. Before, it was ignored.

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

... (truncated)

Commits
  • 29372bd Bump version
  • 6ecb50d Merge branch 'mldsa'
  • ce968aa Update Changelog
  • 6b79e75 Update text
  • 64ec848 Use our own keccak code for MLDSA
  • 0a0d734 Faster scalar Keccak permutation (plane by plane, 2 rounds per iteration)
  • cb51419 Update Changelog
  • 11dcf04 Bump version of pycryptodome-test-vectors
  • b94f3a9 Upgrade to Wycheproof v1
  • 3c26bd1 Add tests and OpenSSL test vectors for ML-DSA import/export
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Oct 22, 2026
@denisneuf

Copy link
Copy Markdown
Owner

@dependabot rebase

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@v4.0.1...v4.1.0)

---
updated-dependencies:
- dependency-name: pycryptodome
  dependency-version: 4.1.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/pip/main/pycryptodome-approx-eq-4.1 branch from 87d3770 to 1c15c7c Compare October 23, 2026 09:55
@denisneuf
denisneuf merged commit b806d52 into main Oct 23, 2026
3 checks passed
@denisneuf
denisneuf deleted the dependabot/pip/main/pycryptodome-approx-eq-4.1 branch October 23, 2026 09:58
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.

1 participant