Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
gh-134531: cleanup_hashopenssl.c
to supportEVP_MAC
#134626
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
gh-134531: cleanup_hashopenssl.c
to supportEVP_MAC
#134626
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This reverts commit9d535ac.
bedevere-bot commentedMay 24, 2025
🤖 New build scheduled with the buildbot fleet by@picnixz for commit63bc38c 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F134626%2Fmerge If you want to schedule another build, you need to add the🔨 test-with-buildbots label again. |
I suggest adding a small news entry regardless, as this will land in a release branch it is nice to indicate to people reading the changelog where a name cleanup refactoring was done to the internals. |
Sure, I'll write a NEWS entry tomorrow and will merge this. |
picnixz commentedMay 26, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Note: failures are related to GH. And if the backport fails to 3.13 due to conflicts, I'll ignore it as well (this liokely means I would anyway need to work harder :')) |
cb8045e
intopython:mainUh oh!
There was an error while loading.Please reload this page.
Thanks@picnixz for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14. |
…nGH-134626)Rename components related to `_hashlib.{HASH,HASHXOF}` objects.- The `EVPobject` structure is renamed `HASHobject`.- Non-clinic `HASH` methods are now prefixed by `_hashlib_HASH_*`. A similar change is made for non-clinic `HASHXOF` methods.- Functions extracting information from `EVP_MD` objects and functions constructing `EVP_MD` objects now include `openssl_evp_md` in their name.This change allows us to avoid future ambiguities between the `EVP_MD`and the `EVP_MAC` APIs (currently, we only use `EVP_MD` for hash functionsand rely on the legacy interface for HMAC instead of using `EVP_MAC`).(cherry picked from commitcb8045e)Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Sorry,@picnixz, I could not cleanly backport this to
|
GH-134703 is a backport of this pull request to the3.14 branch. |
Ok let's have a look at the conflicts. |
Ok, forget it, the conflicts are too hard to fix because of UBSan failures that were fixed and clinic that was fixed differently. |
Uh oh!
There was an error while loading.Please reload this page.
Previously, we used
EVP
to denote anything related to hash functions. We didn't need to distinguish betweenEVP_MD
andEVP_MAC
. However, we will need to distinguish them and honestly, I always wanted to refactor this module.So, I decided to rewrite many function names. The logic is as follows:
_hashlib_HASH_*
for HASH methods (previouslyEVPobject
)_hashlib_HASHXOF_*
for SHAKE methods (previouslyEVPXOF
)EVP
in function names when we're actually dealing with OpenSSL itself. It's confusing otherwise. On CPython's side, we're only wrapping an EVP_MD object, but we'renot an EVP_MD object IMO. We are a HASH or a HASHXOF object since we export them as such.Note that wecan backport this to 3.14, and, ideally, to 3.13 as well because if I were to fix a bug in 3.15, then we'll likely have conflicts if I were to backport the fix to 3.13.