:mod:`hashlib` objects.
-Module
-======
-
Creating hash objects
---------------------
Examples
-========
+--------
Simple hashing
---------------
+^^^^^^^^^^^^^^
To calculate hash of some data, you should first construct a hash object by
calling the appropriate constructor function (:func:`blake2b` or
Using different digest sizes
-----------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BLAKE2 has configurable size of digests up to 64 bytes for BLAKE2b and up to 32
bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without changing
Keyed hashing
--------------
+^^^^^^^^^^^^^
Keyed hashing can be used for authentication as a faster and simpler
replacement for `Hash-based message authentication code
Randomized hashing
-------------------
+^^^^^^^^^^^^^^^^^^
By setting *salt* parameter users can introduce randomization to the hash
function. Randomized hashing is useful for protecting against collision attacks
Personalization
----------------
+^^^^^^^^^^^^^^^
Sometimes it is useful to force hash function to produce different digests for
the same input for different purposes. Quoting the authors of the Skein hash
G9GtHFE1YluXY1zWPlYk1e/nWfu0WSEb0KRcjhDeP/o=
Tree mode
----------
+^^^^^^^^^
Here's an example of hashing a minimal tree with two leaf nodes::
'3ad2a9b37c6070e374c7a8c508fe20ca86b6ed54e286e93a0318e95e881db5aa'
Credits
-=======
+-------
BLAKE2_ was designed by *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko
Wilcox-O'Hearn*, and *Christian Winnerlein* based on SHA-3_ finalist BLAKE_