xref: /linux/Documentation/crypto/libcrypto-hash.rst (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*e9af4f47SEric Biggers.. SPDX-License-Identifier: GPL-2.0-or-later
2*e9af4f47SEric Biggers
3*e9af4f47SEric BiggersHash functions, MACs, and XOFs
4*e9af4f47SEric Biggers==============================
5*e9af4f47SEric Biggers
6*e9af4f47SEric BiggersAES-CMAC and AES-XCBC-MAC
7*e9af4f47SEric Biggers-------------------------
8*e9af4f47SEric Biggers
9*e9af4f47SEric BiggersSupport for the AES-CMAC and AES-XCBC-MAC message authentication codes.
10*e9af4f47SEric Biggers
11*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/aes-cbc-macs.h
12*e9af4f47SEric Biggers
13*e9af4f47SEric BiggersBLAKE2b
14*e9af4f47SEric Biggers-------
15*e9af4f47SEric Biggers
16*e9af4f47SEric BiggersSupport for the BLAKE2b cryptographic hash function.
17*e9af4f47SEric Biggers
18*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/blake2b.h
19*e9af4f47SEric Biggers
20*e9af4f47SEric BiggersBLAKE2s
21*e9af4f47SEric Biggers-------
22*e9af4f47SEric Biggers
23*e9af4f47SEric BiggersSupport for the BLAKE2s cryptographic hash function.
24*e9af4f47SEric Biggers
25*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/blake2s.h
26*e9af4f47SEric Biggers
27*e9af4f47SEric BiggersGHASH and POLYVAL
28*e9af4f47SEric Biggers-----------------
29*e9af4f47SEric Biggers
30*e9af4f47SEric BiggersSupport for the GHASH and POLYVAL universal hash functions.  These algorithms
31*e9af4f47SEric Biggersare used only as internal components of other algorithms.
32*e9af4f47SEric Biggers
33*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/gf128hash.h
34*e9af4f47SEric Biggers
35*e9af4f47SEric BiggersMD5
36*e9af4f47SEric Biggers---
37*e9af4f47SEric Biggers
38*e9af4f47SEric BiggersSupport for the MD5 cryptographic hash function and HMAC-MD5.  This algorithm is
39*e9af4f47SEric Biggersobsolete and is supported only for backwards compatibility.
40*e9af4f47SEric Biggers
41*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/md5.h
42*e9af4f47SEric Biggers
43*e9af4f47SEric BiggersNH
44*e9af4f47SEric Biggers--
45*e9af4f47SEric Biggers
46*e9af4f47SEric BiggersSupport for the NH universal hash function.  This algorithm is used only as an
47*e9af4f47SEric Biggersinternal component of other algorithms.
48*e9af4f47SEric Biggers
49*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/nh.h
50*e9af4f47SEric Biggers
51*e9af4f47SEric BiggersPoly1305
52*e9af4f47SEric Biggers--------
53*e9af4f47SEric Biggers
54*e9af4f47SEric BiggersSupport for the Poly1305 universal hash function.  This algorithm is used only
55*e9af4f47SEric Biggersas an internal component of other algorithms.
56*e9af4f47SEric Biggers
57*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/poly1305.h
58*e9af4f47SEric Biggers
59*e9af4f47SEric BiggersSHA-1
60*e9af4f47SEric Biggers-----
61*e9af4f47SEric Biggers
62*e9af4f47SEric BiggersSupport for the SHA-1 cryptographic hash function and HMAC-SHA1.  This algorithm
63*e9af4f47SEric Biggersis obsolete and is supported only for backwards compatibility.
64*e9af4f47SEric Biggers
65*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/sha1.h
66*e9af4f47SEric Biggers
67*e9af4f47SEric BiggersSHA-2
68*e9af4f47SEric Biggers-----
69*e9af4f47SEric Biggers
70*e9af4f47SEric BiggersSupport for the SHA-2 family of cryptographic hash functions, including SHA-224,
71*e9af4f47SEric BiggersSHA-256, SHA-384, and SHA-512.  This also includes their corresponding HMACs:
72*e9af4f47SEric BiggersHMAC-SHA224, HMAC-SHA256, HMAC-SHA384, and HMAC-SHA512.
73*e9af4f47SEric Biggers
74*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/sha2.h
75*e9af4f47SEric Biggers
76*e9af4f47SEric BiggersSHA-3
77*e9af4f47SEric Biggers-----
78*e9af4f47SEric Biggers
79*e9af4f47SEric BiggersThe SHA-3 functions are documented in :ref:`sha3`.
80*e9af4f47SEric Biggers
81*e9af4f47SEric BiggersSM3
82*e9af4f47SEric Biggers---
83*e9af4f47SEric Biggers
84*e9af4f47SEric BiggersSupport for the SM3 cryptographic hash function.
85*e9af4f47SEric Biggers
86*e9af4f47SEric Biggers.. kernel-doc:: include/crypto/sm3.h
87