OpenSSL.crypto builds without warnings
diff --git a/OpenSSL/crypto/revoked.c b/OpenSSL/crypto/revoked.c
index 3042c4d..95cfcf4 100644
--- a/OpenSSL/crypto/revoked.c
+++ b/OpenSSL/crypto/revoked.c
@@ -36,7 +36,7 @@
     list = PyList_New(0);
     for (j = 0; j < NUM_REASONS; j++) {
         if(crl_reasons[j]) {
-            str = PyString_FromString(crl_reasons[j]);
+            str = PyBytes_FromString(crl_reasons[j]);
             PyList_Append(list, str);
             Py_DECREF(str);
         }
@@ -66,7 +66,7 @@
 
     /* Convert to a Python string. */
     str_len = BIO_get_mem_data(bio, &tmp_str);
-    str = PyString_FromStringAndSize(tmp_str, str_len);
+    str = PyBytes_FromStringAndSize(tmp_str, str_len);
 
     /* Cleanup */
     BIO_free(bio);
@@ -256,7 +256,7 @@
 
     /* Convert to a Python string. */
     str_len = BIO_get_mem_data(bio, &tmp_str);
-    str = PyString_FromStringAndSize(tmp_str, str_len);
+    str = PyBytes_FromStringAndSize(tmp_str, str_len);
 
     /* Cleanup */
     BIO_free(bio);
@@ -362,11 +362,6 @@
 #undef ADD_METHOD
 
 
-static PyObject *
-crypto_Revoked_getattr(crypto_RevokedObj *self, char *name) {
-    return Py_FindMethod(crypto_Revoked_methods, (PyObject *)self, name);
-}
-
 static void
 crypto_Revoked_dealloc(crypto_RevokedObj *self) {
     X509_REVOKED_free(self->revoked);
@@ -392,14 +387,13 @@
 }
 
 PyTypeObject crypto_Revoked_Type = {
-    PyObject_HEAD_INIT(NULL)
-    0,
+    PyVarObject_HEAD_INIT(&PyType_Type, 0)
     "Revoked",
     sizeof(crypto_RevokedObj),
     0,
     (destructor)crypto_Revoked_dealloc,
     NULL, /* print */
-    (getattrfunc)crypto_Revoked_getattr,
+    NULL, /* getattr */
     NULL, /* setattr */
     NULL, /* compare */
     NULL, /* repr */