mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00

* 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.
121 lines
3.2 KiB
C
121 lines
3.2 KiB
C
/*[clinic input]
|
|
preserve
|
|
[clinic start generated code]*/
|
|
|
|
PyDoc_STRVAR(_sha3_sha3_224_copy__doc__,
|
|
"copy($self, /)\n"
|
|
"--\n"
|
|
"\n"
|
|
"Return a copy of the hash object.");
|
|
|
|
#define _SHA3_SHA3_224_COPY_METHODDEF \
|
|
{"copy", (PyCFunction)_sha3_sha3_224_copy, METH_NOARGS, _sha3_sha3_224_copy__doc__},
|
|
|
|
static PyObject *
|
|
_sha3_sha3_224_copy_impl(SHA3object *self);
|
|
|
|
static PyObject *
|
|
_sha3_sha3_224_copy(SHA3object *self, PyObject *Py_UNUSED(ignored))
|
|
{
|
|
return _sha3_sha3_224_copy_impl(self);
|
|
}
|
|
|
|
PyDoc_STRVAR(_sha3_sha3_224_digest__doc__,
|
|
"digest($self, /)\n"
|
|
"--\n"
|
|
"\n"
|
|
"Return the digest value as a bytes object.");
|
|
|
|
#define _SHA3_SHA3_224_DIGEST_METHODDEF \
|
|
{"digest", (PyCFunction)_sha3_sha3_224_digest, METH_NOARGS, _sha3_sha3_224_digest__doc__},
|
|
|
|
static PyObject *
|
|
_sha3_sha3_224_digest_impl(SHA3object *self);
|
|
|
|
static PyObject *
|
|
_sha3_sha3_224_digest(SHA3object *self, PyObject *Py_UNUSED(ignored))
|
|
{
|
|
return _sha3_sha3_224_digest_impl(self);
|
|
}
|
|
|
|
PyDoc_STRVAR(_sha3_sha3_224_hexdigest__doc__,
|
|
"hexdigest($self, /)\n"
|
|
"--\n"
|
|
"\n"
|
|
"Return the digest value as a string of hexadecimal digits.");
|
|
|
|
#define _SHA3_SHA3_224_HEXDIGEST_METHODDEF \
|
|
{"hexdigest", (PyCFunction)_sha3_sha3_224_hexdigest, METH_NOARGS, _sha3_sha3_224_hexdigest__doc__},
|
|
|
|
static PyObject *
|
|
_sha3_sha3_224_hexdigest_impl(SHA3object *self);
|
|
|
|
static PyObject *
|
|
_sha3_sha3_224_hexdigest(SHA3object *self, PyObject *Py_UNUSED(ignored))
|
|
{
|
|
return _sha3_sha3_224_hexdigest_impl(self);
|
|
}
|
|
|
|
PyDoc_STRVAR(_sha3_sha3_224_update__doc__,
|
|
"update($self, data, /)\n"
|
|
"--\n"
|
|
"\n"
|
|
"Update this hash object\'s state with the provided bytes-like object.");
|
|
|
|
#define _SHA3_SHA3_224_UPDATE_METHODDEF \
|
|
{"update", (PyCFunction)_sha3_sha3_224_update, METH_O, _sha3_sha3_224_update__doc__},
|
|
|
|
PyDoc_STRVAR(_sha3_shake_128_digest__doc__,
|
|
"digest($self, length, /)\n"
|
|
"--\n"
|
|
"\n"
|
|
"Return the digest value as a bytes object.");
|
|
|
|
#define _SHA3_SHAKE_128_DIGEST_METHODDEF \
|
|
{"digest", (PyCFunction)_sha3_shake_128_digest, METH_O, _sha3_shake_128_digest__doc__},
|
|
|
|
static PyObject *
|
|
_sha3_shake_128_digest_impl(SHA3object *self, unsigned long length);
|
|
|
|
static PyObject *
|
|
_sha3_shake_128_digest(SHA3object *self, PyObject *arg)
|
|
{
|
|
PyObject *return_value = NULL;
|
|
unsigned long length;
|
|
|
|
if (!PyArg_Parse(arg, "O&:digest", _PyLong_UnsignedLong_Converter, &length)) {
|
|
goto exit;
|
|
}
|
|
return_value = _sha3_shake_128_digest_impl(self, length);
|
|
|
|
exit:
|
|
return return_value;
|
|
}
|
|
|
|
PyDoc_STRVAR(_sha3_shake_128_hexdigest__doc__,
|
|
"hexdigest($self, length, /)\n"
|
|
"--\n"
|
|
"\n"
|
|
"Return the digest value as a string of hexadecimal digits.");
|
|
|
|
#define _SHA3_SHAKE_128_HEXDIGEST_METHODDEF \
|
|
{"hexdigest", (PyCFunction)_sha3_shake_128_hexdigest, METH_O, _sha3_shake_128_hexdigest__doc__},
|
|
|
|
static PyObject *
|
|
_sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length);
|
|
|
|
static PyObject *
|
|
_sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg)
|
|
{
|
|
PyObject *return_value = NULL;
|
|
unsigned long length;
|
|
|
|
if (!PyArg_Parse(arg, "O&:hexdigest", _PyLong_UnsignedLong_Converter, &length)) {
|
|
goto exit;
|
|
}
|
|
return_value = _sha3_shake_128_hexdigest_impl(self, length);
|
|
|
|
exit:
|
|
return return_value;
|
|
}
|
|
/*[clinic end generated code: output=bf823532a7bffe68 input=a9049054013a1b77]*/
|