[3.6] bpo-33729: Fix issues with arguments parsing in hashlib. (GH-8346) (GH-8581) by serhiy-storchaka · Pull Request #9657 · python/cpython (original) (raw)
- help(hashlib) didn't work because of incorrect module name in blake2b and
blake2s classes. - Constructors blake2*(), sha3_ (), shake_() and keccak_*() incorrectly
accepted keyword argument "string" for binary data, but documented as
accepting the "data" keyword argument. Now this parameter is positional-only. - Keyword-only parameters in blake2b() and blake2s() were not documented as
keyword-only. - Default value for some parameters of blake2b() and blake2s() was None,
which is not acceptable value. - The length argument for shake_*.digest() was wrapped out to 32 bits.
- The argument for shake_128.digest() and shake_128.hexdigest() was not
positional-only as intended. - TypeError messages for incorrect arguments in all constructors sha3_ (),
shake_() and keccak_*() incorrectly referred to sha3_224.
Also made the following enhancements:
- More accurately specified input and result types for strings, bytes and
bytes-like objects. - Unified positional parameter names for update() and constructors.
- Improved formatting.
(cherry picked from commit f1d36d8)
(cherry picked from commit 47957da)
https://bugs.python.org/issue33729
…ythonGH-8346) (pythonGH-8581)
- help(hashlib) didn't work because of incorrect module name in blake2b and blake2s classes.
- Constructors blake2*(), sha3_*(), shake_*() and keccak_*() incorrectly accepted keyword argument "string" for binary data, but documented as accepting the "data" keyword argument. Now this parameter is positional-only.
- Keyword-only parameters in blake2b() and blake2s() were not documented as keyword-only.
- Default value for some parameters of blake2b() and blake2s() was None, which is not acceptable value.
- The length argument for shake_*.digest() was wrapped out to 32 bits.
- The argument for shake_128.digest() and shake_128.hexdigest() was not positional-only as intended.
- TypeError messages for incorrect arguments in all constructors sha3_*(), shake_*() and keccak_*() incorrectly referred to sha3_224.
Also made the following enhancements:
- More accurately specified input and result types for strings, bytes and bytes-like objects.
- Unified positional parameter names for update() and constructors.
- Improved formatting. (cherry picked from commit f1d36d8)
Co-authored-by: Serhiy Storchaka storchaka@gmail.com. (cherry picked from commit 47957da)
Co-authored-by: Serhiy Storchaka storchaka@gmail.com