bpo-33729: Fix issues with arguments parsing in hashlib. by serhiy-storchaka · Pull Request #8346 · python/cpython (original) (raw)
help(hashlib)
didn't work because of incorrect module name inblake2b
andblake2s
classes.- Constructors
blake2*()
,sha3_*()
,shake_*()
andkeccak_*()
incorrectly accepted keyword argumentstring
for binary data, but documented as accepting thedata
keyword argument. Now this parameter is positional-only. - Keyword-only parameters in
blake2b()
andblake2s()
were not documented as keyword-only. - Default value for some parameters of
scrypt()
,blake2b()
andblake2s()
wasNone
, which is not acceptable value. Some mandatory arguments forscrypt()
was optional.- The length argument for
shake_*.digest()
was wrapped out to 32 bits. - The argument for
shake_128.digest()
andshake_128.hexdigest()
was not positional-only as intended. - TypeError messages for incorrect arguments in all constructors
sha3_*()
,shake_*()
andkeccak_*()
incorrectly referred tosha3_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.
https://bugs.python.org/issue33729
The part of changes was reverted because required keyword-only parameters are not supported by PyArg_ParseTupleAndKeywords
and friends.
serhiy-storchaka added a commit to serhiy-storchaka/cpython that referenced this pull request
- 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
serhiy-storchaka added a commit that referenced this pull request
…) (GH-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
serhiy-storchaka added a commit to serhiy-storchaka/cpython that referenced this pull request
…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
serhiy-storchaka added a commit that referenced this pull request
- 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: