Open
Description
I recently rewrote the _blake2
module. I want to the same for other modules where I can align the naming of functions across the different modules. The reason why I'm doing this is because it's becoming harder to make "similar" changes everywhere. In general, if I need to change something in MD5, then I also need to change it in SHA1/SHA2/SHA3, and it's easier if the code looks similar elsewhere.
There are some places that need to be updated because they are dead code, e.g.:
/*[clinic input]
module _sha2
class SHA256Type "SHA256object *" "&PyType_Type"
class SHA512Type "SHA512object *" "&PyType_Type"
[clinic start generated code]*/
should be
/*[clinic input]
module _sha2
class SHA256Type "SHA256object *" "clinic_state()->sha256_type"
class SHA512Type "SHA512object *" "clinic_state()->sha512_type"
[clinic start generated code]*/
Linked PRs
- gh-135532: use
_Py_strhex
in_md5.md5.hexdigest
#135742 - gh-135532: optimize calls to
PyMem_Malloc
in SHAKE digest computation #135744 - gh-135532: cleanup clinic
module
directives for cryptographic modules #135822 - gh-135532: use
defining_class
for copying BLAKE-2 and SHA-3 objects #135838 - gh-135532: fortify DEBUG checks when fetching HACL*-based module state #135844
Bug fixes (3.14+)
- gh-135532: update
python_hacl_namespaces.h
#135741 - [3.14] gh-135532: update
Modules/_hacl/python_hacl_namespaces.h
(GH-135741) #135745
Backported PRs (HMAC-only)
- gh-135532: simplify handling of HACL* errors in
_hmac
#135740 - [3.14] gh-135532: simplify handling of HACL* errors in
_hmac
(GH-135740) #135743