123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854 |
- /*[clinic input]
- preserve
- [clinic start generated code]*/
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- # include "pycore_gc.h" // PyGC_Head
- # include "pycore_runtime.h" // _Py_ID()
- #endif
- PyDoc_STRVAR(EVP_copy__doc__,
- "copy($self, /)\n"
- "--\n"
- "\n"
- "Return a copy of the hash object.");
- #define EVP_COPY_METHODDEF \
- {"copy", (PyCFunction)EVP_copy, METH_NOARGS, EVP_copy__doc__},
- static PyObject *
- EVP_copy_impl(EVPobject *self);
- static PyObject *
- EVP_copy(EVPobject *self, PyObject *Py_UNUSED(ignored))
- {
- return EVP_copy_impl(self);
- }
- PyDoc_STRVAR(EVP_digest__doc__,
- "digest($self, /)\n"
- "--\n"
- "\n"
- "Return the digest value as a bytes object.");
- #define EVP_DIGEST_METHODDEF \
- {"digest", (PyCFunction)EVP_digest, METH_NOARGS, EVP_digest__doc__},
- static PyObject *
- EVP_digest_impl(EVPobject *self);
- static PyObject *
- EVP_digest(EVPobject *self, PyObject *Py_UNUSED(ignored))
- {
- return EVP_digest_impl(self);
- }
- PyDoc_STRVAR(EVP_hexdigest__doc__,
- "hexdigest($self, /)\n"
- "--\n"
- "\n"
- "Return the digest value as a string of hexadecimal digits.");
- #define EVP_HEXDIGEST_METHODDEF \
- {"hexdigest", (PyCFunction)EVP_hexdigest, METH_NOARGS, EVP_hexdigest__doc__},
- static PyObject *
- EVP_hexdigest_impl(EVPobject *self);
- static PyObject *
- EVP_hexdigest(EVPobject *self, PyObject *Py_UNUSED(ignored))
- {
- return EVP_hexdigest_impl(self);
- }
- PyDoc_STRVAR(EVP_update__doc__,
- "update($self, obj, /)\n"
- "--\n"
- "\n"
- "Update this hash object\'s state with the provided string.");
- #define EVP_UPDATE_METHODDEF \
- {"update", (PyCFunction)EVP_update, METH_O, EVP_update__doc__},
- #if defined(PY_OPENSSL_HAS_SHAKE)
- PyDoc_STRVAR(EVPXOF_digest__doc__,
- "digest($self, /, length)\n"
- "--\n"
- "\n"
- "Return the digest value as a bytes object.");
- #define EVPXOF_DIGEST_METHODDEF \
- {"digest", _PyCFunction_CAST(EVPXOF_digest), METH_FASTCALL|METH_KEYWORDS, EVPXOF_digest__doc__},
- static PyObject *
- EVPXOF_digest_impl(EVPobject *self, Py_ssize_t length);
- static PyObject *
- EVPXOF_digest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 1
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(length), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"length", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "digest",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[1];
- Py_ssize_t length;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = _PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- length = ival;
- }
- return_value = EVPXOF_digest_impl(self, length);
- exit:
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SHAKE) */
- #if defined(PY_OPENSSL_HAS_SHAKE)
- PyDoc_STRVAR(EVPXOF_hexdigest__doc__,
- "hexdigest($self, /, length)\n"
- "--\n"
- "\n"
- "Return the digest value as a string of hexadecimal digits.");
- #define EVPXOF_HEXDIGEST_METHODDEF \
- {"hexdigest", _PyCFunction_CAST(EVPXOF_hexdigest), METH_FASTCALL|METH_KEYWORDS, EVPXOF_hexdigest__doc__},
- static PyObject *
- EVPXOF_hexdigest_impl(EVPobject *self, Py_ssize_t length);
- static PyObject *
- EVPXOF_hexdigest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 1
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(length), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"length", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "hexdigest",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[1];
- Py_ssize_t length;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = _PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- length = ival;
- }
- return_value = EVPXOF_hexdigest_impl(self, length);
- exit:
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SHAKE) */
- PyDoc_STRVAR(EVP_new__doc__,
- "new($module, /, name, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Return a new hash object using the named algorithm.\n"
- "\n"
- "An optional string argument may be provided and will be\n"
- "automatically hashed.\n"
- "\n"
- "The MD5 and SHA1 algorithms are always supported.");
- #define EVP_NEW_METHODDEF \
- {"new", _PyCFunction_CAST(EVP_new), METH_FASTCALL|METH_KEYWORDS, EVP_new__doc__},
- static PyObject *
- EVP_new_impl(PyObject *module, PyObject *name_obj, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- EVP_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 3
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(name), &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"name", "string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "new",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- PyObject *name_obj;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- name_obj = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- data_obj = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[2]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = EVP_new_impl(module, name_obj, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_openssl_md5__doc__,
- "openssl_md5($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a md5 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_MD5_METHODDEF \
- {"openssl_md5", _PyCFunction_CAST(_hashlib_openssl_md5), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_md5__doc__},
- static PyObject *
- _hashlib_openssl_md5_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_md5",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_md5_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_openssl_sha1__doc__,
- "openssl_sha1($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha1 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA1_METHODDEF \
- {"openssl_sha1", _PyCFunction_CAST(_hashlib_openssl_sha1), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha1__doc__},
- static PyObject *
- _hashlib_openssl_sha1_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha1",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha1_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_openssl_sha224__doc__,
- "openssl_sha224($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha224 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA224_METHODDEF \
- {"openssl_sha224", _PyCFunction_CAST(_hashlib_openssl_sha224), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha224__doc__},
- static PyObject *
- _hashlib_openssl_sha224_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha224",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha224_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_openssl_sha256__doc__,
- "openssl_sha256($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha256 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA256_METHODDEF \
- {"openssl_sha256", _PyCFunction_CAST(_hashlib_openssl_sha256), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha256__doc__},
- static PyObject *
- _hashlib_openssl_sha256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha256",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha256_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_openssl_sha384__doc__,
- "openssl_sha384($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha384 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA384_METHODDEF \
- {"openssl_sha384", _PyCFunction_CAST(_hashlib_openssl_sha384), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha384__doc__},
- static PyObject *
- _hashlib_openssl_sha384_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha384",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha384_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_openssl_sha512__doc__,
- "openssl_sha512($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha512 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA512_METHODDEF \
- {"openssl_sha512", _PyCFunction_CAST(_hashlib_openssl_sha512), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha512__doc__},
- static PyObject *
- _hashlib_openssl_sha512_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha512",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha512_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- #if defined(PY_OPENSSL_HAS_SHA3)
- PyDoc_STRVAR(_hashlib_openssl_sha3_224__doc__,
- "openssl_sha3_224($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha3-224 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA3_224_METHODDEF \
- {"openssl_sha3_224", _PyCFunction_CAST(_hashlib_openssl_sha3_224), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_224__doc__},
- static PyObject *
- _hashlib_openssl_sha3_224_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha3_224",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha3_224_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SHA3) */
- #if defined(PY_OPENSSL_HAS_SHA3)
- PyDoc_STRVAR(_hashlib_openssl_sha3_256__doc__,
- "openssl_sha3_256($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha3-256 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA3_256_METHODDEF \
- {"openssl_sha3_256", _PyCFunction_CAST(_hashlib_openssl_sha3_256), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_256__doc__},
- static PyObject *
- _hashlib_openssl_sha3_256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha3_256",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha3_256_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SHA3) */
- #if defined(PY_OPENSSL_HAS_SHA3)
- PyDoc_STRVAR(_hashlib_openssl_sha3_384__doc__,
- "openssl_sha3_384($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha3-384 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA3_384_METHODDEF \
- {"openssl_sha3_384", _PyCFunction_CAST(_hashlib_openssl_sha3_384), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_384__doc__},
- static PyObject *
- _hashlib_openssl_sha3_384_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha3_384",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha3_384_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SHA3) */
- #if defined(PY_OPENSSL_HAS_SHA3)
- PyDoc_STRVAR(_hashlib_openssl_sha3_512__doc__,
- "openssl_sha3_512($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a sha3-512 hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHA3_512_METHODDEF \
- {"openssl_sha3_512", _PyCFunction_CAST(_hashlib_openssl_sha3_512), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_512__doc__},
- static PyObject *
- _hashlib_openssl_sha3_512_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_sha3_512",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_sha3_512_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SHA3) */
- #if defined(PY_OPENSSL_HAS_SHAKE)
- PyDoc_STRVAR(_hashlib_openssl_shake_128__doc__,
- "openssl_shake_128($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a shake-128 variable hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHAKE_128_METHODDEF \
- {"openssl_shake_128", _PyCFunction_CAST(_hashlib_openssl_shake_128), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_shake_128__doc__},
- static PyObject *
- _hashlib_openssl_shake_128_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_shake_128(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_shake_128",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_shake_128_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SHAKE) */
- #if defined(PY_OPENSSL_HAS_SHAKE)
- PyDoc_STRVAR(_hashlib_openssl_shake_256__doc__,
- "openssl_shake_256($module, /, string=b\'\', *, usedforsecurity=True)\n"
- "--\n"
- "\n"
- "Returns a shake-256 variable hash object; optionally initialized with a string");
- #define _HASHLIB_OPENSSL_SHAKE_256_METHODDEF \
- {"openssl_shake_256", _PyCFunction_CAST(_hashlib_openssl_shake_256), METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_shake_256__doc__},
- static PyObject *
- _hashlib_openssl_shake_256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
- static PyObject *
- _hashlib_openssl_shake_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 2
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "openssl_shake_256",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_openssl_shake_256_impl(module, data_obj, usedforsecurity);
- exit:
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SHAKE) */
- PyDoc_STRVAR(pbkdf2_hmac__doc__,
- "pbkdf2_hmac($module, /, hash_name, password, salt, iterations,\n"
- " dklen=None)\n"
- "--\n"
- "\n"
- "Password based key derivation function 2 (PKCS #5 v2.0) with HMAC as pseudorandom function.");
- #define PBKDF2_HMAC_METHODDEF \
- {"pbkdf2_hmac", _PyCFunction_CAST(pbkdf2_hmac), METH_FASTCALL|METH_KEYWORDS, pbkdf2_hmac__doc__},
- static PyObject *
- pbkdf2_hmac_impl(PyObject *module, const char *hash_name,
- Py_buffer *password, Py_buffer *salt, long iterations,
- PyObject *dklen_obj);
- static PyObject *
- pbkdf2_hmac(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 5
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(hash_name), &_Py_ID(password), &_Py_ID(salt), &_Py_ID(iterations), &_Py_ID(dklen), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"hash_name", "password", "salt", "iterations", "dklen", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "pbkdf2_hmac",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4;
- const char *hash_name;
- Py_buffer password = {NULL, NULL};
- Py_buffer salt = {NULL, NULL};
- long iterations;
- PyObject *dklen_obj = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 5, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("pbkdf2_hmac", "argument 'hash_name'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t hash_name_length;
- hash_name = PyUnicode_AsUTF8AndSize(args[0], &hash_name_length);
- if (hash_name == NULL) {
- goto exit;
- }
- if (strlen(hash_name) != (size_t)hash_name_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &password, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&password, 'C')) {
- _PyArg_BadArgument("pbkdf2_hmac", "argument 'password'", "contiguous buffer", args[1]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[2], &salt, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&salt, 'C')) {
- _PyArg_BadArgument("pbkdf2_hmac", "argument 'salt'", "contiguous buffer", args[2]);
- goto exit;
- }
- iterations = PyLong_AsLong(args[3]);
- if (iterations == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- dklen_obj = args[4];
- skip_optional_pos:
- return_value = pbkdf2_hmac_impl(module, hash_name, &password, &salt, iterations, dklen_obj);
- exit:
- /* Cleanup for password */
- if (password.obj) {
- PyBuffer_Release(&password);
- }
- /* Cleanup for salt */
- if (salt.obj) {
- PyBuffer_Release(&salt);
- }
- return return_value;
- }
- #if defined(PY_OPENSSL_HAS_SCRYPT)
- PyDoc_STRVAR(_hashlib_scrypt__doc__,
- "scrypt($module, /, password, *, salt=None, n=None, r=None, p=None,\n"
- " maxmem=0, dklen=64)\n"
- "--\n"
- "\n"
- "scrypt password-based key derivation function.");
- #define _HASHLIB_SCRYPT_METHODDEF \
- {"scrypt", _PyCFunction_CAST(_hashlib_scrypt), METH_FASTCALL|METH_KEYWORDS, _hashlib_scrypt__doc__},
- static PyObject *
- _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
- PyObject *n_obj, PyObject *r_obj, PyObject *p_obj,
- long maxmem, long dklen);
- static PyObject *
- _hashlib_scrypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 7
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(password), &_Py_ID(salt), _Py_LATIN1_CHR('n'), _Py_LATIN1_CHR('r'), _Py_LATIN1_CHR('p'), &_Py_ID(maxmem), &_Py_ID(dklen), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"password", "salt", "n", "r", "p", "maxmem", "dklen", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "scrypt",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[7];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- Py_buffer password = {NULL, NULL};
- Py_buffer salt = {NULL, NULL};
- PyObject *n_obj = Py_None;
- PyObject *r_obj = Py_None;
- PyObject *p_obj = Py_None;
- long maxmem = 0;
- long dklen = 64;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &password, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&password, 'C')) {
- _PyArg_BadArgument("scrypt", "argument 'password'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[1]) {
- if (PyObject_GetBuffer(args[1], &salt, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&salt, 'C')) {
- _PyArg_BadArgument("scrypt", "argument 'salt'", "contiguous buffer", args[1]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[2]) {
- if (!PyLong_Check(args[2])) {
- _PyArg_BadArgument("scrypt", "argument 'n'", "int", args[2]);
- goto exit;
- }
- n_obj = args[2];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- if (!PyLong_Check(args[3])) {
- _PyArg_BadArgument("scrypt", "argument 'r'", "int", args[3]);
- goto exit;
- }
- r_obj = args[3];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[4]) {
- if (!PyLong_Check(args[4])) {
- _PyArg_BadArgument("scrypt", "argument 'p'", "int", args[4]);
- goto exit;
- }
- p_obj = args[4];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[5]) {
- maxmem = PyLong_AsLong(args[5]);
- if (maxmem == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- dklen = PyLong_AsLong(args[6]);
- if (dklen == -1 && PyErr_Occurred()) {
- goto exit;
- }
- skip_optional_kwonly:
- return_value = _hashlib_scrypt_impl(module, &password, &salt, n_obj, r_obj, p_obj, maxmem, dklen);
- exit:
- /* Cleanup for password */
- if (password.obj) {
- PyBuffer_Release(&password);
- }
- /* Cleanup for salt */
- if (salt.obj) {
- PyBuffer_Release(&salt);
- }
- return return_value;
- }
- #endif /* defined(PY_OPENSSL_HAS_SCRYPT) */
- PyDoc_STRVAR(_hashlib_hmac_singleshot__doc__,
- "hmac_digest($module, /, key, msg, digest)\n"
- "--\n"
- "\n"
- "Single-shot HMAC.");
- #define _HASHLIB_HMAC_SINGLESHOT_METHODDEF \
- {"hmac_digest", _PyCFunction_CAST(_hashlib_hmac_singleshot), METH_FASTCALL|METH_KEYWORDS, _hashlib_hmac_singleshot__doc__},
- static PyObject *
- _hashlib_hmac_singleshot_impl(PyObject *module, Py_buffer *key,
- Py_buffer *msg, PyObject *digest);
- static PyObject *
- _hashlib_hmac_singleshot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 3
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(key), &_Py_ID(msg), &_Py_ID(digest), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"key", "msg", "digest", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "hmac_digest",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[3];
- Py_buffer key = {NULL, NULL};
- Py_buffer msg = {NULL, NULL};
- PyObject *digest;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &key, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&key, 'C')) {
- _PyArg_BadArgument("hmac_digest", "argument 'key'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &msg, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&msg, 'C')) {
- _PyArg_BadArgument("hmac_digest", "argument 'msg'", "contiguous buffer", args[1]);
- goto exit;
- }
- digest = args[2];
- return_value = _hashlib_hmac_singleshot_impl(module, &key, &msg, digest);
- exit:
- /* Cleanup for key */
- if (key.obj) {
- PyBuffer_Release(&key);
- }
- /* Cleanup for msg */
- if (msg.obj) {
- PyBuffer_Release(&msg);
- }
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_hmac_new__doc__,
- "hmac_new($module, /, key, msg=b\'\', digestmod=None)\n"
- "--\n"
- "\n"
- "Return a new hmac object.");
- #define _HASHLIB_HMAC_NEW_METHODDEF \
- {"hmac_new", _PyCFunction_CAST(_hashlib_hmac_new), METH_FASTCALL|METH_KEYWORDS, _hashlib_hmac_new__doc__},
- static PyObject *
- _hashlib_hmac_new_impl(PyObject *module, Py_buffer *key, PyObject *msg_obj,
- PyObject *digestmod);
- static PyObject *
- _hashlib_hmac_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 3
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(key), &_Py_ID(msg), &_Py_ID(digestmod), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"key", "msg", "digestmod", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "hmac_new",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- Py_buffer key = {NULL, NULL};
- PyObject *msg_obj = NULL;
- PyObject *digestmod = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &key, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&key, 'C')) {
- _PyArg_BadArgument("hmac_new", "argument 'key'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- msg_obj = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- digestmod = args[2];
- skip_optional_pos:
- return_value = _hashlib_hmac_new_impl(module, &key, msg_obj, digestmod);
- exit:
- /* Cleanup for key */
- if (key.obj) {
- PyBuffer_Release(&key);
- }
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_HMAC_copy__doc__,
- "copy($self, /)\n"
- "--\n"
- "\n"
- "Return a copy (\"clone\") of the HMAC object.");
- #define _HASHLIB_HMAC_COPY_METHODDEF \
- {"copy", (PyCFunction)_hashlib_HMAC_copy, METH_NOARGS, _hashlib_HMAC_copy__doc__},
- static PyObject *
- _hashlib_HMAC_copy_impl(HMACobject *self);
- static PyObject *
- _hashlib_HMAC_copy(HMACobject *self, PyObject *Py_UNUSED(ignored))
- {
- return _hashlib_HMAC_copy_impl(self);
- }
- PyDoc_STRVAR(_hashlib_HMAC_update__doc__,
- "update($self, /, msg)\n"
- "--\n"
- "\n"
- "Update the HMAC object with msg.");
- #define _HASHLIB_HMAC_UPDATE_METHODDEF \
- {"update", _PyCFunction_CAST(_hashlib_HMAC_update), METH_FASTCALL|METH_KEYWORDS, _hashlib_HMAC_update__doc__},
- static PyObject *
- _hashlib_HMAC_update_impl(HMACobject *self, PyObject *msg);
- static PyObject *
- _hashlib_HMAC_update(HMACobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- #define NUM_KEYWORDS 1
- static struct {
- PyGC_Head _this_is_not_used;
- PyObject_VAR_HEAD
- PyObject *ob_item[NUM_KEYWORDS];
- } _kwtuple = {
- .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
- .ob_item = { &_Py_ID(msg), },
- };
- #undef NUM_KEYWORDS
- #define KWTUPLE (&_kwtuple.ob_base.ob_base)
- #else // !Py_BUILD_CORE
- # define KWTUPLE NULL
- #endif // !Py_BUILD_CORE
- static const char * const _keywords[] = {"msg", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .fname = "update",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- PyObject *argsbuf[1];
- PyObject *msg;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- msg = args[0];
- return_value = _hashlib_HMAC_update_impl(self, msg);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_HMAC_digest__doc__,
- "digest($self, /)\n"
- "--\n"
- "\n"
- "Return the digest of the bytes passed to the update() method so far.");
- #define _HASHLIB_HMAC_DIGEST_METHODDEF \
- {"digest", (PyCFunction)_hashlib_HMAC_digest, METH_NOARGS, _hashlib_HMAC_digest__doc__},
- static PyObject *
- _hashlib_HMAC_digest_impl(HMACobject *self);
- static PyObject *
- _hashlib_HMAC_digest(HMACobject *self, PyObject *Py_UNUSED(ignored))
- {
- return _hashlib_HMAC_digest_impl(self);
- }
- PyDoc_STRVAR(_hashlib_HMAC_hexdigest__doc__,
- "hexdigest($self, /)\n"
- "--\n"
- "\n"
- "Return hexadecimal digest of the bytes passed to the update() method so far.\n"
- "\n"
- "This may be used to exchange the value safely in email or other non-binary\n"
- "environments.");
- #define _HASHLIB_HMAC_HEXDIGEST_METHODDEF \
- {"hexdigest", (PyCFunction)_hashlib_HMAC_hexdigest, METH_NOARGS, _hashlib_HMAC_hexdigest__doc__},
- static PyObject *
- _hashlib_HMAC_hexdigest_impl(HMACobject *self);
- static PyObject *
- _hashlib_HMAC_hexdigest(HMACobject *self, PyObject *Py_UNUSED(ignored))
- {
- return _hashlib_HMAC_hexdigest_impl(self);
- }
- PyDoc_STRVAR(_hashlib_get_fips_mode__doc__,
- "get_fips_mode($module, /)\n"
- "--\n"
- "\n"
- "Determine the OpenSSL FIPS mode of operation.\n"
- "\n"
- "For OpenSSL 3.0.0 and newer it returns the state of the default provider\n"
- "in the default OSSL context. It\'s not quite the same as FIPS_mode() but good\n"
- "enough for unittests.\n"
- "\n"
- "Effectively any non-zero return value indicates FIPS mode;\n"
- "values other than 1 may have additional significance.");
- #define _HASHLIB_GET_FIPS_MODE_METHODDEF \
- {"get_fips_mode", (PyCFunction)_hashlib_get_fips_mode, METH_NOARGS, _hashlib_get_fips_mode__doc__},
- static int
- _hashlib_get_fips_mode_impl(PyObject *module);
- static PyObject *
- _hashlib_get_fips_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
- {
- PyObject *return_value = NULL;
- int _return_value;
- _return_value = _hashlib_get_fips_mode_impl(module);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromLong((long)_return_value);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_hashlib_compare_digest__doc__,
- "compare_digest($module, a, b, /)\n"
- "--\n"
- "\n"
- "Return \'a == b\'.\n"
- "\n"
- "This function uses an approach designed to prevent\n"
- "timing analysis, making it appropriate for cryptography.\n"
- "\n"
- "a and b must both be of the same type: either str (ASCII only),\n"
- "or any bytes-like object.\n"
- "\n"
- "Note: If a and b are of different lengths, or if an error occurs,\n"
- "a timing attack could theoretically reveal information about the\n"
- "types and lengths of a and b--but not their values.");
- #define _HASHLIB_COMPARE_DIGEST_METHODDEF \
- {"compare_digest", _PyCFunction_CAST(_hashlib_compare_digest), METH_FASTCALL, _hashlib_compare_digest__doc__},
- static PyObject *
- _hashlib_compare_digest_impl(PyObject *module, PyObject *a, PyObject *b);
- static PyObject *
- _hashlib_compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
- {
- PyObject *return_value = NULL;
- PyObject *a;
- PyObject *b;
- if (!_PyArg_CheckPositional("compare_digest", nargs, 2, 2)) {
- goto exit;
- }
- a = args[0];
- b = args[1];
- return_value = _hashlib_compare_digest_impl(module, a, b);
- exit:
- return return_value;
- }
- #ifndef EVPXOF_DIGEST_METHODDEF
- #define EVPXOF_DIGEST_METHODDEF
- #endif /* !defined(EVPXOF_DIGEST_METHODDEF) */
- #ifndef EVPXOF_HEXDIGEST_METHODDEF
- #define EVPXOF_HEXDIGEST_METHODDEF
- #endif /* !defined(EVPXOF_HEXDIGEST_METHODDEF) */
- #ifndef _HASHLIB_OPENSSL_SHA3_224_METHODDEF
- #define _HASHLIB_OPENSSL_SHA3_224_METHODDEF
- #endif /* !defined(_HASHLIB_OPENSSL_SHA3_224_METHODDEF) */
- #ifndef _HASHLIB_OPENSSL_SHA3_256_METHODDEF
- #define _HASHLIB_OPENSSL_SHA3_256_METHODDEF
- #endif /* !defined(_HASHLIB_OPENSSL_SHA3_256_METHODDEF) */
- #ifndef _HASHLIB_OPENSSL_SHA3_384_METHODDEF
- #define _HASHLIB_OPENSSL_SHA3_384_METHODDEF
- #endif /* !defined(_HASHLIB_OPENSSL_SHA3_384_METHODDEF) */
- #ifndef _HASHLIB_OPENSSL_SHA3_512_METHODDEF
- #define _HASHLIB_OPENSSL_SHA3_512_METHODDEF
- #endif /* !defined(_HASHLIB_OPENSSL_SHA3_512_METHODDEF) */
- #ifndef _HASHLIB_OPENSSL_SHAKE_128_METHODDEF
- #define _HASHLIB_OPENSSL_SHAKE_128_METHODDEF
- #endif /* !defined(_HASHLIB_OPENSSL_SHAKE_128_METHODDEF) */
- #ifndef _HASHLIB_OPENSSL_SHAKE_256_METHODDEF
- #define _HASHLIB_OPENSSL_SHAKE_256_METHODDEF
- #endif /* !defined(_HASHLIB_OPENSSL_SHAKE_256_METHODDEF) */
- #ifndef _HASHLIB_SCRYPT_METHODDEF
- #define _HASHLIB_SCRYPT_METHODDEF
- #endif /* !defined(_HASHLIB_SCRYPT_METHODDEF) */
- /*[clinic end generated code: output=4734184f6555dc95 input=a9049054013a1b77]*/
|