Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 327dd73

Browse files
committed
Issue #18742: Expose the internal hash type object for ABCs.
1 parent e535107 commit 327dd73

6 files changed

Lines changed: 55 additions & 8 deletions

File tree

Modules/_hashopenssl.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -872,10 +872,8 @@ PyInit__hashlib(void)
872872
return NULL;
873873
}
874874

875-
#if HASH_OBJ_CONSTRUCTOR
876-
Py_INCREF(&EVPtype);
875+
Py_INCREF((PyObject *)&EVPtype);
877876
PyModule_AddObject(m, "HASH", (PyObject *)&EVPtype);
878-
#endif
879877

880878
/* these constants are used by the convenience constructors */
881879
INIT_CONSTRUCTOR_CONSTANTS(md5);

Modules/_sha3/sha3module.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,10 +576,18 @@ static struct PyModuleDef _SHA3module = {
576576
PyMODINIT_FUNC
577577
PyInit__sha3(void)
578578
{
579+
PyObject *m;
580+
579581
Py_TYPE(&SHA3type) = &PyType_Type;
580582
if (PyType_Ready(&SHA3type) < 0) {
581583
return NULL;
582584
}
583585

584-
return PyModule_Create(&_SHA3module);
586+
m = PyModule_Create(&_SHA3module);
587+
if (m == NULL)
588+
return NULL;
589+
590+
Py_INCREF((PyObject *)&SHA3type);
591+
PyModule_AddObject(m, "SHA3Type", (PyObject *)&SHA3type);
592+
return m;
585593
}

Modules/md5module.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,17 @@ static struct PyModuleDef _md5module = {
572572
PyMODINIT_FUNC
573573
PyInit__md5(void)
574574
{
575+
PyObject *m;
576+
575577
Py_TYPE(&MD5type) = &PyType_Type;
576578
if (PyType_Ready(&MD5type) < 0)
577579
return NULL;
578-
return PyModule_Create(&_md5module);
580+
581+
m = PyModule_Create(&_md5module);
582+
if (m == NULL)
583+
return NULL;
584+
585+
Py_INCREF((PyObject *)&MD5type);
586+
PyModule_AddObject(m, "MD5Type", (PyObject *)&MD5type);
587+
return m;
579588
}

Modules/sha1module.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,8 +544,17 @@ static struct PyModuleDef _sha1module = {
544544
PyMODINIT_FUNC
545545
PyInit__sha1(void)
546546
{
547+
PyObject *m;
548+
547549
Py_TYPE(&SHA1type) = &PyType_Type;
548550
if (PyType_Ready(&SHA1type) < 0)
549551
return NULL;
550-
return PyModule_Create(&_sha1module);
552+
553+
m = PyModule_Create(&_sha1module);
554+
if (m == NULL)
555+
return NULL;
556+
557+
Py_INCREF((PyObject *)&SHA1type);
558+
PyModule_AddObject(m, "SHA1Type", (PyObject *)&SHA1type);
559+
return m;
551560
}

Modules/sha256module.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -706,11 +706,23 @@ static struct PyModuleDef _sha256module = {
706706
PyMODINIT_FUNC
707707
PyInit__sha256(void)
708708
{
709+
PyObject *m;
710+
709711
Py_TYPE(&SHA224type) = &PyType_Type;
710712
if (PyType_Ready(&SHA224type) < 0)
711713
return NULL;
712714
Py_TYPE(&SHA256type) = &PyType_Type;
713715
if (PyType_Ready(&SHA256type) < 0)
714716
return NULL;
715-
return PyModule_Create(&_sha256module);
717+
718+
m = PyModule_Create(&_sha256module);
719+
if (m == NULL)
720+
return NULL;
721+
722+
Py_INCREF((PyObject *)&SHA224type);
723+
PyModule_AddObject(m, "SHA224Type", (PyObject *)&SHA224type);
724+
Py_INCREF((PyObject *)&SHA256type);
725+
PyModule_AddObject(m, "SHA256Type", (PyObject *)&SHA256type);
726+
return m;
727+
716728
}

Modules/sha512module.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -772,13 +772,24 @@ static struct PyModuleDef _sha512module = {
772772
PyMODINIT_FUNC
773773
PyInit__sha512(void)
774774
{
775+
PyObject *m;
776+
775777
Py_TYPE(&SHA384type) = &PyType_Type;
776778
if (PyType_Ready(&SHA384type) < 0)
777779
return NULL;
778780
Py_TYPE(&SHA512type) = &PyType_Type;
779781
if (PyType_Ready(&SHA512type) < 0)
780782
return NULL;
781-
return PyModule_Create(&_sha512module);
783+
784+
m = PyModule_Create(&_sha512module);
785+
if (m == NULL)
786+
return NULL;
787+
788+
Py_INCREF((PyObject *)&SHA384type);
789+
PyModule_AddObject(m, "SHA384Type", (PyObject *)&SHA384type);
790+
Py_INCREF((PyObject *)&SHA512type);
791+
PyModule_AddObject(m, "SHA512Type", (PyObject *)&SHA512type);
792+
return m;
782793
}
783794

784795
#endif

0 commit comments

Comments
 (0)