Crypto library tests for 6.17
Note: this depends on the "Crypto library updates" pull request and should be merged after it.
The following changes since commit c76ed8790b3018fe36647d9aae96e0373f321184:
crypto: sha1 - Remove sha1_base.h (2025-07-14 11:28:38 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git tags/libcrypto-tests-for-linus
for you to fetch changes up to 8cd876e7833758f8a924db2e39530d2a9afd2703:
lib/crypto: tests: Annotate worker to be on stack (2025-07-21 20:10:36 -0700)
----------------------------------------------------------------
Add KUnit test suites for the Poly1305, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 library functions.
These are the first KUnit tests for lib/crypto/. So in addition to being useful tests for these specific algorithms, they also establish some conventions for lib/crypto/ testing going forwards.
The new tests are fairly comprehensive: more comprehensive than the generic crypto infrastructure's tests. They use a variety of techniques to check for the types of implementation bugs that tend to occur in the real world, rather than just naively checking some test vectors. (Interestingly, poly1305_kunit found a bug in QEMU.)
The core test logic is shared by all six algorithms, rather than being duplicated for each algorithm.
Each algorithm's test suite also optionally includes a benchmark.
----------------------------------------------------------------
Eric Biggers (5):
lib/crypto: tests: Add hash-test-template.h and gen-hash-testvecs.py lib/crypto: tests: Add KUnit tests for SHA-224 and SHA-256 lib/crypto: tests: Add KUnit tests for SHA-384 and SHA-512 lib/crypto: tests: Add KUnit tests for Poly1305 lib/crypto: tests: Add KUnit tests for SHA-1 and HMAC-SHA1
Guenter Roeck (1):
lib/crypto: tests: Annotate worker to be on stack
lib/crypto/Kconfig | 2 + lib/crypto/Makefile | 2 + lib/crypto/tests/Kconfig | 60 +++ lib/crypto/tests/Makefile | 6 + lib/crypto/tests/hash-test-template.h | 683 ++++++++++++++++++++++++++++++++++ lib/crypto/tests/poly1305-testvecs.h | 186 +++++++++ lib/crypto/tests/poly1305_kunit.c | 165 ++++++++ lib/crypto/tests/sha1-testvecs.h | 212 +++++++++++ lib/crypto/tests/sha1_kunit.c | 39 ++ lib/crypto/tests/sha224-testvecs.h | 238 ++++++++++++ lib/crypto/tests/sha224_kunit.c | 39 ++ lib/crypto/tests/sha256-testvecs.h | 238 ++++++++++++ lib/crypto/tests/sha256_kunit.c | 39 ++ lib/crypto/tests/sha384-testvecs.h | 290 +++++++++++++++ lib/crypto/tests/sha384_kunit.c | 39 ++ lib/crypto/tests/sha512-testvecs.h | 342 +++++++++++++++++ lib/crypto/tests/sha512_kunit.c | 39 ++ scripts/crypto/gen-hash-testvecs.py | 147 ++++++++ 18 files changed, 2766 insertions(+) create mode 100644 lib/crypto/tests/Kconfig create mode 100644 lib/crypto/tests/Makefile create mode 100644 lib/crypto/tests/hash-test-template.h create mode 100644 lib/crypto/tests/poly1305-testvecs.h create mode 100644 lib/crypto/tests/poly1305_kunit.c create mode 100644 lib/crypto/tests/sha1-testvecs.h create mode 100644 lib/crypto/tests/sha1_kunit.c create mode 100644 lib/crypto/tests/sha224-testvecs.h create mode 100644 lib/crypto/tests/sha224_kunit.c create mode 100644 lib/crypto/tests/sha256-testvecs.h create mode 100644 lib/crypto/tests/sha256_kunit.c create mode 100644 lib/crypto/tests/sha384-testvecs.h create mode 100644 lib/crypto/tests/sha384_kunit.c create mode 100644 lib/crypto/tests/sha512-testvecs.h create mode 100644 lib/crypto/tests/sha512_kunit.c create mode 100755 scripts/crypto/gen-hash-testvecs.py
The pull request you sent on Sun, 27 Jul 2025 16:47:27 -0700:
The pull request you sent on Sun, 27 Jul 2025 16:47:27 -0700:
Quoted 1 line
https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git tags/libcrypto-tests-for-linus
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/f2f573ebd42d659111bc71279cc16e5e78e56ae7
Thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html