]> git.ipfire.org Git - thirdparty/linux.git/commit
lib/crypto: sha256: Make library API use strongly-typed contexts
authorEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:06:37 +0000 (09:06 -0700)
committerEric Biggers <ebiggers@kernel.org>
Fri, 4 Jul 2025 17:18:53 +0000 (10:18 -0700)
commitb86ced882b8e667758afddffd8d6354197842110
treec2b980acaf7178d2b104502930a091c057de8285
parent6fa4b292204b15e0e269a9fd33bc99b5e36b6883
lib/crypto: sha256: Make library API use strongly-typed contexts

Currently the SHA-224 and SHA-256 library functions can be mixed
arbitrarily, even in ways that are incorrect, for example using
sha224_init() and sha256_final().  This is because they operate on the
same structure, sha256_state.

Introduce stronger typing, as I did for SHA-384 and SHA-512.

Also as I did for SHA-384 and SHA-512, use the names *_ctx instead of
*_state.  The *_ctx names have the following small benefits:

- They're shorter.
- They avoid an ambiguity with the compression function state.
- They're consistent with the well-known OpenSSL API.
- Users usually name the variable 'sctx' anyway, which suggests that
  *_ctx would be the more natural name for the actual struct.

Therefore: update the SHA-224 and SHA-256 APIs, implementation, and
calling code accordingly.

In the new structs, also strongly-type the compression function state.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250630160645.3198-7-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
arch/riscv/purgatory/purgatory.c
arch/s390/purgatory/purgatory.c
arch/x86/purgatory/purgatory.c
crypto/sha256.c
drivers/char/tpm/tpm2-sessions.c
include/crypto/sha2.h
kernel/kexec_file.c
lib/crypto/sha256.c