1/*[clinic input]
2preserve
3[clinic start generated code]*/
4
5PyDoc_STRVAR(py_sha3_new__doc__,
6"sha3_224(data=b\'\', /, *, usedforsecurity=True)\n"
7"--\n"
8"\n"
9"Return a new BLAKE2b hash object.");
10
11static PyObject *
12py_sha3_new_impl(PyTypeObject *type, PyObject *data, int usedforsecurity);
13
14static PyObject *
15py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
16{
17 PyObject *return_value = NULL;
18 static const char * const _keywords[] = {"", "usedforsecurity", NULL};
19 static _PyArg_Parser _parser = {NULL, _keywords, "sha3_224", 0};
20 PyObject *argsbuf[2];
21 PyObject * const *fastargs;
22 Py_ssize_t nargs = PyTuple_GET_SIZE(args);
23 Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
24 PyObject *data = NULL;
25 int usedforsecurity = 1;
26
27 fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
28 if (!fastargs) {
29 goto exit;
30 }
31 if (nargs < 1) {
32 goto skip_optional_posonly;
33 }
34 noptargs--;
35 data = fastargs[0];
36skip_optional_posonly:
37 if (!noptargs) {
38 goto skip_optional_kwonly;
39 }
40 usedforsecurity = PyObject_IsTrue(fastargs[1]);
41 if (usedforsecurity < 0) {
42 goto exit;
43 }
44skip_optional_kwonly:
45 return_value = py_sha3_new_impl(type, data, usedforsecurity);
46
47exit:
48 return return_value;
49}
50
51PyDoc_STRVAR(_sha3_sha3_224_copy__doc__,
52"copy($self, /)\n"
53"--\n"
54"\n"
55"Return a copy of the hash object.");
56
57#define _SHA3_SHA3_224_COPY_METHODDEF \
58 {"copy", (PyCFunction)_sha3_sha3_224_copy, METH_NOARGS, _sha3_sha3_224_copy__doc__},
59
60static PyObject *
61_sha3_sha3_224_copy_impl(SHA3object *self);
62
63static PyObject *
64_sha3_sha3_224_copy(SHA3object *self, PyObject *Py_UNUSED(ignored))
65{
66 return _sha3_sha3_224_copy_impl(self);
67}
68
69PyDoc_STRVAR(_sha3_sha3_224_digest__doc__,
70"digest($self, /)\n"
71"--\n"
72"\n"
73"Return the digest value as a bytes object.");
74
75#define _SHA3_SHA3_224_DIGEST_METHODDEF \
76 {"digest", (PyCFunction)_sha3_sha3_224_digest, METH_NOARGS, _sha3_sha3_224_digest__doc__},
77
78static PyObject *
79_sha3_sha3_224_digest_impl(SHA3object *self);
80
81static PyObject *
82_sha3_sha3_224_digest(SHA3object *self, PyObject *Py_UNUSED(ignored))
83{
84 return _sha3_sha3_224_digest_impl(self);
85}
86
87PyDoc_STRVAR(_sha3_sha3_224_hexdigest__doc__,
88"hexdigest($self, /)\n"
89"--\n"
90"\n"
91"Return the digest value as a string of hexadecimal digits.");
92
93#define _SHA3_SHA3_224_HEXDIGEST_METHODDEF \
94 {"hexdigest", (PyCFunction)_sha3_sha3_224_hexdigest, METH_NOARGS, _sha3_sha3_224_hexdigest__doc__},
95
96static PyObject *
97_sha3_sha3_224_hexdigest_impl(SHA3object *self);
98
99static PyObject *
100_sha3_sha3_224_hexdigest(SHA3object *self, PyObject *Py_UNUSED(ignored))
101{
102 return _sha3_sha3_224_hexdigest_impl(self);
103}
104
105PyDoc_STRVAR(_sha3_sha3_224_update__doc__,
106"update($self, data, /)\n"
107"--\n"
108"\n"
109"Update this hash object\'s state with the provided bytes-like object.");
110
111#define _SHA3_SHA3_224_UPDATE_METHODDEF \
112 {"update", (PyCFunction)_sha3_sha3_224_update, METH_O, _sha3_sha3_224_update__doc__},
113
114PyDoc_STRVAR(_sha3_shake_128_digest__doc__,
115"digest($self, length, /)\n"
116"--\n"
117"\n"
118"Return the digest value as a bytes object.");
119
120#define _SHA3_SHAKE_128_DIGEST_METHODDEF \
121 {"digest", (PyCFunction)_sha3_shake_128_digest, METH_O, _sha3_shake_128_digest__doc__},
122
123static PyObject *
124_sha3_shake_128_digest_impl(SHA3object *self, unsigned long length);
125
126static PyObject *
127_sha3_shake_128_digest(SHA3object *self, PyObject *arg)
128{
129 PyObject *return_value = NULL;
130 unsigned long length;
131
132 if (!_PyLong_UnsignedLong_Converter(arg, &length)) {
133 goto exit;
134 }
135 return_value = _sha3_shake_128_digest_impl(self, length);
136
137exit:
138 return return_value;
139}
140
141PyDoc_STRVAR(_sha3_shake_128_hexdigest__doc__,
142"hexdigest($self, length, /)\n"
143"--\n"
144"\n"
145"Return the digest value as a string of hexadecimal digits.");
146
147#define _SHA3_SHAKE_128_HEXDIGEST_METHODDEF \
148 {"hexdigest", (PyCFunction)_sha3_shake_128_hexdigest, METH_O, _sha3_shake_128_hexdigest__doc__},
149
150static PyObject *
151_sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length);
152
153static PyObject *
154_sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg)
155{
156 PyObject *return_value = NULL;
157 unsigned long length;
158
159 if (!_PyLong_UnsignedLong_Converter(arg, &length)) {
160 goto exit;
161 }
162 return_value = _sha3_shake_128_hexdigest_impl(self, length);
163
164exit:
165 return return_value;
166}
167/*[clinic end generated code: output=c8a97b34e80def62 input=a9049054013a1b77]*/
168