crypto: blake2b - add blake2b generic implementation
authorDavid Sterba <dsterba@suse.com>
Thu, 24 Oct 2019 16:28:31 +0000 (18:28 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 1 Nov 2019 05:38:31 +0000 (13:38 +0800)
commit91d689337fe8b7703608a2ec39aae700b99f3933
treeb52ea258572bf402041187bd487855e2e81da12f
parent17513547a87a82b4086e802ac93b5c4e5f644ff1
crypto: blake2b - add blake2b generic implementation

The patch brings support of several BLAKE2 variants (2b with various
digest lengths).  The keyed digest is supported, using tfm->setkey call.
The in-tree user will be btrfs (for checksumming), we're going to use
the BLAKE2b-256 variant.

The code is reference implementation taken from the official sources and
modified in terms of kernel coding style (whitespace, comments, uintXX_t
-> uXX types, removed unused prototypes and #ifdefs, removed testing
code, changed secure_zero_memory -> memzero_explicit, used own helpers
for unaligned reads/writes and rotations).

Further changes removed sanity checks of key length or output size,
these values are verified in the crypto API callbacks or hardcoded in
shash_alg and not exposed to users.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/Kconfig
crypto/Makefile
crypto/blake2b_generic.c [new file with mode: 0644]