crypto: blake2s - generic C library implementation and selftest
authorJason A. Donenfeld <Jason@zx2c4.com>
Fri, 8 Nov 2019 12:22:28 +0000 (13:22 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sun, 17 Nov 2019 01:02:42 +0000 (09:02 +0800)
commit66d7fb94e4ffe5acc589e0b2b4710aecc1f07a28
tree847e0581e3048df9a062f831f1a1065675de1940
parentc12d3362a74bf0cd9e1d488918d40607b62a3104
crypto: blake2s - generic C library implementation and selftest

The C implementation was originally based on Samuel Neves' public
domain reference implementation but has since been heavily modified
for the kernel. We're able to do compile-time optimizations by moving
some scaffolding around the final function into the header file.

Information: https://blake2.net/

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Samuel Neves <sneves@dei.uc.pt>
Co-developed-by: Samuel Neves <sneves@dei.uc.pt>
[ardb: - move from lib/zinc to lib/crypto
       - remove simd handling
       - rewrote selftest for better coverage
       - use fixed digest length for blake2s_hmac() and rename to
         blake2s256_hmac() ]
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
include/crypto/blake2s.h [new file with mode: 0644]
include/crypto/internal/blake2s.h [new file with mode: 0644]
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/blake2s-generic.c [new file with mode: 0644]
lib/crypto/blake2s-selftest.c [new file with mode: 0644]
lib/crypto/blake2s.c [new file with mode: 0644]