From: Eric Biggers <ebiggers@kernel.org>
To: linux-crypto@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, linux-btrfs@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Ard Biesheuvel <ardb@kernel.org>,
"Jason A . Donenfeld" <Jason@zx2c4.com>,
Eric Biggers <ebiggers@kernel.org>
Subject: [PATCH 00/10] BLAKE2b library API
Date: Fri, 17 Oct 2025 21:30:56 -0700 [thread overview]
Message-ID: <20251018043106.375964-1-ebiggers@kernel.org> (raw)
This series can also be retrieved from:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git blake2b-lib-v1
This series adds BLAKE2b support to lib/crypto/ and reimplements the
blake2b-* crypto_shash algorithms on top of it.
To prepare for that, patches 1-4 clean up the BLAKE2s library code a
bit, and patch 5 adds some missing 64-bit byteorder helper functions.
Patches 6-8 add the BLAKE2b library API (closely mirroring the BLAKE2s
one), and patch 9 makes crypto_shash use it. As usual, the library APIs
are documented (with kerneldoc) and tested (with KUnit).
With that done, all of btrfs's checksum algorithms have library APIs.
So patch 10 converts btrfs to use the library APIs instead of shash.
This has quite a few benefits, as detailed in that patch.
Patches 1-9 are targeting libcrypto-next for 6.19. Patch 10 can go
through the btrfs tree later.
Eric Biggers (10):
lib/crypto: blake2s: Adjust parameter order of blake2s()
lib/crypto: blake2s: Rename blake2s_state to blake2s_ctx
lib/crypto: blake2s: Drop excessive const & rename block => data
lib/crypto: blake2s: Document the BLAKE2s library API
byteorder: Add le64_to_cpu_array() and cpu_to_le64_array()
lib/crypto: blake2b: Add BLAKE2b library functions
lib/crypto: arm/blake2b: Migrate optimized code into library
lib/crypto: tests: Add KUnit tests for BLAKE2b
crypto: blake2b - Reimplement using library API
btrfs: switch to library APIs for checksums
arch/arm/crypto/Kconfig | 16 -
arch/arm/crypto/Makefile | 2 -
arch/arm/crypto/blake2b-neon-glue.c | 104 ------
crypto/Kconfig | 3 +-
crypto/Makefile | 3 +-
crypto/blake2b.c | 111 ++++++
crypto/blake2b_generic.c | 192 ----------
crypto/testmgr.c | 4 +
drivers/char/random.c | 6 +-
drivers/net/wireguard/cookie.c | 18 +-
drivers/net/wireguard/noise.c | 32 +-
fs/btrfs/Kconfig | 8 +-
fs/btrfs/compression.c | 1 -
fs/btrfs/disk-io.c | 68 +---
fs/btrfs/file-item.c | 4 -
fs/btrfs/fs.c | 97 ++++-
fs/btrfs/fs.h | 23 +-
fs/btrfs/inode.c | 13 +-
fs/btrfs/scrub.c | 16 +-
fs/btrfs/super.c | 4 -
fs/btrfs/sysfs.c | 6 +-
include/crypto/blake2b.h | 143 ++++++--
include/crypto/blake2s.h | 126 +++++--
include/crypto/internal/blake2b.h | 101 ------
include/linux/byteorder/generic.h | 16 +
lib/crypto/Kconfig | 11 +
lib/crypto/Makefile | 10 +
.../crypto/arm}/blake2b-neon-core.S | 29 +-
lib/crypto/arm/blake2b.h | 41 +++
lib/crypto/arm/blake2s-core.S | 14 +-
lib/crypto/arm/blake2s.h | 4 +-
lib/crypto/blake2b.c | 174 +++++++++
lib/crypto/blake2s.c | 66 ++--
lib/crypto/tests/Kconfig | 9 +
lib/crypto/tests/Makefile | 1 +
lib/crypto/tests/blake2b-testvecs.h | 342 ++++++++++++++++++
lib/crypto/tests/blake2b_kunit.c | 133 +++++++
lib/crypto/tests/blake2s_kunit.c | 39 +-
lib/crypto/x86/blake2s.h | 22 +-
scripts/crypto/gen-hash-testvecs.py | 29 +-
40 files changed, 1333 insertions(+), 708 deletions(-)
delete mode 100644 arch/arm/crypto/blake2b-neon-glue.c
create mode 100644 crypto/blake2b.c
delete mode 100644 crypto/blake2b_generic.c
delete mode 100644 include/crypto/internal/blake2b.h
rename {arch/arm/crypto => lib/crypto/arm}/blake2b-neon-core.S (94%)
create mode 100644 lib/crypto/arm/blake2b.h
create mode 100644 lib/crypto/blake2b.c
create mode 100644 lib/crypto/tests/blake2b-testvecs.h
create mode 100644 lib/crypto/tests/blake2b_kunit.c
base-commit: 123fa1574bccee87da735d13e89c931e88288b40
--
2.51.1.dirty
next reply other threads:[~2025-10-18 4:36 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-18 4:30 Eric Biggers [this message]
2025-10-18 4:30 ` [PATCH 01/10] lib/crypto: blake2s: Adjust parameter order of blake2s() Eric Biggers
2025-10-19 14:36 ` Jason A. Donenfeld
2025-10-19 16:07 ` Eric Biggers
2025-10-20 17:44 ` Jason A. Donenfeld
2025-10-18 4:30 ` [PATCH 02/10] lib/crypto: blake2s: Rename blake2s_state to blake2s_ctx Eric Biggers
2025-10-18 4:30 ` [PATCH 03/10] lib/crypto: blake2s: Drop excessive const & rename block => data Eric Biggers
2025-10-18 4:31 ` [PATCH 04/10] lib/crypto: blake2s: Document the BLAKE2s library API Eric Biggers
2025-10-18 4:31 ` [PATCH 05/10] byteorder: Add le64_to_cpu_array() and cpu_to_le64_array() Eric Biggers
2025-10-18 4:31 ` [PATCH 06/10] lib/crypto: blake2b: Add BLAKE2b library functions Eric Biggers
2025-10-18 4:31 ` [PATCH 07/10] lib/crypto: arm/blake2b: Migrate optimized code into library Eric Biggers
2025-10-19 16:32 ` Eric Biggers
2025-10-18 4:31 ` [PATCH 08/10] lib/crypto: tests: Add KUnit tests for BLAKE2b Eric Biggers
2025-10-18 4:31 ` [PATCH 09/10] crypto: blake2b - Reimplement using library API Eric Biggers
2025-10-18 4:31 ` [PATCH 10/10] btrfs: switch to library APIs for checksums Eric Biggers
2025-10-22 7:11 ` David Sterba
2025-10-22 17:59 ` Eric Biggers
2025-10-23 18:45 ` David Sterba
2025-10-22 10:06 ` [PATCH 00/10] BLAKE2b library API Ard Biesheuvel
2025-10-24 19:21 ` Eric Biggers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251018043106.375964-1-ebiggers@kernel.org \
--to=ebiggers@kernel.org \
--cc=Jason@zx2c4.com \
--cc=ardb@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).