diff --git a/doc/api/crypto.rst b/doc/api/crypto.rst
index 293a8a3..6dd6a43 100644
--- a/doc/api/crypto.rst
+++ b/doc/api/crypto.rst
@@ -24,23 +24,17 @@
 
     A class representing Revocation objects of CRL.
 
-
-.. py:data:: FILETYPE_PEM
-             FILETYPE_ASN1
-
-    File type constants.
-
-
 .. py:data:: TYPE_RSA
              TYPE_DSA
 
     Key type constants.
 
-
 .. py:exception:: Error
 
     Generic exception used in the :py:mod:`.crypto` module.
 
+Elliptic curves
+---------------
 
 .. py:function:: get_elliptic_curves
 
@@ -64,17 +58,43 @@
     If the named curve is not supported then :py:class:`ValueError` is raised.
 
 
+Serialization and deserialization
+---------------------------------
+
+The following serialization functions take one of these constants to
+determine the format:
+
+.. py:data:: FILETYPE_PEM
+             FILETYPE_ASN1
+
+Certificates
+~~~~~~~~~~~~
+
 .. py:function:: dump_certificate(type, cert)
 
     Dump the certificate *cert* into a buffer string encoded with the type
     *type*.
 
+.. py:function:: load_certificate(type, buffer)
+
+    Load a certificate (X509) from the string *buffer* encoded with the
+    type *type*.
+
+Certificate signing requests
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. py:function:: dump_certificate_request(type, req)
 
     Dump the certificate request *req* into a buffer string encoded with the
     type *type*.
 
+.. py:function:: load_certificate_request(type, buffer)
+
+    Load a certificate request (X509Req) from the string *buffer* encoded with
+    the type *type*.
+
+Private keys
+~~~~~~~~~~~~
 
 .. py:function:: dump_privatekey(type, pkey[, cipher, passphrase])
 
@@ -85,19 +105,6 @@
     *passphrase* must be either a string or a callback for providing the
     pass phrase.
 
-
-.. py:function:: load_certificate(type, buffer)
-
-    Load a certificate (X509) from the string *buffer* encoded with the
-    type *type*.
-
-
-.. py:function:: load_certificate_request(type, buffer)
-
-    Load a certificate request (X509Req) from the string *buffer* encoded with
-    the type *type*.
-
-
 .. py:function:: load_privatekey(type, buffer[, passphrase])
 
     Load a private key (PKey) from the string *buffer* encoded with the type
@@ -107,6 +114,8 @@
     *passphrase* must be either a string or a callback for providing the pass
     phrase.
 
+Certificate revocation lists
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. py:function:: load_crl(type, buffer)
 
@@ -128,6 +137,8 @@
 
     See also the man page for the C function :py:func:`PKCS12_parse`.
 
+Signing and verifying signatures
+--------------------------------
 
 .. py:function:: sign(key, data, digest)
 
@@ -208,27 +219,22 @@
 
     FIXME
 
-
 .. py:method:: PKCS7.type_is_enveloped()
 
     FIXME
 
-
 .. py:method:: PKCS7.type_is_signedAndEnveloped()
 
     FIXME
 
-
 .. py:method:: PKCS7.type_is_data()
 
     FIXME
 
-
 .. py:method:: PKCS7.get_type_name()
 
     Get the type name of the PKCS7.
 
-
 .. _openssl-pkcs12:
 
 PKCS12 objects
@@ -309,17 +315,14 @@
 
     Return a base64-encoded string representation of the object.
 
-
 .. py:method:: NetscapeSPKI.get_pubkey()
 
     Return the public key of object.
 
-
 .. py:method:: NetscapeSPKI.set_pubkey(key)
 
     Set the public key of the object to *key*.
 
-
 .. py:method:: NetscapeSPKI.sign(key, digest_name)
 
     Sign the NetscapeSPKI object using the given *key* and *digest_name*.
@@ -327,12 +330,10 @@
     OpenSSL (by EVP_get_digestbyname, specifically).  For example,
     :py:const:`"md5"` or :py:const:`"sha1"`.
 
-
 .. py:method:: NetscapeSPKI.verify(key)
 
     Verify the NetscapeSPKI object using the given *key*.
 
-
 .. _crl:
 
 CRL objects
@@ -367,7 +368,6 @@
 
     Return a list of all supported reasons.
 
-
 .. py:method:: Revoked.get_reason()
 
     Return the revocation reason as a str.  Can be
