diff --git a/OpenSSL/crypto.py b/OpenSSL/crypto.py
index 4f0e7f2..ba83efe 100644
--- a/OpenSSL/crypto.py
+++ b/OpenSSL/crypto.py
@@ -1838,20 +1838,23 @@
         export a CRL as a string
 
         :param cert: Used to sign CRL.
+
         :type cert: :class:`X509`
 
         :param key: Used to sign CRL.
+
         :type key: :class:`PKey`
 
-        :param type: The export format, either :py:data:`FILETYPE_PEM`, :py:data:`FILETYPE_ASN1`, or :py:data:`FILETYPE_TEXT`.
-
+        :param type: The export format, either :py:data:`FILETYPE_PEM`,
+            :py:data:`FILETYPE_ASN1`, or :py:data:`FILETYPE_TEXT`.
         :param days: The number of days until the next update of this CRL.
+
         :type days: :py:data:`int`
 
-        :param digest: The message digest to use (eg ``"sha1"``).
-        :type digest: :py:data:`str`
+        :param bytes digest: The name of the message digest to use (eg
+            ``b"sha1"``).
 
-        :return: :py:data:`str`
+        :return: :py:data:`bytes`
         """
         if not isinstance(cert, X509):
             raise TypeError("cert must be an X509 instance")
@@ -1867,9 +1870,9 @@
                 category=DeprecationWarning,
                 stacklevel=2,
             )
-            digest = "md5"
+            digest = b"md5"
 
-        digest_obj = _lib.EVP_get_digestbyname(_byte_string(digest))
+        digest_obj = _lib.EVP_get_digestbyname(digest)
         if digest_obj == _ffi.NULL:
             raise ValueError("No such digest method")
 
diff --git a/OpenSSL/test/test_crypto.py b/OpenSSL/test/test_crypto.py
index b827281..7f70091 100644
--- a/OpenSSL/test/test_crypto.py
+++ b/OpenSSL/test/test_crypto.py
@@ -3073,11 +3073,25 @@
         signature algorithm based on that digest function.
         """
         crl = self._get_crl()
-        dumped_crl = crl.export(self.cert, self.pkey, digest='sha1')
+        dumped_crl = crl.export(self.cert, self.pkey, digest=b"sha1")
         text = _runopenssl(dumped_crl, b"crl", b"-noout", b"-text")
         text.index(b('Signature Algorithm: sha1'))
 
 
+    def test_export_md5_digest(self):
+        """
+        If passed md5 as the digest function, ``CRL.export`` uses md5 and does
+        not emit a deprecation warning.
+        """
+        crl = self._get_crl()
+        with catch_warnings(record=True) as catcher:
+            simplefilter("always")
+            self.assertEqual(0, len(catcher))
+        dumped_crl = crl.export(self.cert, self.pkey, digest=b"md5")
+        text = _runopenssl(dumped_crl, b"crl", b"-noout", b"-text")
+        text.index(b('Signature Algorithm: md5'))
+
+
     def test_export_default_digest(self):
         """
         If not passed the name of a digest function, ``CRL.export`` uses a
