diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2018-07-31 06:50:16 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-31 06:50:16 (GMT) |
commit | f1d36d8efaecd5c84cb35e35119b283f37d83c40 (patch) | |
tree | 055434182e3f7859d01386eac0766fc7a1d69193 /Modules/_blake2/clinic/blake2b_impl.c.h | |
parent | 4b8a7f51da224d1a0ad8159935f78ba4e6e16037 (diff) | |
download | cpython-f1d36d8efaecd5c84cb35e35119b283f37d83c40.zip cpython-f1d36d8efaecd5c84cb35e35119b283f37d83c40.tar.gz cpython-f1d36d8efaecd5c84cb35e35119b283f37d83c40.tar.bz2 |
bpo-33729: Fix issues with arguments parsing in hashlib. (GH-8346)
* 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.
Diffstat (limited to 'Modules/_blake2/clinic/blake2b_impl.c.h')
-rw-r--r-- | Modules/_blake2/clinic/blake2b_impl.c.h | 59 |
1 files changed, 29 insertions, 30 deletions
diff --git a/Modules/_blake2/clinic/blake2b_impl.c.h b/Modules/_blake2/clinic/blake2b_impl.c.h index 3cb70fb..3315bf9 100644 --- a/Modules/_blake2/clinic/blake2b_impl.c.h +++ b/Modules/_blake2/clinic/blake2b_impl.c.h @@ -3,10 +3,9 @@ preserve [clinic start generated code]*/ PyDoc_STRVAR(py_blake2b_new__doc__, -"blake2b(string=None, *, digest_size=_blake2b.blake2b.MAX_DIGEST_SIZE,\n" -" key=None, salt=None, person=None, fanout=1, depth=1,\n" -" leaf_size=0, node_offset=0, node_depth=0, inner_size=0,\n" -" last_node=False)\n" +"blake2b(data=b\'\', /, *, digest_size=_blake2.blake2b.MAX_DIGEST_SIZE,\n" +" key=b\'\', salt=b\'\', person=b\'\', fanout=1, depth=1, leaf_size=0,\n" +" node_offset=0, node_depth=0, inner_size=0, last_node=False)\n" "--\n" "\n" "Return a new BLAKE2b hash object."); @@ -22,7 +21,7 @@ static PyObject * py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *return_value = NULL; - static const char * const _keywords[] = {"string", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", NULL}; + static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", NULL}; static _PyArg_Parser _parser = {"|O$iy*y*y*iiO&O&iip:blake2b", _keywords, 0}; PyObject *data = NULL; int digest_size = BLAKE2B_OUTBYTES; @@ -60,66 +59,66 @@ exit: return return_value; } -PyDoc_STRVAR(_blake2b_blake2b_copy__doc__, +PyDoc_STRVAR(_blake2_blake2b_copy__doc__, "copy($self, /)\n" "--\n" "\n" "Return a copy of the hash object."); -#define _BLAKE2B_BLAKE2B_COPY_METHODDEF \ - {"copy", (PyCFunction)_blake2b_blake2b_copy, METH_NOARGS, _blake2b_blake2b_copy__doc__}, +#define _BLAKE2_BLAKE2B_COPY_METHODDEF \ + {"copy", (PyCFunction)_blake2_blake2b_copy, METH_NOARGS, _blake2_blake2b_copy__doc__}, static PyObject * -_blake2b_blake2b_copy_impl(BLAKE2bObject *self); +_blake2_blake2b_copy_impl(BLAKE2bObject *self); static PyObject * -_blake2b_blake2b_copy(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) +_blake2_blake2b_copy(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) { - return _blake2b_blake2b_copy_impl(self); + return _blake2_blake2b_copy_impl(self); } -PyDoc_STRVAR(_blake2b_blake2b_update__doc__, -"update($self, obj, /)\n" +PyDoc_STRVAR(_blake2_blake2b_update__doc__, +"update($self, data, /)\n" "--\n" "\n" -"Update this hash object\'s state with the provided string."); +"Update this hash object\'s state with the provided bytes-like object."); -#define _BLAKE2B_BLAKE2B_UPDATE_METHODDEF \ - {"update", (PyCFunction)_blake2b_blake2b_update, METH_O, _blake2b_blake2b_update__doc__}, +#define _BLAKE2_BLAKE2B_UPDATE_METHODDEF \ + {"update", (PyCFunction)_blake2_blake2b_update, METH_O, _blake2_blake2b_update__doc__}, -PyDoc_STRVAR(_blake2b_blake2b_digest__doc__, +PyDoc_STRVAR(_blake2_blake2b_digest__doc__, "digest($self, /)\n" "--\n" "\n" -"Return the digest value as a string of binary data."); +"Return the digest value as a bytes object."); -#define _BLAKE2B_BLAKE2B_DIGEST_METHODDEF \ - {"digest", (PyCFunction)_blake2b_blake2b_digest, METH_NOARGS, _blake2b_blake2b_digest__doc__}, +#define _BLAKE2_BLAKE2B_DIGEST_METHODDEF \ + {"digest", (PyCFunction)_blake2_blake2b_digest, METH_NOARGS, _blake2_blake2b_digest__doc__}, static PyObject * -_blake2b_blake2b_digest_impl(BLAKE2bObject *self); +_blake2_blake2b_digest_impl(BLAKE2bObject *self); static PyObject * -_blake2b_blake2b_digest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) +_blake2_blake2b_digest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) { - return _blake2b_blake2b_digest_impl(self); + return _blake2_blake2b_digest_impl(self); } -PyDoc_STRVAR(_blake2b_blake2b_hexdigest__doc__, +PyDoc_STRVAR(_blake2_blake2b_hexdigest__doc__, "hexdigest($self, /)\n" "--\n" "\n" "Return the digest value as a string of hexadecimal digits."); -#define _BLAKE2B_BLAKE2B_HEXDIGEST_METHODDEF \ - {"hexdigest", (PyCFunction)_blake2b_blake2b_hexdigest, METH_NOARGS, _blake2b_blake2b_hexdigest__doc__}, +#define _BLAKE2_BLAKE2B_HEXDIGEST_METHODDEF \ + {"hexdigest", (PyCFunction)_blake2_blake2b_hexdigest, METH_NOARGS, _blake2_blake2b_hexdigest__doc__}, static PyObject * -_blake2b_blake2b_hexdigest_impl(BLAKE2bObject *self); +_blake2_blake2b_hexdigest_impl(BLAKE2bObject *self); static PyObject * -_blake2b_blake2b_hexdigest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) +_blake2_blake2b_hexdigest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) { - return _blake2b_blake2b_hexdigest_impl(self); + return _blake2_blake2b_hexdigest_impl(self); } -/*[clinic end generated code: output=afc5c45dff0a24f9 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=39c77de2142faa12 input=a9049054013a1b77]*/ |