lib/crypto: sha256: Add sha224() and sha224_update()
Add a one-shot SHA-224 computation function sha224(), for consistency with sha256(), sha384(), and sha512() which all already exist. Similarly, add sha224_update(). While for now it's identical to sha256_update(), omitting it makes the API harder to use since users have to "know" which functions are the same between SHA-224 and SHA-256. Also, this is a prerequisite for using different context types for each. Acked-by: Ard Biesheuvel <ardb@kernel.org> Link: https://lore.kernel.org/r/20250630160645.3198-6-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
This commit is contained in:
@@ -114,18 +114,24 @@ struct sha512_state {
|
||||
u8 buf[SHA512_BLOCK_SIZE];
|
||||
};
|
||||
|
||||
void sha256_update(struct sha256_state *sctx, const u8 *data, size_t len);
|
||||
|
||||
static inline void sha224_init(struct sha256_state *sctx)
|
||||
{
|
||||
sha224_block_init(&sctx->ctx);
|
||||
}
|
||||
/* Simply use sha256_update as it is equivalent to sha224_update. */
|
||||
static inline void sha224_update(struct sha256_state *sctx,
|
||||
const u8 *data, size_t len)
|
||||
{
|
||||
sha256_update(sctx, data, len);
|
||||
}
|
||||
void sha224_final(struct sha256_state *sctx, u8 out[SHA224_DIGEST_SIZE]);
|
||||
void sha224(const u8 *data, size_t len, u8 out[SHA224_DIGEST_SIZE]);
|
||||
|
||||
static inline void sha256_init(struct sha256_state *sctx)
|
||||
{
|
||||
sha256_block_init(&sctx->ctx);
|
||||
}
|
||||
void sha256_update(struct sha256_state *sctx, const u8 *data, size_t len);
|
||||
void sha256_final(struct sha256_state *sctx, u8 out[SHA256_DIGEST_SIZE]);
|
||||
void sha256(const u8 *data, size_t len, u8 out[SHA256_DIGEST_SIZE]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user