1 /*[clinic input] 2 preserve 3 [clinic start generated code]*/ 4 5 PyDoc_STRVAR(py_blake2b_new__doc__, 6 "blake2b(string=None, *, digest_size=_blake2b.blake2b.MAX_DIGEST_SIZE,\n" 7 " key=None, salt=None, person=None, fanout=1, depth=1,\n" 8 " leaf_size=None, node_offset=None, node_depth=0, inner_size=0,\n" 9 " last_node=False)\n" 10 "--\n" 11 "\n" 12 "Return a new BLAKE2b hash object."); 13 14 static PyObject * 15 py_blake2b_new_impl(PyTypeObject *type, PyObject *data, int digest_size, 16 Py_buffer *key, Py_buffer *salt, Py_buffer *person, 17 int fanout, int depth, PyObject *leaf_size_obj, 18 PyObject *node_offset_obj, int node_depth, 19 int inner_size, int last_node); 20 21 static PyObject * 22 py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) 23 { 24 PyObject *return_value = NULL; 25 static const char * const _keywords[] = {"string", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", NULL}; 26 static _PyArg_Parser _parser = {"|O$iy*y*y*iiOOiip:blake2b", _keywords, 0}; 27 PyObject *data = NULL; 28 int digest_size = BLAKE2B_OUTBYTES; 29 Py_buffer key = {NULL, NULL}; 30 Py_buffer salt = {NULL, NULL}; 31 Py_buffer person = {NULL, NULL}; 32 int fanout = 1; 33 int depth = 1; 34 PyObject *leaf_size_obj = NULL; 35 PyObject *node_offset_obj = NULL; 36 int node_depth = 0; 37 int inner_size = 0; 38 int last_node = 0; 39 40 if (!_PyArg_ParseTupleAndKeywordsFast(args, kwargs, &_parser, 41 &data, &digest_size, &key, &salt, &person, &fanout, &depth, &leaf_size_obj, &node_offset_obj, &node_depth, &inner_size, &last_node)) { 42 goto exit; 43 } 44 return_value = py_blake2b_new_impl(type, data, digest_size, &key, &salt, &person, fanout, depth, leaf_size_obj, node_offset_obj, node_depth, inner_size, last_node); 45 46 exit: 47 /* Cleanup for key */ 48 if (key.obj) { 49 PyBuffer_Release(&key); 50 } 51 /* Cleanup for salt */ 52 if (salt.obj) { 53 PyBuffer_Release(&salt); 54 } 55 /* Cleanup for person */ 56 if (person.obj) { 57 PyBuffer_Release(&person); 58 } 59 60 return return_value; 61 } 62 63 PyDoc_STRVAR(_blake2b_blake2b_copy__doc__, 64 "copy($self, /)\n" 65 "--\n" 66 "\n" 67 "Return a copy of the hash object."); 68 69 #define _BLAKE2B_BLAKE2B_COPY_METHODDEF \ 70 {"copy", (PyCFunction)_blake2b_blake2b_copy, METH_NOARGS, _blake2b_blake2b_copy__doc__}, 71 72 static PyObject * 73 _blake2b_blake2b_copy_impl(BLAKE2bObject *self); 74 75 static PyObject * 76 _blake2b_blake2b_copy(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) 77 { 78 return _blake2b_blake2b_copy_impl(self); 79 } 80 81 PyDoc_STRVAR(_blake2b_blake2b_update__doc__, 82 "update($self, obj, /)\n" 83 "--\n" 84 "\n" 85 "Update this hash object\'s state with the provided string."); 86 87 #define _BLAKE2B_BLAKE2B_UPDATE_METHODDEF \ 88 {"update", (PyCFunction)_blake2b_blake2b_update, METH_O, _blake2b_blake2b_update__doc__}, 89 90 PyDoc_STRVAR(_blake2b_blake2b_digest__doc__, 91 "digest($self, /)\n" 92 "--\n" 93 "\n" 94 "Return the digest value as a string of binary data."); 95 96 #define _BLAKE2B_BLAKE2B_DIGEST_METHODDEF \ 97 {"digest", (PyCFunction)_blake2b_blake2b_digest, METH_NOARGS, _blake2b_blake2b_digest__doc__}, 98 99 static PyObject * 100 _blake2b_blake2b_digest_impl(BLAKE2bObject *self); 101 102 static PyObject * 103 _blake2b_blake2b_digest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) 104 { 105 return _blake2b_blake2b_digest_impl(self); 106 } 107 108 PyDoc_STRVAR(_blake2b_blake2b_hexdigest__doc__, 109 "hexdigest($self, /)\n" 110 "--\n" 111 "\n" 112 "Return the digest value as a string of hexadecimal digits."); 113 114 #define _BLAKE2B_BLAKE2B_HEXDIGEST_METHODDEF \ 115 {"hexdigest", (PyCFunction)_blake2b_blake2b_hexdigest, METH_NOARGS, _blake2b_blake2b_hexdigest__doc__}, 116 117 static PyObject * 118 _blake2b_blake2b_hexdigest_impl(BLAKE2bObject *self); 119 120 static PyObject * 121 _blake2b_blake2b_hexdigest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored)) 122 { 123 return _blake2b_blake2b_hexdigest_impl(self); 124 } 125 /*[clinic end generated code: output=535a54852c98e51c input=a9049054013a1b77]*/ 126