mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
lib/crypto: sha2: Add at_least decoration to fixed-size array params
Add the at_least (i.e. 'static') decoration to the fixed-size array parameters of the sha2 library functions. This causes clang to warn when a too-small array of known size is passed. Acked-by: Ard Biesheuvel <ardb@kernel.org> Acked-by: "Jason A. Donenfeld" <Jason@zx2c4.com> Link: https://lore.kernel.org/r/20251122194206.31822-7-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
This commit is contained in:
@@ -190,7 +190,7 @@ static inline void sha224_update(struct sha224_ctx *ctx,
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha224_final(struct sha224_ctx *ctx, u8 out[SHA224_DIGEST_SIZE]);
|
||||
void sha224_final(struct sha224_ctx *ctx, u8 out[at_least SHA224_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* sha224() - Compute SHA-224 message digest in one shot
|
||||
@@ -200,7 +200,7 @@ void sha224_final(struct sha224_ctx *ctx, u8 out[SHA224_DIGEST_SIZE]);
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha224(const u8 *data, size_t len, u8 out[SHA224_DIGEST_SIZE]);
|
||||
void sha224(const u8 *data, size_t len, u8 out[at_least SHA224_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* struct hmac_sha224_key - Prepared key for HMAC-SHA224
|
||||
@@ -287,7 +287,8 @@ static inline void hmac_sha224_update(struct hmac_sha224_ctx *ctx,
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void hmac_sha224_final(struct hmac_sha224_ctx *ctx, u8 out[SHA224_DIGEST_SIZE]);
|
||||
void hmac_sha224_final(struct hmac_sha224_ctx *ctx,
|
||||
u8 out[at_least SHA224_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* hmac_sha224() - Compute HMAC-SHA224 in one shot, using a prepared key
|
||||
@@ -301,7 +302,8 @@ void hmac_sha224_final(struct hmac_sha224_ctx *ctx, u8 out[SHA224_DIGEST_SIZE]);
|
||||
* Context: Any context.
|
||||
*/
|
||||
void hmac_sha224(const struct hmac_sha224_key *key,
|
||||
const u8 *data, size_t data_len, u8 out[SHA224_DIGEST_SIZE]);
|
||||
const u8 *data, size_t data_len,
|
||||
u8 out[at_least SHA224_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* hmac_sha224_usingrawkey() - Compute HMAC-SHA224 in one shot, using a raw key
|
||||
@@ -318,7 +320,7 @@ void hmac_sha224(const struct hmac_sha224_key *key,
|
||||
*/
|
||||
void hmac_sha224_usingrawkey(const u8 *raw_key, size_t raw_key_len,
|
||||
const u8 *data, size_t data_len,
|
||||
u8 out[SHA224_DIGEST_SIZE]);
|
||||
u8 out[at_least SHA224_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* struct sha256_ctx - Context for hashing a message with SHA-256
|
||||
@@ -363,7 +365,7 @@ static inline void sha256_update(struct sha256_ctx *ctx,
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha256_final(struct sha256_ctx *ctx, u8 out[SHA256_DIGEST_SIZE]);
|
||||
void sha256_final(struct sha256_ctx *ctx, u8 out[at_least SHA256_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* sha256() - Compute SHA-256 message digest in one shot
|
||||
@@ -373,7 +375,7 @@ void sha256_final(struct sha256_ctx *ctx, u8 out[SHA256_DIGEST_SIZE]);
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha256(const u8 *data, size_t len, u8 out[SHA256_DIGEST_SIZE]);
|
||||
void sha256(const u8 *data, size_t len, u8 out[at_least SHA256_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* sha256_finup_2x() - Compute two SHA-256 digests from a common initial
|
||||
@@ -390,8 +392,9 @@ void sha256(const u8 *data, size_t len, u8 out[SHA256_DIGEST_SIZE]);
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha256_finup_2x(const struct sha256_ctx *ctx, const u8 *data1,
|
||||
const u8 *data2, size_t len, u8 out1[SHA256_DIGEST_SIZE],
|
||||
u8 out2[SHA256_DIGEST_SIZE]);
|
||||
const u8 *data2, size_t len,
|
||||
u8 out1[at_least SHA256_DIGEST_SIZE],
|
||||
u8 out2[at_least SHA256_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* sha256_finup_2x_is_optimized() - Check if sha256_finup_2x() is using a real
|
||||
@@ -488,7 +491,8 @@ static inline void hmac_sha256_update(struct hmac_sha256_ctx *ctx,
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void hmac_sha256_final(struct hmac_sha256_ctx *ctx, u8 out[SHA256_DIGEST_SIZE]);
|
||||
void hmac_sha256_final(struct hmac_sha256_ctx *ctx,
|
||||
u8 out[at_least SHA256_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* hmac_sha256() - Compute HMAC-SHA256 in one shot, using a prepared key
|
||||
@@ -502,7 +506,8 @@ void hmac_sha256_final(struct hmac_sha256_ctx *ctx, u8 out[SHA256_DIGEST_SIZE]);
|
||||
* Context: Any context.
|
||||
*/
|
||||
void hmac_sha256(const struct hmac_sha256_key *key,
|
||||
const u8 *data, size_t data_len, u8 out[SHA256_DIGEST_SIZE]);
|
||||
const u8 *data, size_t data_len,
|
||||
u8 out[at_least SHA256_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* hmac_sha256_usingrawkey() - Compute HMAC-SHA256 in one shot, using a raw key
|
||||
@@ -519,7 +524,7 @@ void hmac_sha256(const struct hmac_sha256_key *key,
|
||||
*/
|
||||
void hmac_sha256_usingrawkey(const u8 *raw_key, size_t raw_key_len,
|
||||
const u8 *data, size_t data_len,
|
||||
u8 out[SHA256_DIGEST_SIZE]);
|
||||
u8 out[at_least SHA256_DIGEST_SIZE]);
|
||||
|
||||
/* State for the SHA-512 (and SHA-384) compression function */
|
||||
struct sha512_block_state {
|
||||
@@ -598,7 +603,7 @@ static inline void sha384_update(struct sha384_ctx *ctx,
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha384_final(struct sha384_ctx *ctx, u8 out[SHA384_DIGEST_SIZE]);
|
||||
void sha384_final(struct sha384_ctx *ctx, u8 out[at_least SHA384_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* sha384() - Compute SHA-384 message digest in one shot
|
||||
@@ -608,7 +613,7 @@ void sha384_final(struct sha384_ctx *ctx, u8 out[SHA384_DIGEST_SIZE]);
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha384(const u8 *data, size_t len, u8 out[SHA384_DIGEST_SIZE]);
|
||||
void sha384(const u8 *data, size_t len, u8 out[at_least SHA384_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* struct hmac_sha384_key - Prepared key for HMAC-SHA384
|
||||
@@ -695,7 +700,8 @@ static inline void hmac_sha384_update(struct hmac_sha384_ctx *ctx,
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void hmac_sha384_final(struct hmac_sha384_ctx *ctx, u8 out[SHA384_DIGEST_SIZE]);
|
||||
void hmac_sha384_final(struct hmac_sha384_ctx *ctx,
|
||||
u8 out[at_least SHA384_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* hmac_sha384() - Compute HMAC-SHA384 in one shot, using a prepared key
|
||||
@@ -709,7 +715,8 @@ void hmac_sha384_final(struct hmac_sha384_ctx *ctx, u8 out[SHA384_DIGEST_SIZE]);
|
||||
* Context: Any context.
|
||||
*/
|
||||
void hmac_sha384(const struct hmac_sha384_key *key,
|
||||
const u8 *data, size_t data_len, u8 out[SHA384_DIGEST_SIZE]);
|
||||
const u8 *data, size_t data_len,
|
||||
u8 out[at_least SHA384_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* hmac_sha384_usingrawkey() - Compute HMAC-SHA384 in one shot, using a raw key
|
||||
@@ -726,7 +733,7 @@ void hmac_sha384(const struct hmac_sha384_key *key,
|
||||
*/
|
||||
void hmac_sha384_usingrawkey(const u8 *raw_key, size_t raw_key_len,
|
||||
const u8 *data, size_t data_len,
|
||||
u8 out[SHA384_DIGEST_SIZE]);
|
||||
u8 out[at_least SHA384_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* struct sha512_ctx - Context for hashing a message with SHA-512
|
||||
@@ -771,7 +778,7 @@ static inline void sha512_update(struct sha512_ctx *ctx,
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha512_final(struct sha512_ctx *ctx, u8 out[SHA512_DIGEST_SIZE]);
|
||||
void sha512_final(struct sha512_ctx *ctx, u8 out[at_least SHA512_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* sha512() - Compute SHA-512 message digest in one shot
|
||||
@@ -781,7 +788,7 @@ void sha512_final(struct sha512_ctx *ctx, u8 out[SHA512_DIGEST_SIZE]);
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void sha512(const u8 *data, size_t len, u8 out[SHA512_DIGEST_SIZE]);
|
||||
void sha512(const u8 *data, size_t len, u8 out[at_least SHA512_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* struct hmac_sha512_key - Prepared key for HMAC-SHA512
|
||||
@@ -868,7 +875,8 @@ static inline void hmac_sha512_update(struct hmac_sha512_ctx *ctx,
|
||||
*
|
||||
* Context: Any context.
|
||||
*/
|
||||
void hmac_sha512_final(struct hmac_sha512_ctx *ctx, u8 out[SHA512_DIGEST_SIZE]);
|
||||
void hmac_sha512_final(struct hmac_sha512_ctx *ctx,
|
||||
u8 out[at_least SHA512_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* hmac_sha512() - Compute HMAC-SHA512 in one shot, using a prepared key
|
||||
@@ -882,7 +890,8 @@ void hmac_sha512_final(struct hmac_sha512_ctx *ctx, u8 out[SHA512_DIGEST_SIZE]);
|
||||
* Context: Any context.
|
||||
*/
|
||||
void hmac_sha512(const struct hmac_sha512_key *key,
|
||||
const u8 *data, size_t data_len, u8 out[SHA512_DIGEST_SIZE]);
|
||||
const u8 *data, size_t data_len,
|
||||
u8 out[at_least SHA512_DIGEST_SIZE]);
|
||||
|
||||
/**
|
||||
* hmac_sha512_usingrawkey() - Compute HMAC-SHA512 in one shot, using a raw key
|
||||
@@ -899,6 +908,6 @@ void hmac_sha512(const struct hmac_sha512_key *key,
|
||||
*/
|
||||
void hmac_sha512_usingrawkey(const u8 *raw_key, size_t raw_key_len,
|
||||
const u8 *data, size_t data_len,
|
||||
u8 out[SHA512_DIGEST_SIZE]);
|
||||
u8 out[at_least SHA512_DIGEST_SIZE]);
|
||||
|
||||
#endif /* _CRYPTO_SHA2_H */
|
||||
|
||||
Reference in New Issue
Block a user