bpo-29410: Change the default hash algorithm to SipHash13. #28752
Conversation
Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
The removal of SipHash-2-4 should go through regular deprecation cycle.
I recommend that you keep Py_HASH_SIPHASH24
, add a new constant for Py_HASH_SIPHASH13
, and add deprecation for Py_HASH_SIPHASH24
.
When you're done making the requested changes, leave the comment: |
How to add deprecation to undocumented macro? Comment in header is enough? |
They is just alias for siphash13.
You could add |
Co-authored-by: Christian Heimes <christian@python.org>
@@ -206,6 +206,19 @@ class StringlikeHashRandomizationTests(HashRandomizationTests): | |||
# seed 42, 'abc' | |||
[-678966196, 573763426263223372, -820489388, -4282905804826039665], | |||
], | |||
'siphash13': [ |
Created by this code. https://gist.github.com/methane/5bb59a0563a025994e49fac509b49bf9
I have made the requested changes; please review again. |
Thanks for making the requested changes! @tiran: please review the changes made to this pull request. |
Excellent, almost there! I have two minor and one major suggestion for the PR.
Doc/whatsnew/3.11.rst
Outdated
@@ -175,6 +175,9 @@ Other CPython Implementation Changes | |||
support :class:`typing.SupportsComplex` and :class:`typing.SupportsBytes` protocols. | |||
(Contributed by Mark Dickinson and Dong-hee Na in :issue:`24234`.) | |||
|
|||
* ``siphash13`` is added as a new internal hash algorithm for strings, and the default |
Small nit pick: Your change affects str, bytes, and a couple of other places like memoryview, regular expressions, and datetime objects.
I used the word "strings" because I don't have a better word to represent it. Any suggestion?
Configure script and https://docs.python.org/3/using/configure.html#security-options uses: "hash algorithm for use in Python/pyhash.c".
I would mention why we made it the default and that str and bytes are affected. Perhaps something like
siphash13
is added as a new internal hashing algorithms. It's has similar security properties assiphash24
but it is slightly faster for long inputs.str
,bytes
, and some other types now use it as default algorithm forhash()
When you're done making the requested changes, leave the comment: |
Co-authored-by: Christian Heimes <christian@python.org>
https://bugs.python.org/issue29410
The text was updated successfully, but these errors were encountered: