bpo-1635741: Port _crypt extension module to multiphase initialization (PEP 489) (GH-18404)

diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-02-07-12-57-40.bpo-1635741.ySW6gq.rst b/Misc/NEWS.d/next/Core and Builtins/2020-02-07-12-57-40.bpo-1635741.ySW6gq.rst
new file mode 100644
index 0000000..6b35bdc
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-02-07-12-57-40.bpo-1635741.ySW6gq.rst
@@ -0,0 +1 @@
+Port _crypt extension module to multiphase initialization (:pep:`489`).
\ No newline at end of file
diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
index 00c1f4f..a95f55a 100644
--- a/Modules/_cryptmodule.c
+++ b/Modules/_cryptmodule.c
@@ -54,14 +54,17 @@
     {NULL,              NULL}           /* sentinel */
 };
 
+static PyModuleDef_Slot _crypt_slots[] = {
+    {0, NULL}
+};
 
 static struct PyModuleDef cryptmodule = {
     PyModuleDef_HEAD_INIT,
     "_crypt",
     NULL,
-    -1,
+    0,
     crypt_methods,
-    NULL,
+    _crypt_slots,
     NULL,
     NULL,
     NULL
@@ -70,5 +73,5 @@
 PyMODINIT_FUNC
 PyInit__crypt(void)
 {
-    return PyModule_Create(&cryptmodule);
+    return PyModuleDef_Init(&cryptmodule);
 }