Fix type definitions, module init return values, and unicode/bytes conversions
diff --git a/OpenSSL/crypto/crypto.c b/OpenSSL/crypto/crypto.c
index d71e3ec..87f3e75 100644
--- a/OpenSSL/crypto/crypto.c
+++ b/OpenSSL/crypto/crypto.c
@@ -805,7 +805,7 @@
 #endif
 
     if (module == NULL) {
-        return NULL;
+        PyOpenSSL_MODRETURN(NULL);
     }
 
 #ifndef PY3
@@ -863,14 +863,9 @@
     if (!init_crypto_revoked(module))
         goto error;
 
-#ifdef PY3
-    return module;
-#endif
+    PyOpenSSL_MODRETURN(module);
 
 error:
-#ifdef PY3
-    return NULL;
-#else
+    PyOpenSSL_MODRETURN(NULL);
     ;
-#endif
 }