(root)/
Python-3.11.7/
Modules/
clinic/
md5module.c.h
       1  /*[clinic input]
       2  preserve
       3  [clinic start generated code]*/
       4  
       5  PyDoc_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_CAST(MD5Type_copy), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, MD5Type_copy__doc__},
      13  
      14  static PyObject *
      15  MD5Type_copy_impl(MD5object *self, PyTypeObject *cls);
      16  
      17  static PyObject *
      18  MD5Type_copy(MD5object *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
      19  {
      20      if (nargs) {
      21          PyErr_SetString(PyExc_TypeError, "copy() takes no arguments");
      22          return NULL;
      23      }
      24      return MD5Type_copy_impl(self, cls);
      25  }
      26  
      27  PyDoc_STRVAR(MD5Type_digest__doc__,
      28  "digest($self, /)\n"
      29  "--\n"
      30  "\n"
      31  "Return the digest value as a bytes object.");
      32  
      33  #define MD5TYPE_DIGEST_METHODDEF    \
      34      {"digest", (PyCFunction)MD5Type_digest, METH_NOARGS, MD5Type_digest__doc__},
      35  
      36  static PyObject *
      37  MD5Type_digest_impl(MD5object *self);
      38  
      39  static PyObject *
      40  MD5Type_digest(MD5object *self, PyObject *Py_UNUSED(ignored))
      41  {
      42      return MD5Type_digest_impl(self);
      43  }
      44  
      45  PyDoc_STRVAR(MD5Type_hexdigest__doc__,
      46  "hexdigest($self, /)\n"
      47  "--\n"
      48  "\n"
      49  "Return the digest value as a string of hexadecimal digits.");
      50  
      51  #define MD5TYPE_HEXDIGEST_METHODDEF    \
      52      {"hexdigest", (PyCFunction)MD5Type_hexdigest, METH_NOARGS, MD5Type_hexdigest__doc__},
      53  
      54  static PyObject *
      55  MD5Type_hexdigest_impl(MD5object *self);
      56  
      57  static PyObject *
      58  MD5Type_hexdigest(MD5object *self, PyObject *Py_UNUSED(ignored))
      59  {
      60      return MD5Type_hexdigest_impl(self);
      61  }
      62  
      63  PyDoc_STRVAR(MD5Type_update__doc__,
      64  "update($self, obj, /)\n"
      65  "--\n"
      66  "\n"
      67  "Update this hash object\'s state with the provided string.");
      68  
      69  #define MD5TYPE_UPDATE_METHODDEF    \
      70      {"update", (PyCFunction)MD5Type_update, METH_O, MD5Type_update__doc__},
      71  
      72  PyDoc_STRVAR(_md5_md5__doc__,
      73  "md5($module, /, string=b\'\', *, usedforsecurity=True)\n"
      74  "--\n"
      75  "\n"
      76  "Return a new MD5 hash object; optionally initialized with a string.");
      77  
      78  #define _MD5_MD5_METHODDEF    \
      79      {"md5", _PyCFunction_CAST(_md5_md5), METH_FASTCALL|METH_KEYWORDS, _md5_md5__doc__},
      80  
      81  static PyObject *
      82  _md5_md5_impl(PyObject *module, PyObject *string, int usedforsecurity);
      83  
      84  static PyObject *
      85  _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
      86  {
      87      PyObject *return_value = NULL;
      88      static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
      89      static _PyArg_Parser _parser = {NULL, _keywords, "md5", 0};
      90      PyObject *argsbuf[2];
      91      Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
      92      PyObject *string = NULL;
      93      int usedforsecurity = 1;
      94  
      95      args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
      96      if (!args) {
      97          goto exit;
      98      }
      99      if (!noptargs) {
     100          goto skip_optional_pos;
     101      }
     102      if (args[0]) {
     103          string = args[0];
     104          if (!--noptargs) {
     105              goto skip_optional_pos;
     106          }
     107      }
     108  skip_optional_pos:
     109      if (!noptargs) {
     110          goto skip_optional_kwonly;
     111      }
     112      usedforsecurity = PyObject_IsTrue(args[1]);
     113      if (usedforsecurity < 0) {
     114          goto exit;
     115      }
     116  skip_optional_kwonly:
     117      return_value = _md5_md5_impl(module, string, usedforsecurity);
     118  
     119  exit:
     120      return return_value;
     121  }
     122  /*[clinic end generated code: output=e5dac1237beb2788 input=a9049054013a1b77]*/