◐ Shell
clean mode source ↗

gh-99108: Refactor _sha256 & _sha512 into _sha2. by gpshead · Pull Request #101924 · python/cpython

This merges their code. They're backed by the same single HACL* star static
library, having them be a single module simplifies maintenance.

This should unbreak the wasm enscripten builds that currently fail due to
linking in --whole-archive mode and the HACL* library appearing twice.

Long unnoticed error fixed: `_sha512.SHA384Type` was doubly assigned and was
actually SHA512Type. Nobody depends on those internal names.

@gpshead gpshead marked this pull request as ready for review

February 15, 2023 03:04

erlend-aasland

msprotz

(this is how useful github vscode editor w/o ability to build and test before commit is...)

@gpshead

picnixz added a commit that referenced this pull request

Mar 3, 2025
Since we plan to introduce a built-in implementation for HMAC based on HACL*,
it becomes important for the HMAC tests to be flexible enough to avoid code
duplication.

In addition to the new layout based on mixin classes, we extend test coverage by
also testing the `__repr__` of HMAC objects and the HMAC one-shot functions.

We also fix the import to `_sha256` which, since gh-101924, resulted in some tests being
skipped as the module is no more available (its content was moved to the `_sha2` module).