[PATCH 00/12] ChaCha and BLAKE2s cleanups

Eric Biggers posted 12 patches 1 month, 1 week ago
arch/arm/configs/exynos_defconfig             |   1 -
arch/arm/configs/milbeaut_m10v_defconfig      |   1 -
arch/arm/configs/multi_v7_defconfig           |   1 -
arch/arm/configs/omap2plus_defconfig          |   1 -
crypto/Kconfig                                |   1 -
crypto/chacha.c                               | 129 +---
crypto/testmgr.c                              |   9 +-
include/crypto/chacha.h                       |  37 +-
include/crypto/internal/blake2s.h             |  21 -
lib/crypto/Kconfig                            |  74 +-
lib/crypto/Makefile                           |  57 +-
lib/crypto/arm/Kconfig                        |  19 -
lib/crypto/arm/Makefile                       |   8 -
lib/crypto/arm/blake2s-core.S                 |   5 +-
lib/crypto/arm/blake2s-glue.c                 |   7 -
lib/crypto/arm/blake2s.h                      |   5 +
lib/crypto/arm/{chacha-glue.c => chacha.h}    |  35 +-
lib/crypto/arm64/Kconfig                      |   8 -
lib/crypto/arm64/Makefile                     |   4 -
.../arm64/{chacha-neon-glue.c => chacha.h}    |  32 +-
lib/crypto/blake2s-generic.c                  | 111 ---
lib/crypto/blake2s-selftest.c                 | 651 ------------------
lib/crypto/blake2s.c                          | 105 ++-
lib/crypto/chacha-block-generic.c             | 114 +++
lib/crypto/chacha.c                           | 142 ++--
lib/crypto/libchacha.c                        |  35 -
lib/crypto/mips/Kconfig                       |   7 -
lib/crypto/mips/Makefile                      |   5 -
lib/crypto/mips/chacha-glue.c                 |  29 -
lib/crypto/mips/chacha.h                      |  14 +
lib/crypto/powerpc/Kconfig                    |   8 -
lib/crypto/powerpc/Makefile                   |   4 -
.../powerpc/{chacha-p10-glue.c => chacha.h}   |  36 +-
lib/crypto/riscv/Kconfig                      |   8 -
lib/crypto/riscv/Makefile                     |   4 -
.../riscv/{chacha-riscv64-glue.c => chacha.h} |  36 +-
lib/crypto/s390/Kconfig                       |   7 -
lib/crypto/s390/Makefile                      |   4 -
lib/crypto/s390/{chacha-glue.c => chacha.h}   |  29 +-
lib/crypto/tests/Kconfig                      |  10 +
lib/crypto/tests/Makefile                     |   1 +
lib/crypto/tests/blake2s-testvecs.h           | 238 +++++++
lib/crypto/tests/blake2s_kunit.c              | 134 ++++
lib/crypto/x86/Kconfig                        |  20 -
lib/crypto/x86/Makefile                       |   7 -
lib/crypto/x86/blake2s-core.S                 |  28 +-
lib/crypto/x86/{blake2s-glue.c => blake2s.h}  |  16 +-
lib/crypto/x86/{chacha_glue.c => chacha.h}    |  36 +-
scripts/crypto/gen-hash-testvecs.py           |  27 +-
49 files changed, 840 insertions(+), 1481 deletions(-)
delete mode 100644 include/crypto/internal/blake2s.h
delete mode 100644 lib/crypto/arm/Kconfig
delete mode 100644 lib/crypto/arm/Makefile
delete mode 100644 lib/crypto/arm/blake2s-glue.c
create mode 100644 lib/crypto/arm/blake2s.h
rename lib/crypto/arm/{chacha-glue.c => chacha.h} (76%)
delete mode 100644 lib/crypto/arm64/Kconfig
delete mode 100644 lib/crypto/arm64/Makefile
rename lib/crypto/arm64/{chacha-neon-glue.c => chacha.h} (75%)
delete mode 100644 lib/crypto/blake2s-generic.c
delete mode 100644 lib/crypto/blake2s-selftest.c
create mode 100644 lib/crypto/chacha-block-generic.c
delete mode 100644 lib/crypto/libchacha.c
delete mode 100644 lib/crypto/mips/Kconfig
delete mode 100644 lib/crypto/mips/Makefile
delete mode 100644 lib/crypto/mips/chacha-glue.c
create mode 100644 lib/crypto/mips/chacha.h
delete mode 100644 lib/crypto/powerpc/Kconfig
delete mode 100644 lib/crypto/powerpc/Makefile
rename lib/crypto/powerpc/{chacha-p10-glue.c => chacha.h} (62%)
delete mode 100644 lib/crypto/riscv/Kconfig
delete mode 100644 lib/crypto/riscv/Makefile
rename lib/crypto/riscv/{chacha-riscv64-glue.c => chacha.h} (57%)
delete mode 100644 lib/crypto/s390/Kconfig
delete mode 100644 lib/crypto/s390/Makefile
rename lib/crypto/s390/{chacha-glue.c => chacha.h} (51%)
create mode 100644 lib/crypto/tests/blake2s-testvecs.h
create mode 100644 lib/crypto/tests/blake2s_kunit.c
delete mode 100644 lib/crypto/x86/Kconfig
delete mode 100644 lib/crypto/x86/Makefile
rename lib/crypto/x86/{blake2s-glue.c => blake2s.h} (83%)
rename lib/crypto/x86/{chacha_glue.c => chacha.h} (85%)
[PATCH 00/12] ChaCha and BLAKE2s cleanups
Posted by Eric Biggers 1 month, 1 week ago
This series is targeting libcrypto-next.  It can also be retrieved from:

    git fetch https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git chacha-blake2s-v1

This series consolidates how the ChaCha and BLAKE2s code is organized.
This is essentially the same change that I made to the other algorithms,
so this should be fairly boring by now.

These algorithms were the last two users of
lib/crypto/$(SRCARCH)/{Makefile,Kconfig}.  So this series removes all
those files, finishing the transition to the centralized build process
(at least for the algorithms supported by lib/crypto/ so far).

This series also makes the arch-optimized BLAKE2s code start being
enabled by default, again following the pattern of the other algorithms.

Finally, it adds a KUnit test suite for BLAKE2s and deletes the older
blake2s-selftest.

Eric Biggers (12):
  arm: configs: Remove obsolete assignments to CRYPTO_CHACHA20_NEON
  crypto: chacha - register only "-lib" drivers
  lib/crypto: chacha: Remove unused function chacha_is_arch_optimized()
  lib/crypto: chacha: Rename chacha.c to chacha-block-generic.c
  lib/crypto: chacha: Rename libchacha.c to chacha.c
  lib/crypto: chacha: Consolidate into single module
  lib/crypto: x86/blake2s: Reduce size of BLAKE2S_SIGMA2
  lib/crypto: blake2s: Remove obsolete self-test
  lib/crypto: blake2s: Always enable arch-optimized BLAKE2s code
  lib/crypto: blake2s: Move generic code into blake2s.c
  lib/crypto: blake2s: Consolidate into single C translation unit
  lib/crypto: tests: Add KUnit tests for BLAKE2s

 arch/arm/configs/exynos_defconfig             |   1 -
 arch/arm/configs/milbeaut_m10v_defconfig      |   1 -
 arch/arm/configs/multi_v7_defconfig           |   1 -
 arch/arm/configs/omap2plus_defconfig          |   1 -
 crypto/Kconfig                                |   1 -
 crypto/chacha.c                               | 129 +---
 crypto/testmgr.c                              |   9 +-
 include/crypto/chacha.h                       |  37 +-
 include/crypto/internal/blake2s.h             |  21 -
 lib/crypto/Kconfig                            |  74 +-
 lib/crypto/Makefile                           |  57 +-
 lib/crypto/arm/Kconfig                        |  19 -
 lib/crypto/arm/Makefile                       |   8 -
 lib/crypto/arm/blake2s-core.S                 |   5 +-
 lib/crypto/arm/blake2s-glue.c                 |   7 -
 lib/crypto/arm/blake2s.h                      |   5 +
 lib/crypto/arm/{chacha-glue.c => chacha.h}    |  35 +-
 lib/crypto/arm64/Kconfig                      |   8 -
 lib/crypto/arm64/Makefile                     |   4 -
 .../arm64/{chacha-neon-glue.c => chacha.h}    |  32 +-
 lib/crypto/blake2s-generic.c                  | 111 ---
 lib/crypto/blake2s-selftest.c                 | 651 ------------------
 lib/crypto/blake2s.c                          | 105 ++-
 lib/crypto/chacha-block-generic.c             | 114 +++
 lib/crypto/chacha.c                           | 142 ++--
 lib/crypto/libchacha.c                        |  35 -
 lib/crypto/mips/Kconfig                       |   7 -
 lib/crypto/mips/Makefile                      |   5 -
 lib/crypto/mips/chacha-glue.c                 |  29 -
 lib/crypto/mips/chacha.h                      |  14 +
 lib/crypto/powerpc/Kconfig                    |   8 -
 lib/crypto/powerpc/Makefile                   |   4 -
 .../powerpc/{chacha-p10-glue.c => chacha.h}   |  36 +-
 lib/crypto/riscv/Kconfig                      |   8 -
 lib/crypto/riscv/Makefile                     |   4 -
 .../riscv/{chacha-riscv64-glue.c => chacha.h} |  36 +-
 lib/crypto/s390/Kconfig                       |   7 -
 lib/crypto/s390/Makefile                      |   4 -
 lib/crypto/s390/{chacha-glue.c => chacha.h}   |  29 +-
 lib/crypto/tests/Kconfig                      |  10 +
 lib/crypto/tests/Makefile                     |   1 +
 lib/crypto/tests/blake2s-testvecs.h           | 238 +++++++
 lib/crypto/tests/blake2s_kunit.c              | 134 ++++
 lib/crypto/x86/Kconfig                        |  20 -
 lib/crypto/x86/Makefile                       |   7 -
 lib/crypto/x86/blake2s-core.S                 |  28 +-
 lib/crypto/x86/{blake2s-glue.c => blake2s.h}  |  16 +-
 lib/crypto/x86/{chacha_glue.c => chacha.h}    |  36 +-
 scripts/crypto/gen-hash-testvecs.py           |  27 +-
 49 files changed, 840 insertions(+), 1481 deletions(-)
 delete mode 100644 include/crypto/internal/blake2s.h
 delete mode 100644 lib/crypto/arm/Kconfig
 delete mode 100644 lib/crypto/arm/Makefile
 delete mode 100644 lib/crypto/arm/blake2s-glue.c
 create mode 100644 lib/crypto/arm/blake2s.h
 rename lib/crypto/arm/{chacha-glue.c => chacha.h} (76%)
 delete mode 100644 lib/crypto/arm64/Kconfig
 delete mode 100644 lib/crypto/arm64/Makefile
 rename lib/crypto/arm64/{chacha-neon-glue.c => chacha.h} (75%)
 delete mode 100644 lib/crypto/blake2s-generic.c
 delete mode 100644 lib/crypto/blake2s-selftest.c
 create mode 100644 lib/crypto/chacha-block-generic.c
 delete mode 100644 lib/crypto/libchacha.c
 delete mode 100644 lib/crypto/mips/Kconfig
 delete mode 100644 lib/crypto/mips/Makefile
 delete mode 100644 lib/crypto/mips/chacha-glue.c
 create mode 100644 lib/crypto/mips/chacha.h
 delete mode 100644 lib/crypto/powerpc/Kconfig
 delete mode 100644 lib/crypto/powerpc/Makefile
 rename lib/crypto/powerpc/{chacha-p10-glue.c => chacha.h} (62%)
 delete mode 100644 lib/crypto/riscv/Kconfig
 delete mode 100644 lib/crypto/riscv/Makefile
 rename lib/crypto/riscv/{chacha-riscv64-glue.c => chacha.h} (57%)
 delete mode 100644 lib/crypto/s390/Kconfig
 delete mode 100644 lib/crypto/s390/Makefile
 rename lib/crypto/s390/{chacha-glue.c => chacha.h} (51%)
 create mode 100644 lib/crypto/tests/blake2s-testvecs.h
 create mode 100644 lib/crypto/tests/blake2s_kunit.c
 delete mode 100644 lib/crypto/x86/Kconfig
 delete mode 100644 lib/crypto/x86/Makefile
 rename lib/crypto/x86/{blake2s-glue.c => blake2s.h} (83%)
 rename lib/crypto/x86/{chacha_glue.c => chacha.h} (85%)


base-commit: 44781c45f26623c3b92b28e933bf349144c10fe6
-- 
2.50.1
Re: [PATCH 00/12] ChaCha and BLAKE2s cleanups
Posted by Ard Biesheuvel 1 month ago
On Wed, 27 Aug 2025 at 17:14, Eric Biggers <ebiggers@kernel.org> wrote:
>
> This series is targeting libcrypto-next.  It can also be retrieved from:
>
>     git fetch https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git chacha-blake2s-v1
>
> This series consolidates how the ChaCha and BLAKE2s code is organized.
> This is essentially the same change that I made to the other algorithms,
> so this should be fairly boring by now.
>
> These algorithms were the last two users of
> lib/crypto/$(SRCARCH)/{Makefile,Kconfig}.  So this series removes all
> those files, finishing the transition to the centralized build process
> (at least for the algorithms supported by lib/crypto/ so far).
>
> This series also makes the arch-optimized BLAKE2s code start being
> enabled by default, again following the pattern of the other algorithms.
>
> Finally, it adds a KUnit test suite for BLAKE2s and deletes the older
> blake2s-selftest.
>
> Eric Biggers (12):
>   arm: configs: Remove obsolete assignments to CRYPTO_CHACHA20_NEON
>   crypto: chacha - register only "-lib" drivers
>   lib/crypto: chacha: Remove unused function chacha_is_arch_optimized()
>   lib/crypto: chacha: Rename chacha.c to chacha-block-generic.c
>   lib/crypto: chacha: Rename libchacha.c to chacha.c
>   lib/crypto: chacha: Consolidate into single module
>   lib/crypto: x86/blake2s: Reduce size of BLAKE2S_SIGMA2
>   lib/crypto: blake2s: Remove obsolete self-test
>   lib/crypto: blake2s: Always enable arch-optimized BLAKE2s code
>   lib/crypto: blake2s: Move generic code into blake2s.c
>   lib/crypto: blake2s: Consolidate into single C translation unit
>   lib/crypto: tests: Add KUnit tests for BLAKE2s
>

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Re: [PATCH 00/12] ChaCha and BLAKE2s cleanups
Posted by Eric Biggers 3 weeks, 5 days ago
On Wed, Aug 27, 2025 at 08:11:19AM -0700, Eric Biggers wrote:
> This series is targeting libcrypto-next.  It can also be retrieved from:
> 
>     git fetch https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git chacha-blake2s-v1
> 
> This series consolidates how the ChaCha and BLAKE2s code is organized.
> This is essentially the same change that I made to the other algorithms,
> so this should be fairly boring by now.
> 
> These algorithms were the last two users of
> lib/crypto/$(SRCARCH)/{Makefile,Kconfig}.  So this series removes all
> those files, finishing the transition to the centralized build process
> (at least for the algorithms supported by lib/crypto/ so far).
> 
> This series also makes the arch-optimized BLAKE2s code start being
> enabled by default, again following the pattern of the other algorithms.
> 
> Finally, it adds a KUnit test suite for BLAKE2s and deletes the older
> blake2s-selftest.
> 
> Eric Biggers (12):
>   arm: configs: Remove obsolete assignments to CRYPTO_CHACHA20_NEON
>   crypto: chacha - register only "-lib" drivers
>   lib/crypto: chacha: Remove unused function chacha_is_arch_optimized()
>   lib/crypto: chacha: Rename chacha.c to chacha-block-generic.c
>   lib/crypto: chacha: Rename libchacha.c to chacha.c
>   lib/crypto: chacha: Consolidate into single module
>   lib/crypto: x86/blake2s: Reduce size of BLAKE2S_SIGMA2
>   lib/crypto: blake2s: Remove obsolete self-test
>   lib/crypto: blake2s: Always enable arch-optimized BLAKE2s code
>   lib/crypto: blake2s: Move generic code into blake2s.c
>   lib/crypto: blake2s: Consolidate into single C translation unit
>   lib/crypto: tests: Add KUnit tests for BLAKE2s

Applied to https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git/log/?h=libcrypto-next

- Eric