All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ard Biesheuvel <ardb@kernel.org>,
	"Jason A. Donenfeld" <Jason@zx2c4.com>,
	Guenter Roeck <linux@roeck-us.net>
Subject: [GIT PULL] Crypto library tests for 6.17
Date: Sun, 27 Jul 2025 16:47:27 -0700	[thread overview]
Message-ID: <20250727234727.GD1261@sol> (raw)

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

             reply	other threads:[~2025-07-27 23:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-27 23:47 Eric Biggers [this message]
2025-07-29  1:12 ` [GIT PULL] Crypto library tests for 6.17 pr-tracker-bot

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=20250727234727.GD1261@sol \
    --to=ebiggers@kernel.org \
    --cc=Jason@zx2c4.com \
    --cc=ardb@kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.