You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ensure builtin hashlib implementations honor usedforsecurity=True when _hashlib is in FIPS mode #127298
When OpenSSL is not available, or is not in FIPS mode:
no change of behaviour
When OpenSSL is available and is in FIPS mode:
ensure that only OpenSSL implementations are used when usedforsecurity=True
ensure that all built-in (fallback) implementations require usedforsecurity=False
This addresses all needs of FIPS users that expect approved only cryptography from hashlib by default.
It satisfies Python guarantees of always available algorithms, as built-in fallbacks remain accessible with an explicit consent from the user that unapproved (an FIPS/ISO term) implementation is acceptable to the user.
In FIPS mode it means that all users can gain access to blake2/shake/md5, even when these algorithms are either blocked or unavailable from the runtime OpenSSL in FIPS mode. As long as usedforsecurity=False is used.
This also removes need to recompile or configure python somehow different for a non-fips & fips build, specifically one can safely compile python with all with-builtin-hashlib-hashes enabled.
Diagrams and full details of the current state of hashlib; and FIPS user desires are documented in this issue is opened as a reference for potential implementations to resolve all needs and desires listed there.
This issue will be used as a reference for potential implementations.
Has this already been discussed elsewhere?
I have already discussed this feature proposal on Discourse
Didn't we have a similar feature request for that? cc @encukou (I can't find it on mobile but I remember you participated in a similar discussion)
I previously opened #118224 but this issue is related; but is a different approach / design / end-goal. I don't know if you meant that one or something else.
Activity
picnixz commentedon Nov 26, 2024
Didn't we have a similar feature request for that? cc @encukou (I can't find it on mobile but I remember you participated in a similar discussion)
xnox commentedon Nov 26, 2024
I previously opened #118224 but this issue is related; but is a different approach / design / end-goal. I don't know if you meant that one or something else.
pythongh-127298: When in FIPS mode ensure builtin hashes check for us…
pythongh-127298: When in FIPS mode ensure builtin hashes check for us…
pythongh-127298: When in FIPS mode ensure builtin hashes check for us…
pythongh-127298: When in FIPS mode ensure builtin hashes check for us…
pythongh-127298: When in FIPS mode ensure builtin hashes check for us…
pythongh-127298: When in FIPS mode ensure builtin hashes check for us…
pythongh-127298: When in FIPS mode ensure builtin hashes check for us…
picnixz commentedon Nov 27, 2024
Yes, I think that's the issue I had in mind. Good to know it's not a duplicate.
python-3.13: cherry-pick proposed change to block blake2
python-3.13: cherry-pick proposed change to block blake2 (#36503)