diff --git a/OpenSSL/crypto.py b/OpenSSL/crypto.py
index f0ceeb3..7b4b5fc 100644
--- a/OpenSSL/crypto.py
+++ b/OpenSSL/crypto.py
@@ -90,7 +90,14 @@
                 1/0
 
         elif type == TYPE_DSA:
-            pass
+            dsa = _api.DSA_generate_parameters(
+                bits, _api.NULL, 0, _api.NULL, _api.NULL, _api.NULL, _api.NULL)
+            if dsa == _api.NULL:
+                1/0
+            if not _api.DSA_generate_key(dsa):
+                1/0
+            if not _api.EVP_PKEY_assign_DSA(self._pkey, dsa):
+                1/0
         else:
             raise Error("No such key type")
 
@@ -106,6 +113,9 @@
         :raise TypeError: if the key is of a type which cannot be checked.
             Only RSA keys can currently be checked.
         """
+        if self._only_public:
+            raise TypeError("public key only")
+
         if _api.EVP_PKEY_type(self._pkey.type) != _api.EVP_PKEY_RSA:
             raise TypeError("key type unsupported")
 
@@ -116,6 +126,25 @@
         _raise_current_error()
 
 
+    def type(self):
+        """
+        Returns the type of the key
+
+        :return: The type of the key.
+        """
+        return self._pkey.type
+
+
+    def bits(self):
+        """
+        Returns the number of bits of the key
+
+        :return: The number of bits of the key.
+        """
+        return _api.EVP_PKEY_bits(self._pkey)
+PKeyType = PKey
+
+
 
 class X509Name(object):
     def __init__(self, name):
