]> granicus.if.org Git - python/commitdiff
Issue #18742: Expose the internal hash type object for ABCs.
authorChristian Heimes <christian@cheimes.de>
Tue, 22 Oct 2013 13:05:23 +0000 (15:05 +0200)
committerChristian Heimes <christian@cheimes.de>
Tue, 22 Oct 2013 13:05:23 +0000 (15:05 +0200)
Modules/_hashopenssl.c
Modules/_sha3/sha3module.c
Modules/md5module.c
Modules/sha1module.c
Modules/sha256module.c
Modules/sha512module.c

index 222e5efe5e0c7e86c663822e45665a9f7469dd81..423b3b3a47641b7a9dfb52d9d05b4da759297209 100644 (file)
@@ -872,10 +872,8 @@ PyInit__hashlib(void)
         return NULL;
     }
 
-#if HASH_OBJ_CONSTRUCTOR
-    Py_INCREF(&EVPtype);
+    Py_INCREF((PyObject *)&EVPtype);
     PyModule_AddObject(m, "HASH", (PyObject *)&EVPtype);
-#endif
 
     /* these constants are used by the convenience constructors */
     INIT_CONSTRUCTOR_CONSTANTS(md5);
index 4e6352b7baf5b28b7fd123eb92f98e5cb5fe103e..71127d0b76c53d3dbe344ba015f0f8aff4ccbc0a 100644 (file)
@@ -576,10 +576,18 @@ static struct PyModuleDef _SHA3module = {
 PyMODINIT_FUNC
 PyInit__sha3(void)
 {
+    PyObject *m;
+
     Py_TYPE(&SHA3type) = &PyType_Type;
     if (PyType_Ready(&SHA3type) < 0) {
         return NULL;
     }
 
-    return PyModule_Create(&_SHA3module);
+    m = PyModule_Create(&_SHA3module);
+    if (m == NULL)
+        return NULL;
+
+    Py_INCREF((PyObject *)&SHA3type);
+    PyModule_AddObject(m, "SHA3Type", (PyObject *)&SHA3type);
+    return m;
 }
index bb91b6c369852127f9bff909e56dda06bf27f902..5cb3d36c9b09c21ffd844751da04fc79a8c3a319 100644 (file)
@@ -572,8 +572,17 @@ static struct PyModuleDef _md5module = {
 PyMODINIT_FUNC
 PyInit__md5(void)
 {
+    PyObject *m;
+
     Py_TYPE(&MD5type) = &PyType_Type;
     if (PyType_Ready(&MD5type) < 0)
         return NULL;
-    return PyModule_Create(&_md5module);
+
+    m = PyModule_Create(&_md5module);
+    if (m == NULL)
+        return NULL;
+
+    Py_INCREF((PyObject *)&MD5type);
+    PyModule_AddObject(m, "MD5Type", (PyObject *)&MD5type);
+    return m;
 }
index 403194c06be8a0e1c079dc19304880dc5f95afcc..b44fe189d267f54cf57cc9fb8db6e1c12650cf5d 100644 (file)
@@ -544,8 +544,17 @@ static struct PyModuleDef _sha1module = {
 PyMODINIT_FUNC
 PyInit__sha1(void)
 {
+    PyObject *m;
+
     Py_TYPE(&SHA1type) = &PyType_Type;
     if (PyType_Ready(&SHA1type) < 0)
         return NULL;
-    return PyModule_Create(&_sha1module);
+
+    m = PyModule_Create(&_sha1module);
+    if (m == NULL)
+        return NULL;
+
+    Py_INCREF((PyObject *)&SHA1type);
+    PyModule_AddObject(m, "SHA1Type", (PyObject *)&SHA1type);
+    return m;
 }
index e60111ad02d4c467ac33aecc4ab789be18181db3..b05bfc172f517ac62a46e97ed8fffee9e067a142 100644 (file)
@@ -706,11 +706,23 @@ static struct PyModuleDef _sha256module = {
 PyMODINIT_FUNC
 PyInit__sha256(void)
 {
+    PyObject *m;
+
     Py_TYPE(&SHA224type) = &PyType_Type;
     if (PyType_Ready(&SHA224type) < 0)
         return NULL;
     Py_TYPE(&SHA256type) = &PyType_Type;
     if (PyType_Ready(&SHA256type) < 0)
         return NULL;
-    return PyModule_Create(&_sha256module);
+
+    m = PyModule_Create(&_sha256module);
+    if (m == NULL)
+        return NULL;
+
+    Py_INCREF((PyObject *)&SHA224type);
+    PyModule_AddObject(m, "SHA224Type", (PyObject *)&SHA224type);
+    Py_INCREF((PyObject *)&SHA256type);
+    PyModule_AddObject(m, "SHA256Type", (PyObject *)&SHA256type);
+    return m;
+
 }
index 2841eabb2bfe9a639c61bfae5ea6cd6e31d63be1..47c57e5c428f106f9e99cdf2bf0627bc4f3be995 100644 (file)
@@ -772,13 +772,24 @@ static struct PyModuleDef _sha512module = {
 PyMODINIT_FUNC
 PyInit__sha512(void)
 {
+    PyObject *m;
+
     Py_TYPE(&SHA384type) = &PyType_Type;
     if (PyType_Ready(&SHA384type) < 0)
         return NULL;
     Py_TYPE(&SHA512type) = &PyType_Type;
     if (PyType_Ready(&SHA512type) < 0)
         return NULL;
-    return PyModule_Create(&_sha512module);
+
+    m = PyModule_Create(&_sha512module);
+    if (m == NULL)
+        return NULL;
+
+    Py_INCREF((PyObject *)&SHA384type);
+    PyModule_AddObject(m, "SHA384Type", (PyObject *)&SHA384type);
+    Py_INCREF((PyObject *)&SHA512type);
+    PyModule_AddObject(m, "SHA512Type", (PyObject *)&SHA512type);
+    return m;
 }
 
 #endif