Jason R. Coombs committed 238c37e

Issue 18532: Added tests and documentation to formally specify the .name attribute on hashlib objects.

  • Participants
  • Parent commits f4f81eb

Comments (0)

Files changed (2)

File Doc/library/hashlib.rst

    The internal block size of the hash algorithm in bytes.
+A hash object has the following attributes:
+.. attribute::
+   The canonical name of this hash, always lowercase and always suitable as a
+   parameter to :func:`new` to create another hash of this type.
+   .. versionchanged:: 3.4
+      The name attribute has been present in CPython since its inception, but
+      until Python 3.4 was not formally specified, so may not exist on some
+      platforms.
 A hash object has the following methods:

File Lib/test/

             assert isinstance(h.digest(), bytes), name
             self.assertEqual(hexstr(h.digest()), h.hexdigest())
+    def test_name_attribute(self):
+        for cons in self.hash_constructors:
+            h = cons()
+            assert isinstance(, str), "No name attribute"
+            assert in self.supported_hash_names
     def test_large_update(self):
         aas = b'a' * 128