17db96d56Sopenharmony_ci/*[clinic input]
27db96d56Sopenharmony_cipreserve
37db96d56Sopenharmony_ci[clinic start generated code]*/
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciPyDoc_STRVAR(py_sha3_new__doc__,
67db96d56Sopenharmony_ci"sha3_224(data=b\'\', /, *, usedforsecurity=True)\n"
77db96d56Sopenharmony_ci"--\n"
87db96d56Sopenharmony_ci"\n"
97db96d56Sopenharmony_ci"Return a new BLAKE2b hash object.");
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_cistatic PyObject *
127db96d56Sopenharmony_cipy_sha3_new_impl(PyTypeObject *type, PyObject *data, int usedforsecurity);
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_cistatic PyObject *
157db96d56Sopenharmony_cipy_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
167db96d56Sopenharmony_ci{
177db96d56Sopenharmony_ci    PyObject *return_value = NULL;
187db96d56Sopenharmony_ci    static const char * const _keywords[] = {"", "usedforsecurity", NULL};
197db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "sha3_224", 0};
207db96d56Sopenharmony_ci    PyObject *argsbuf[2];
217db96d56Sopenharmony_ci    PyObject * const *fastargs;
227db96d56Sopenharmony_ci    Py_ssize_t nargs = PyTuple_GET_SIZE(args);
237db96d56Sopenharmony_ci    Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
247db96d56Sopenharmony_ci    PyObject *data = NULL;
257db96d56Sopenharmony_ci    int usedforsecurity = 1;
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci    fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
287db96d56Sopenharmony_ci    if (!fastargs) {
297db96d56Sopenharmony_ci        goto exit;
307db96d56Sopenharmony_ci    }
317db96d56Sopenharmony_ci    if (nargs < 1) {
327db96d56Sopenharmony_ci        goto skip_optional_posonly;
337db96d56Sopenharmony_ci    }
347db96d56Sopenharmony_ci    noptargs--;
357db96d56Sopenharmony_ci    data = fastargs[0];
367db96d56Sopenharmony_ciskip_optional_posonly:
377db96d56Sopenharmony_ci    if (!noptargs) {
387db96d56Sopenharmony_ci        goto skip_optional_kwonly;
397db96d56Sopenharmony_ci    }
407db96d56Sopenharmony_ci    usedforsecurity = PyObject_IsTrue(fastargs[1]);
417db96d56Sopenharmony_ci    if (usedforsecurity < 0) {
427db96d56Sopenharmony_ci        goto exit;
437db96d56Sopenharmony_ci    }
447db96d56Sopenharmony_ciskip_optional_kwonly:
457db96d56Sopenharmony_ci    return_value = py_sha3_new_impl(type, data, usedforsecurity);
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ciexit:
487db96d56Sopenharmony_ci    return return_value;
497db96d56Sopenharmony_ci}
507db96d56Sopenharmony_ci
517db96d56Sopenharmony_ciPyDoc_STRVAR(_sha3_sha3_224_copy__doc__,
527db96d56Sopenharmony_ci"copy($self, /)\n"
537db96d56Sopenharmony_ci"--\n"
547db96d56Sopenharmony_ci"\n"
557db96d56Sopenharmony_ci"Return a copy of the hash object.");
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_ci#define _SHA3_SHA3_224_COPY_METHODDEF    \
587db96d56Sopenharmony_ci    {"copy", (PyCFunction)_sha3_sha3_224_copy, METH_NOARGS, _sha3_sha3_224_copy__doc__},
597db96d56Sopenharmony_ci
607db96d56Sopenharmony_cistatic PyObject *
617db96d56Sopenharmony_ci_sha3_sha3_224_copy_impl(SHA3object *self);
627db96d56Sopenharmony_ci
637db96d56Sopenharmony_cistatic PyObject *
647db96d56Sopenharmony_ci_sha3_sha3_224_copy(SHA3object *self, PyObject *Py_UNUSED(ignored))
657db96d56Sopenharmony_ci{
667db96d56Sopenharmony_ci    return _sha3_sha3_224_copy_impl(self);
677db96d56Sopenharmony_ci}
687db96d56Sopenharmony_ci
697db96d56Sopenharmony_ciPyDoc_STRVAR(_sha3_sha3_224_digest__doc__,
707db96d56Sopenharmony_ci"digest($self, /)\n"
717db96d56Sopenharmony_ci"--\n"
727db96d56Sopenharmony_ci"\n"
737db96d56Sopenharmony_ci"Return the digest value as a bytes object.");
747db96d56Sopenharmony_ci
757db96d56Sopenharmony_ci#define _SHA3_SHA3_224_DIGEST_METHODDEF    \
767db96d56Sopenharmony_ci    {"digest", (PyCFunction)_sha3_sha3_224_digest, METH_NOARGS, _sha3_sha3_224_digest__doc__},
777db96d56Sopenharmony_ci
787db96d56Sopenharmony_cistatic PyObject *
797db96d56Sopenharmony_ci_sha3_sha3_224_digest_impl(SHA3object *self);
807db96d56Sopenharmony_ci
817db96d56Sopenharmony_cistatic PyObject *
827db96d56Sopenharmony_ci_sha3_sha3_224_digest(SHA3object *self, PyObject *Py_UNUSED(ignored))
837db96d56Sopenharmony_ci{
847db96d56Sopenharmony_ci    return _sha3_sha3_224_digest_impl(self);
857db96d56Sopenharmony_ci}
867db96d56Sopenharmony_ci
877db96d56Sopenharmony_ciPyDoc_STRVAR(_sha3_sha3_224_hexdigest__doc__,
887db96d56Sopenharmony_ci"hexdigest($self, /)\n"
897db96d56Sopenharmony_ci"--\n"
907db96d56Sopenharmony_ci"\n"
917db96d56Sopenharmony_ci"Return the digest value as a string of hexadecimal digits.");
927db96d56Sopenharmony_ci
937db96d56Sopenharmony_ci#define _SHA3_SHA3_224_HEXDIGEST_METHODDEF    \
947db96d56Sopenharmony_ci    {"hexdigest", (PyCFunction)_sha3_sha3_224_hexdigest, METH_NOARGS, _sha3_sha3_224_hexdigest__doc__},
957db96d56Sopenharmony_ci
967db96d56Sopenharmony_cistatic PyObject *
977db96d56Sopenharmony_ci_sha3_sha3_224_hexdigest_impl(SHA3object *self);
987db96d56Sopenharmony_ci
997db96d56Sopenharmony_cistatic PyObject *
1007db96d56Sopenharmony_ci_sha3_sha3_224_hexdigest(SHA3object *self, PyObject *Py_UNUSED(ignored))
1017db96d56Sopenharmony_ci{
1027db96d56Sopenharmony_ci    return _sha3_sha3_224_hexdigest_impl(self);
1037db96d56Sopenharmony_ci}
1047db96d56Sopenharmony_ci
1057db96d56Sopenharmony_ciPyDoc_STRVAR(_sha3_sha3_224_update__doc__,
1067db96d56Sopenharmony_ci"update($self, data, /)\n"
1077db96d56Sopenharmony_ci"--\n"
1087db96d56Sopenharmony_ci"\n"
1097db96d56Sopenharmony_ci"Update this hash object\'s state with the provided bytes-like object.");
1107db96d56Sopenharmony_ci
1117db96d56Sopenharmony_ci#define _SHA3_SHA3_224_UPDATE_METHODDEF    \
1127db96d56Sopenharmony_ci    {"update", (PyCFunction)_sha3_sha3_224_update, METH_O, _sha3_sha3_224_update__doc__},
1137db96d56Sopenharmony_ci
1147db96d56Sopenharmony_ciPyDoc_STRVAR(_sha3_shake_128_digest__doc__,
1157db96d56Sopenharmony_ci"digest($self, length, /)\n"
1167db96d56Sopenharmony_ci"--\n"
1177db96d56Sopenharmony_ci"\n"
1187db96d56Sopenharmony_ci"Return the digest value as a bytes object.");
1197db96d56Sopenharmony_ci
1207db96d56Sopenharmony_ci#define _SHA3_SHAKE_128_DIGEST_METHODDEF    \
1217db96d56Sopenharmony_ci    {"digest", (PyCFunction)_sha3_shake_128_digest, METH_O, _sha3_shake_128_digest__doc__},
1227db96d56Sopenharmony_ci
1237db96d56Sopenharmony_cistatic PyObject *
1247db96d56Sopenharmony_ci_sha3_shake_128_digest_impl(SHA3object *self, unsigned long length);
1257db96d56Sopenharmony_ci
1267db96d56Sopenharmony_cistatic PyObject *
1277db96d56Sopenharmony_ci_sha3_shake_128_digest(SHA3object *self, PyObject *arg)
1287db96d56Sopenharmony_ci{
1297db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1307db96d56Sopenharmony_ci    unsigned long length;
1317db96d56Sopenharmony_ci
1327db96d56Sopenharmony_ci    if (!_PyLong_UnsignedLong_Converter(arg, &length)) {
1337db96d56Sopenharmony_ci        goto exit;
1347db96d56Sopenharmony_ci    }
1357db96d56Sopenharmony_ci    return_value = _sha3_shake_128_digest_impl(self, length);
1367db96d56Sopenharmony_ci
1377db96d56Sopenharmony_ciexit:
1387db96d56Sopenharmony_ci    return return_value;
1397db96d56Sopenharmony_ci}
1407db96d56Sopenharmony_ci
1417db96d56Sopenharmony_ciPyDoc_STRVAR(_sha3_shake_128_hexdigest__doc__,
1427db96d56Sopenharmony_ci"hexdigest($self, length, /)\n"
1437db96d56Sopenharmony_ci"--\n"
1447db96d56Sopenharmony_ci"\n"
1457db96d56Sopenharmony_ci"Return the digest value as a string of hexadecimal digits.");
1467db96d56Sopenharmony_ci
1477db96d56Sopenharmony_ci#define _SHA3_SHAKE_128_HEXDIGEST_METHODDEF    \
1487db96d56Sopenharmony_ci    {"hexdigest", (PyCFunction)_sha3_shake_128_hexdigest, METH_O, _sha3_shake_128_hexdigest__doc__},
1497db96d56Sopenharmony_ci
1507db96d56Sopenharmony_cistatic PyObject *
1517db96d56Sopenharmony_ci_sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length);
1527db96d56Sopenharmony_ci
1537db96d56Sopenharmony_cistatic PyObject *
1547db96d56Sopenharmony_ci_sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg)
1557db96d56Sopenharmony_ci{
1567db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1577db96d56Sopenharmony_ci    unsigned long length;
1587db96d56Sopenharmony_ci
1597db96d56Sopenharmony_ci    if (!_PyLong_UnsignedLong_Converter(arg, &length)) {
1607db96d56Sopenharmony_ci        goto exit;
1617db96d56Sopenharmony_ci    }
1627db96d56Sopenharmony_ci    return_value = _sha3_shake_128_hexdigest_impl(self, length);
1637db96d56Sopenharmony_ci
1647db96d56Sopenharmony_ciexit:
1657db96d56Sopenharmony_ci    return return_value;
1667db96d56Sopenharmony_ci}
1677db96d56Sopenharmony_ci/*[clinic end generated code: output=c8a97b34e80def62 input=a9049054013a1b77]*/
168