Skip to content

deps: bump cryptography from 48.0.1 to 50.0.0 - #37

Merged
helebest merged 1 commit into
mainfrom
dependabot/uv/cryptography-50.0.0
Aug 3, 2026
Merged

deps: bump cryptography from 48.0.1 to 50.0.0#37
helebest merged 1 commit into
mainfrom
dependabot/uv/cryptography-50.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 3, 2026

Copy link
Copy Markdown
Contributor

Bumps cryptography from 48.0.1 to 50.0.0.

Changelog

Sourced from cryptography's changelog.

50.0.0 - 2026-07-31


* **SECURITY ISSUE**:
  :func:`~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_der`
  and its PEM and S/MIME variants no longer expose distinguishable errors or
  timing when unwrapping a ``RecipientInfo``'s ``encryptedKey``, which could
  act as a Bleichenbacher oracle for callers that decrypt untrusted messages.
  A random key is now substituted on failure, as described in :rfc:`3218`.
  Credit to **@X1AOxiang** for reporting the issue
* Deprecated Diffie-Hellman key exchange over finite fields (FFDH).
  Everything FFDH is deprecated, including the types in
  ``cryptography.hazmat.primitives.asymmetric.dh`` and loading FFDH keys or
  parameters with the key loading APIs. Users should migrate to a more
  modern key exchange algorithm.
* Added ``xof()`` class methods to
  :class:`~cryptography.hazmat.primitives.hashes.SHAKE128` and
  :class:`~cryptography.hazmat.primitives.hashes.SHAKE256` for constructing
  algorithm instances configured for use with
  :class:`~cryptography.hazmat.primitives.hashes.XOFHash`.
* The :mod:`X.509 verification <cryptography.x509.verification>` APIs are now
  considered stable and are subject to our API stability policy.
* Added the :doc:`/cobblestone` recipe, an implementation of the
  Cobblestone-128 and Cobblestone-256 instantiations of the `C2SP
  chunked-encryption specification
  <https://c2sp.org/chunked-encryption>`_ for streaming authenticated
  encryption of large messages.
* Parsing a Signed Certificate Timestamp list now rejects encodings that
  carry trailing bytes after the list or after an individual SCT, instead of
  silently ignoring them.
* Added support for using :class:`~cryptography.x509.Name` as a field type in
  the :doc:`/hazmat/asn1/index` module.
* Loading a public key or an EC private key now rejects DER where the
  ``subjectPublicKey`` (or EC ``publicKey``) ``BIT STRING`` declares a non-zero
  number of unused bits, instead of silently ignoring it.
* Parsing a CRL entry's ``InvalidityDate`` extension now rejects a
  ``GeneralizedTime`` that carries fractional seconds or another non-DER form,
  matching the strict encoding already required for every other X.509 time
  field.
* :func:`~cryptography.x509.ocsp.load_der_ocsp_request` and
  :func:`~cryptography.x509.ocsp.load_der_ocsp_response` now reject a request
  or response whose ``version`` field is not ``v1``, the only version defined
  by RFC 6960, matching the version validation already performed when loading
  certificates, CSRs and CRLs.
* :class:`~cryptography.hazmat.primitives.hashes.XOFHash` is now supported
  when building against AWS-LC.
* HMAC (and therefore PBKDF2-HMAC) with SHA-3 hashes is now supported when
  building against AWS-LC.
* Diffie-Hellman (:doc:`/hazmat/primitives/asymmetric/dh`) is now supported
  when building against AWS-LC.
</tr></table> 

... (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)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [cryptography](https://github.com/pyca/cryptography) from 48.0.1 to 50.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@48.0.1...50.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 50.0.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: deps. Please create it before Dependabot can add it to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

helebest commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Automated Review — Step 1: Code Review

Scope of change: uv.lock only (30 additions / 30 deletions). No pyproject.toml changes in any package. cryptography is not a direct dependency of any package in this workspace — it is pulled in transitively via secretstorage (secretstoragekeyring, a dev/CLI-auth dependency), confirmed via dependency-type: indirect in the Dependabot commit trailer and by grepping uv.lock for secretstorage's dependency list.

  • Consistency: PR description accurately reflects the diff — a pure lockfile version bump of cryptography 48.0.1 → 50.0.0, with matching sdist/wheel hashes for the new release. ✅
  • Correctness: uv lock --check confirms the lockfile is internally consistent (resolves cleanly, no drift). No source code in this repo imports cryptography directly, so the major version bump (48 → 50, including the intermediate 49.x deprecations) carries no direct API-compatibility risk to this codebase. ✅
  • Conventions: Dependency-only PR, no code/style changes required. Follows repo convention of one dependency per Dependabot PR. ✅
  • Security: This is a security-positive upgrade. The 50.0.0 changelog fixes a real vulnerability: PKCS#7 RecipientInfo decryption (pkcs7_decrypt_der and PEM/S-MIME variants) previously leaked distinguishable errors/timing on encryptedKey unwrap failure, a Bleichenbacher-oracle-shaped issue (CVE-worthy; credited to @X1AOxiang, mitigated per RFC 3218). This repo doesn't use PKCS#7 APIs directly, but the fix benefits the dependency graph as a whole. Other 50.0.0 changes (FFDH deprecation, stricter X.509/OCSP/SCT parsing) are backward-compatible tightening, not breaking removals. No new security concerns introduced. ✅
  • Effectiveness: Achieves the stated goal — dependency bumped to the target version with correct hashes. ✅
  • Test coverage: N/A — no functional code changed, only a transitive lockfile entry. No new tests required. ✅

Verdict: No issues found. Proceeding to Step 2 (regression verification).


Generated by Claude Code

helebest commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Automated Review — Step 2: Regression Verification & Step 3: CI Monitoring

Local verification (PR head ba11841, synced via uv sync --all-packages):

Check Result
uv run pytest ✅ 134 passed, 0 failed
uv run ruff check . ✅ All checks passed
uv run mypy packages/*/src ✅ Success: no issues found in 14 source files
uv lock --check ✅ Lockfile resolves cleanly, no drift

No regressions observed. cryptography is not imported by any package's source or test code, so the version bump has zero direct blast radius on this repo's own logic — verification here mainly confirms the dependency graph still resolves and installs correctly with the new version.

CI status (GitHub Actions, both green on head SHA ba11841f110165eabc11b199bffecc0b43707fb0):

  • ci workflow: ✅ success
  • codeql workflow: ✅ success

All required checks are passing. Proceeding to Step 4 (squash merge).


Generated by Claude Code

@helebest
helebest merged commit 5c35bcb into main Aug 3, 2026
4 checks passed
@helebest
helebest deleted the dependabot/uv/cryptography-50.0.0 branch August 3, 2026 23:23

helebest commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Automated Review: cryptography 48.0.1 → 50.0.0

Consistency: PR description matches the diff — only uv.lock changes (no pyproject.toml entry, since cryptography is a transitive dependency, pulled in via secretstoragekeyringtwine, our dev/release tooling). Not a direct import in any package's source.

Correctness: uv lock --locked confirms the lockfile is consistent with the resolution graph; no other packages' pins were perturbed by the bump.

Conventions: This is a Dependabot-managed transitive/dev-tooling bump, consistent with how other indirect deps (e.g. secretstorage, keyring) are tracked in this repo.

Security: This is a security-relevant release. The 50.0.0 changelog fixes a real vulnerability: pkcs7_decrypt_der (and PEM/S-MIME variants) previously leaked distinguishable errors/timing when unwrapping a RecipientInfo's encryptedKey, a potential Bleichenbacher-oracle. Not exploitable in our usage (nothing in this repo calls PKCS7 decrypt — cryptography is only reached via secretstorage's keyring backend used by twine), but taking the fix is good hygiene. Also reviewed for breaking changes across the 49→50 jump: FFDH primitives deprecated (not used here), stricter DER/X.509 parsing (not used here), new xof() methods — none of these affect secretstorage/keyring/twine's usage.

Effectiveness: Achieves its purpose — brings in the security fix and keeps the transitive dependency current.

Test coverage: N/A — no application code changed; verified the actual consumer (twine) still functions correctly end-to-end (see below).

Regression verification

Ran locally against this PR's branch (uv sync --all-packages --all-extras, matching CI):

  • uv lock --locked → lockfile in sync
  • cryptography.__version__ → confirmed 50.0.0; twine/secretstorage import cleanly
  • uv run ruff check .All checks passed
  • uv run mypy packages/*/srcSuccess, no issues found in 14 source files
  • uv run pytest -v --ignore=tests/packaging107 passed
  • uv run pytest tests/packaging -v27 passed
  • uv build --all-packages → all 3 packages built successfully
  • uv run twine check --strict on all built wheels/sdists → all PASSED (exercises the actual cryptography consumer end-to-end)

CI status

All required checks green: test (3.12), test (3.13), analyze, CodeQL.

Decision

No issues found; this is a security-motivated update with no breaking impact on this repo's usage. Proceeding with squash merge.


Generated by Claude Code

helebest commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Automated Review — Step 4: Merge Decision

All prior steps passed:

  1. Code review: No issues — security-positive transitive bump, no direct usage in this repo.
  2. Regression verification: 134/134 tests passed, ruff/mypy clean, lockfile consistent.
  3. CI monitoring: ci and codeql workflows both green on head SHA ba11841.

Decision: ✅ Squash-merged into main (5c35bcb).


Generated by Claude Code

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant