]> git.ipfire.org Git - thirdparty/linux.git/commit
lib/crypto: blake2b: Add BLAKE2b library functions
authorEric Biggers <ebiggers@kernel.org>
Sat, 18 Oct 2025 04:31:02 +0000 (21:31 -0700)
committerEric Biggers <ebiggers@kernel.org>
Thu, 30 Oct 2025 05:04:24 +0000 (22:04 -0700)
commit23a16c9533ed92cc639c8f5bd9eb104809fe2919
treed3235f30a4f80ceef8f3bb95ff2a8f758c063e14
parentc99d30706043481a1d631bbd9c7a4b70fe002a2b
lib/crypto: blake2b: Add BLAKE2b library functions

Add a library API for BLAKE2b, closely modeled after the BLAKE2s API.

This will allow in-kernel users such as btrfs to use BLAKE2b without
going through the generic crypto layer.  In addition, as usual the
BLAKE2b crypto_shash algorithms will be reimplemented on top of this.

Note: to create lib/crypto/blake2b.c I made a copy of
lib/crypto/blake2s.c and made the updates from BLAKE2s => BLAKE2b.  This
way, the BLAKE2s and BLAKE2b code is kept consistent.  Therefore, it
borrows the SPDX-License-Identifier and Copyright from
lib/crypto/blake2s.c rather than crypto/blake2b_generic.c.

The library API uses 'struct blake2b_ctx', consistent with other
lib/crypto/ APIs.  The existing 'struct blake2b_state' will be removed
once the blake2b crypto_shash algorithms are updated to stop using it.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20251018043106.375964-7-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
include/crypto/blake2b.h
include/crypto/internal/blake2b.h
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/blake2b.c [new file with mode: 0644]