blob: 12484cc0e3dd88c5a0df39359c3b21af624bf38c [file] [log] [blame]
Serhiy Storchaka1009bf12015-04-03 23:53:51 +03001/*[clinic input]
2preserve
3[clinic start generated code]*/
4
5PyDoc_STRVAR(MD5Type_copy__doc__,
6"copy($self, /)\n"
7"--\n"
8"\n"
9"Return a copy of the hash object.");
10
11#define MD5TYPE_COPY_METHODDEF \
12 {"copy", (PyCFunction)MD5Type_copy, METH_NOARGS, MD5Type_copy__doc__},
13
14static PyObject *
15MD5Type_copy_impl(MD5object *self);
16
17static PyObject *
18MD5Type_copy(MD5object *self, PyObject *Py_UNUSED(ignored))
19{
20 return MD5Type_copy_impl(self);
21}
22
23PyDoc_STRVAR(MD5Type_digest__doc__,
24"digest($self, /)\n"
25"--\n"
26"\n"
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి)f192aeb2018-10-19 23:12:53 +053027"Return the digest value as a bytes object.");
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030028
29#define MD5TYPE_DIGEST_METHODDEF \
30 {"digest", (PyCFunction)MD5Type_digest, METH_NOARGS, MD5Type_digest__doc__},
31
32static PyObject *
33MD5Type_digest_impl(MD5object *self);
34
35static PyObject *
36MD5Type_digest(MD5object *self, PyObject *Py_UNUSED(ignored))
37{
38 return MD5Type_digest_impl(self);
39}
40
41PyDoc_STRVAR(MD5Type_hexdigest__doc__,
42"hexdigest($self, /)\n"
43"--\n"
44"\n"
45"Return the digest value as a string of hexadecimal digits.");
46
47#define MD5TYPE_HEXDIGEST_METHODDEF \
48 {"hexdigest", (PyCFunction)MD5Type_hexdigest, METH_NOARGS, MD5Type_hexdigest__doc__},
49
50static PyObject *
51MD5Type_hexdigest_impl(MD5object *self);
52
53static PyObject *
54MD5Type_hexdigest(MD5object *self, PyObject *Py_UNUSED(ignored))
55{
56 return MD5Type_hexdigest_impl(self);
57}
58
59PyDoc_STRVAR(MD5Type_update__doc__,
60"update($self, obj, /)\n"
61"--\n"
62"\n"
63"Update this hash object\'s state with the provided string.");
64
65#define MD5TYPE_UPDATE_METHODDEF \
66 {"update", (PyCFunction)MD5Type_update, METH_O, MD5Type_update__doc__},
67
68PyDoc_STRVAR(_md5_md5__doc__,
69"md5($module, /, string=b\'\')\n"
70"--\n"
71"\n"
72"Return a new MD5 hash object; optionally initialized with a string.");
73
74#define _MD5_MD5_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +020075 {"md5", (PyCFunction)(void(*)(void))_md5_md5, METH_FASTCALL|METH_KEYWORDS, _md5_md5__doc__},
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030076
77static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +030078_md5_md5_impl(PyObject *module, PyObject *string);
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030079
80static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +020081_md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030082{
83 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +030084 static const char * const _keywords[] = {"string", NULL};
Serhiy Storchaka31913912019-03-14 10:32:22 +020085 static _PyArg_Parser _parser = {NULL, _keywords, "md5", 0};
86 PyObject *argsbuf[1];
87 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030088 PyObject *string = NULL;
89
Serhiy Storchaka31913912019-03-14 10:32:22 +020090 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
91 if (!args) {
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030092 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030093 }
Serhiy Storchaka31913912019-03-14 10:32:22 +020094 if (!noptargs) {
95 goto skip_optional_pos;
96 }
97 string = args[0];
98skip_optional_pos:
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030099 return_value = _md5_md5_impl(module, string);
100
101exit:
102 return return_value;
103}
Serhiy Storchaka31913912019-03-14 10:32:22 +0200104/*[clinic end generated code: output=53133f08cf9095fc input=a9049054013a1b77]*/