slightly better PKey invalid bit tests, and a fix for older versions of OpenSSL
diff --git a/src/crypto/pkey.c b/src/crypto/pkey.c
index 07fe423..0c2bea6 100644
--- a/src/crypto/pkey.c
+++ b/src/crypto/pkey.c
@@ -50,6 +50,10 @@
     switch (type)
     {
         case crypto_TYPE_RSA:
+            if (bits <= 0) {
+                PyErr_SetString(PyExc_ValueError, "Invalid number of bits");
+                return NULL;
+            }
             if ((rsa = RSA_generate_key(bits, 0x10001, NULL, NULL)) == NULL)
                 FAIL();
             if (!EVP_PKEY_assign_RSA(self->pkey, rsa))