17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(py_blake2s_new__doc__, 67db96d56Sopenharmony_ci"blake2s(data=b\'\', /, *, digest_size=_blake2.blake2s.MAX_DIGEST_SIZE,\n" 77db96d56Sopenharmony_ci" key=b\'\', salt=b\'\', person=b\'\', fanout=1, depth=1, leaf_size=0,\n" 87db96d56Sopenharmony_ci" node_offset=0, node_depth=0, inner_size=0, last_node=False,\n" 97db96d56Sopenharmony_ci" usedforsecurity=True)\n" 107db96d56Sopenharmony_ci"--\n" 117db96d56Sopenharmony_ci"\n" 127db96d56Sopenharmony_ci"Return a new BLAKE2s hash object."); 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_cistatic PyObject * 157db96d56Sopenharmony_cipy_blake2s_new_impl(PyTypeObject *type, PyObject *data, int digest_size, 167db96d56Sopenharmony_ci Py_buffer *key, Py_buffer *salt, Py_buffer *person, 177db96d56Sopenharmony_ci int fanout, int depth, unsigned long leaf_size, 187db96d56Sopenharmony_ci unsigned long long node_offset, int node_depth, 197db96d56Sopenharmony_ci int inner_size, int last_node, int usedforsecurity); 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_cistatic PyObject * 227db96d56Sopenharmony_cipy_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) 237db96d56Sopenharmony_ci{ 247db96d56Sopenharmony_ci PyObject *return_value = NULL; 257db96d56Sopenharmony_ci static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL}; 267db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "blake2s", 0}; 277db96d56Sopenharmony_ci PyObject *argsbuf[13]; 287db96d56Sopenharmony_ci PyObject * const *fastargs; 297db96d56Sopenharmony_ci Py_ssize_t nargs = PyTuple_GET_SIZE(args); 307db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0; 317db96d56Sopenharmony_ci PyObject *data = NULL; 327db96d56Sopenharmony_ci int digest_size = BLAKE2S_OUTBYTES; 337db96d56Sopenharmony_ci Py_buffer key = {NULL, NULL}; 347db96d56Sopenharmony_ci Py_buffer salt = {NULL, NULL}; 357db96d56Sopenharmony_ci Py_buffer person = {NULL, NULL}; 367db96d56Sopenharmony_ci int fanout = 1; 377db96d56Sopenharmony_ci int depth = 1; 387db96d56Sopenharmony_ci unsigned long leaf_size = 0; 397db96d56Sopenharmony_ci unsigned long long node_offset = 0; 407db96d56Sopenharmony_ci int node_depth = 0; 417db96d56Sopenharmony_ci int inner_size = 0; 427db96d56Sopenharmony_ci int last_node = 0; 437db96d56Sopenharmony_ci int usedforsecurity = 1; 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf); 467db96d56Sopenharmony_ci if (!fastargs) { 477db96d56Sopenharmony_ci goto exit; 487db96d56Sopenharmony_ci } 497db96d56Sopenharmony_ci if (nargs < 1) { 507db96d56Sopenharmony_ci goto skip_optional_posonly; 517db96d56Sopenharmony_ci } 527db96d56Sopenharmony_ci noptargs--; 537db96d56Sopenharmony_ci data = fastargs[0]; 547db96d56Sopenharmony_ciskip_optional_posonly: 557db96d56Sopenharmony_ci if (!noptargs) { 567db96d56Sopenharmony_ci goto skip_optional_kwonly; 577db96d56Sopenharmony_ci } 587db96d56Sopenharmony_ci if (fastargs[1]) { 597db96d56Sopenharmony_ci digest_size = _PyLong_AsInt(fastargs[1]); 607db96d56Sopenharmony_ci if (digest_size == -1 && PyErr_Occurred()) { 617db96d56Sopenharmony_ci goto exit; 627db96d56Sopenharmony_ci } 637db96d56Sopenharmony_ci if (!--noptargs) { 647db96d56Sopenharmony_ci goto skip_optional_kwonly; 657db96d56Sopenharmony_ci } 667db96d56Sopenharmony_ci } 677db96d56Sopenharmony_ci if (fastargs[2]) { 687db96d56Sopenharmony_ci if (PyObject_GetBuffer(fastargs[2], &key, PyBUF_SIMPLE) != 0) { 697db96d56Sopenharmony_ci goto exit; 707db96d56Sopenharmony_ci } 717db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&key, 'C')) { 727db96d56Sopenharmony_ci _PyArg_BadArgument("blake2s", "argument 'key'", "contiguous buffer", fastargs[2]); 737db96d56Sopenharmony_ci goto exit; 747db96d56Sopenharmony_ci } 757db96d56Sopenharmony_ci if (!--noptargs) { 767db96d56Sopenharmony_ci goto skip_optional_kwonly; 777db96d56Sopenharmony_ci } 787db96d56Sopenharmony_ci } 797db96d56Sopenharmony_ci if (fastargs[3]) { 807db96d56Sopenharmony_ci if (PyObject_GetBuffer(fastargs[3], &salt, PyBUF_SIMPLE) != 0) { 817db96d56Sopenharmony_ci goto exit; 827db96d56Sopenharmony_ci } 837db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&salt, 'C')) { 847db96d56Sopenharmony_ci _PyArg_BadArgument("blake2s", "argument 'salt'", "contiguous buffer", fastargs[3]); 857db96d56Sopenharmony_ci goto exit; 867db96d56Sopenharmony_ci } 877db96d56Sopenharmony_ci if (!--noptargs) { 887db96d56Sopenharmony_ci goto skip_optional_kwonly; 897db96d56Sopenharmony_ci } 907db96d56Sopenharmony_ci } 917db96d56Sopenharmony_ci if (fastargs[4]) { 927db96d56Sopenharmony_ci if (PyObject_GetBuffer(fastargs[4], &person, PyBUF_SIMPLE) != 0) { 937db96d56Sopenharmony_ci goto exit; 947db96d56Sopenharmony_ci } 957db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&person, 'C')) { 967db96d56Sopenharmony_ci _PyArg_BadArgument("blake2s", "argument 'person'", "contiguous buffer", fastargs[4]); 977db96d56Sopenharmony_ci goto exit; 987db96d56Sopenharmony_ci } 997db96d56Sopenharmony_ci if (!--noptargs) { 1007db96d56Sopenharmony_ci goto skip_optional_kwonly; 1017db96d56Sopenharmony_ci } 1027db96d56Sopenharmony_ci } 1037db96d56Sopenharmony_ci if (fastargs[5]) { 1047db96d56Sopenharmony_ci fanout = _PyLong_AsInt(fastargs[5]); 1057db96d56Sopenharmony_ci if (fanout == -1 && PyErr_Occurred()) { 1067db96d56Sopenharmony_ci goto exit; 1077db96d56Sopenharmony_ci } 1087db96d56Sopenharmony_ci if (!--noptargs) { 1097db96d56Sopenharmony_ci goto skip_optional_kwonly; 1107db96d56Sopenharmony_ci } 1117db96d56Sopenharmony_ci } 1127db96d56Sopenharmony_ci if (fastargs[6]) { 1137db96d56Sopenharmony_ci depth = _PyLong_AsInt(fastargs[6]); 1147db96d56Sopenharmony_ci if (depth == -1 && PyErr_Occurred()) { 1157db96d56Sopenharmony_ci goto exit; 1167db96d56Sopenharmony_ci } 1177db96d56Sopenharmony_ci if (!--noptargs) { 1187db96d56Sopenharmony_ci goto skip_optional_kwonly; 1197db96d56Sopenharmony_ci } 1207db96d56Sopenharmony_ci } 1217db96d56Sopenharmony_ci if (fastargs[7]) { 1227db96d56Sopenharmony_ci if (!_PyLong_UnsignedLong_Converter(fastargs[7], &leaf_size)) { 1237db96d56Sopenharmony_ci goto exit; 1247db96d56Sopenharmony_ci } 1257db96d56Sopenharmony_ci if (!--noptargs) { 1267db96d56Sopenharmony_ci goto skip_optional_kwonly; 1277db96d56Sopenharmony_ci } 1287db96d56Sopenharmony_ci } 1297db96d56Sopenharmony_ci if (fastargs[8]) { 1307db96d56Sopenharmony_ci if (!_PyLong_UnsignedLongLong_Converter(fastargs[8], &node_offset)) { 1317db96d56Sopenharmony_ci goto exit; 1327db96d56Sopenharmony_ci } 1337db96d56Sopenharmony_ci if (!--noptargs) { 1347db96d56Sopenharmony_ci goto skip_optional_kwonly; 1357db96d56Sopenharmony_ci } 1367db96d56Sopenharmony_ci } 1377db96d56Sopenharmony_ci if (fastargs[9]) { 1387db96d56Sopenharmony_ci node_depth = _PyLong_AsInt(fastargs[9]); 1397db96d56Sopenharmony_ci if (node_depth == -1 && PyErr_Occurred()) { 1407db96d56Sopenharmony_ci goto exit; 1417db96d56Sopenharmony_ci } 1427db96d56Sopenharmony_ci if (!--noptargs) { 1437db96d56Sopenharmony_ci goto skip_optional_kwonly; 1447db96d56Sopenharmony_ci } 1457db96d56Sopenharmony_ci } 1467db96d56Sopenharmony_ci if (fastargs[10]) { 1477db96d56Sopenharmony_ci inner_size = _PyLong_AsInt(fastargs[10]); 1487db96d56Sopenharmony_ci if (inner_size == -1 && PyErr_Occurred()) { 1497db96d56Sopenharmony_ci goto exit; 1507db96d56Sopenharmony_ci } 1517db96d56Sopenharmony_ci if (!--noptargs) { 1527db96d56Sopenharmony_ci goto skip_optional_kwonly; 1537db96d56Sopenharmony_ci } 1547db96d56Sopenharmony_ci } 1557db96d56Sopenharmony_ci if (fastargs[11]) { 1567db96d56Sopenharmony_ci last_node = PyObject_IsTrue(fastargs[11]); 1577db96d56Sopenharmony_ci if (last_node < 0) { 1587db96d56Sopenharmony_ci goto exit; 1597db96d56Sopenharmony_ci } 1607db96d56Sopenharmony_ci if (!--noptargs) { 1617db96d56Sopenharmony_ci goto skip_optional_kwonly; 1627db96d56Sopenharmony_ci } 1637db96d56Sopenharmony_ci } 1647db96d56Sopenharmony_ci usedforsecurity = PyObject_IsTrue(fastargs[12]); 1657db96d56Sopenharmony_ci if (usedforsecurity < 0) { 1667db96d56Sopenharmony_ci goto exit; 1677db96d56Sopenharmony_ci } 1687db96d56Sopenharmony_ciskip_optional_kwonly: 1697db96d56Sopenharmony_ci return_value = py_blake2s_new_impl(type, data, digest_size, &key, &salt, &person, fanout, depth, leaf_size, node_offset, node_depth, inner_size, last_node, usedforsecurity); 1707db96d56Sopenharmony_ci 1717db96d56Sopenharmony_ciexit: 1727db96d56Sopenharmony_ci /* Cleanup for key */ 1737db96d56Sopenharmony_ci if (key.obj) { 1747db96d56Sopenharmony_ci PyBuffer_Release(&key); 1757db96d56Sopenharmony_ci } 1767db96d56Sopenharmony_ci /* Cleanup for salt */ 1777db96d56Sopenharmony_ci if (salt.obj) { 1787db96d56Sopenharmony_ci PyBuffer_Release(&salt); 1797db96d56Sopenharmony_ci } 1807db96d56Sopenharmony_ci /* Cleanup for person */ 1817db96d56Sopenharmony_ci if (person.obj) { 1827db96d56Sopenharmony_ci PyBuffer_Release(&person); 1837db96d56Sopenharmony_ci } 1847db96d56Sopenharmony_ci 1857db96d56Sopenharmony_ci return return_value; 1867db96d56Sopenharmony_ci} 1877db96d56Sopenharmony_ci 1887db96d56Sopenharmony_ciPyDoc_STRVAR(_blake2_blake2s_copy__doc__, 1897db96d56Sopenharmony_ci"copy($self, /)\n" 1907db96d56Sopenharmony_ci"--\n" 1917db96d56Sopenharmony_ci"\n" 1927db96d56Sopenharmony_ci"Return a copy of the hash object."); 1937db96d56Sopenharmony_ci 1947db96d56Sopenharmony_ci#define _BLAKE2_BLAKE2S_COPY_METHODDEF \ 1957db96d56Sopenharmony_ci {"copy", (PyCFunction)_blake2_blake2s_copy, METH_NOARGS, _blake2_blake2s_copy__doc__}, 1967db96d56Sopenharmony_ci 1977db96d56Sopenharmony_cistatic PyObject * 1987db96d56Sopenharmony_ci_blake2_blake2s_copy_impl(BLAKE2sObject *self); 1997db96d56Sopenharmony_ci 2007db96d56Sopenharmony_cistatic PyObject * 2017db96d56Sopenharmony_ci_blake2_blake2s_copy(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored)) 2027db96d56Sopenharmony_ci{ 2037db96d56Sopenharmony_ci return _blake2_blake2s_copy_impl(self); 2047db96d56Sopenharmony_ci} 2057db96d56Sopenharmony_ci 2067db96d56Sopenharmony_ciPyDoc_STRVAR(_blake2_blake2s_update__doc__, 2077db96d56Sopenharmony_ci"update($self, data, /)\n" 2087db96d56Sopenharmony_ci"--\n" 2097db96d56Sopenharmony_ci"\n" 2107db96d56Sopenharmony_ci"Update this hash object\'s state with the provided bytes-like object."); 2117db96d56Sopenharmony_ci 2127db96d56Sopenharmony_ci#define _BLAKE2_BLAKE2S_UPDATE_METHODDEF \ 2137db96d56Sopenharmony_ci {"update", (PyCFunction)_blake2_blake2s_update, METH_O, _blake2_blake2s_update__doc__}, 2147db96d56Sopenharmony_ci 2157db96d56Sopenharmony_ciPyDoc_STRVAR(_blake2_blake2s_digest__doc__, 2167db96d56Sopenharmony_ci"digest($self, /)\n" 2177db96d56Sopenharmony_ci"--\n" 2187db96d56Sopenharmony_ci"\n" 2197db96d56Sopenharmony_ci"Return the digest value as a bytes object."); 2207db96d56Sopenharmony_ci 2217db96d56Sopenharmony_ci#define _BLAKE2_BLAKE2S_DIGEST_METHODDEF \ 2227db96d56Sopenharmony_ci {"digest", (PyCFunction)_blake2_blake2s_digest, METH_NOARGS, _blake2_blake2s_digest__doc__}, 2237db96d56Sopenharmony_ci 2247db96d56Sopenharmony_cistatic PyObject * 2257db96d56Sopenharmony_ci_blake2_blake2s_digest_impl(BLAKE2sObject *self); 2267db96d56Sopenharmony_ci 2277db96d56Sopenharmony_cistatic PyObject * 2287db96d56Sopenharmony_ci_blake2_blake2s_digest(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored)) 2297db96d56Sopenharmony_ci{ 2307db96d56Sopenharmony_ci return _blake2_blake2s_digest_impl(self); 2317db96d56Sopenharmony_ci} 2327db96d56Sopenharmony_ci 2337db96d56Sopenharmony_ciPyDoc_STRVAR(_blake2_blake2s_hexdigest__doc__, 2347db96d56Sopenharmony_ci"hexdigest($self, /)\n" 2357db96d56Sopenharmony_ci"--\n" 2367db96d56Sopenharmony_ci"\n" 2377db96d56Sopenharmony_ci"Return the digest value as a string of hexadecimal digits."); 2387db96d56Sopenharmony_ci 2397db96d56Sopenharmony_ci#define _BLAKE2_BLAKE2S_HEXDIGEST_METHODDEF \ 2407db96d56Sopenharmony_ci {"hexdigest", (PyCFunction)_blake2_blake2s_hexdigest, METH_NOARGS, _blake2_blake2s_hexdigest__doc__}, 2417db96d56Sopenharmony_ci 2427db96d56Sopenharmony_cistatic PyObject * 2437db96d56Sopenharmony_ci_blake2_blake2s_hexdigest_impl(BLAKE2sObject *self); 2447db96d56Sopenharmony_ci 2457db96d56Sopenharmony_cistatic PyObject * 2467db96d56Sopenharmony_ci_blake2_blake2s_hexdigest(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored)) 2477db96d56Sopenharmony_ci{ 2487db96d56Sopenharmony_ci return _blake2_blake2s_hexdigest_impl(self); 2497db96d56Sopenharmony_ci} 2507db96d56Sopenharmony_ci/*[clinic end generated code: output=f7ee8092ed67e9c7 input=a9049054013a1b77]*/ 251