lib/crypto: curve25519: 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 curve25519 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-3-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>pull/1354/merge
parent
1b31b43bf5
commit
2143d622cd
|
|
@ -13,24 +13,28 @@ enum curve25519_lengths {
|
|||
CURVE25519_KEY_SIZE = 32
|
||||
};
|
||||
|
||||
void curve25519_generic(u8 out[CURVE25519_KEY_SIZE],
|
||||
const u8 scalar[CURVE25519_KEY_SIZE],
|
||||
const u8 point[CURVE25519_KEY_SIZE]);
|
||||
void curve25519_generic(u8 out[at_least CURVE25519_KEY_SIZE],
|
||||
const u8 scalar[at_least CURVE25519_KEY_SIZE],
|
||||
const u8 point[at_least CURVE25519_KEY_SIZE]);
|
||||
|
||||
bool __must_check curve25519(u8 mypublic[CURVE25519_KEY_SIZE],
|
||||
const u8 secret[CURVE25519_KEY_SIZE],
|
||||
const u8 basepoint[CURVE25519_KEY_SIZE]);
|
||||
bool __must_check
|
||||
curve25519(u8 mypublic[at_least CURVE25519_KEY_SIZE],
|
||||
const u8 secret[at_least CURVE25519_KEY_SIZE],
|
||||
const u8 basepoint[at_least CURVE25519_KEY_SIZE]);
|
||||
|
||||
bool __must_check curve25519_generate_public(u8 pub[CURVE25519_KEY_SIZE],
|
||||
const u8 secret[CURVE25519_KEY_SIZE]);
|
||||
bool __must_check
|
||||
curve25519_generate_public(u8 pub[at_least CURVE25519_KEY_SIZE],
|
||||
const u8 secret[at_least CURVE25519_KEY_SIZE]);
|
||||
|
||||
static inline void curve25519_clamp_secret(u8 secret[CURVE25519_KEY_SIZE])
|
||||
static inline void
|
||||
curve25519_clamp_secret(u8 secret[at_least CURVE25519_KEY_SIZE])
|
||||
{
|
||||
secret[0] &= 248;
|
||||
secret[31] = (secret[31] & 127) | 64;
|
||||
}
|
||||
|
||||
static inline void curve25519_generate_secret(u8 secret[CURVE25519_KEY_SIZE])
|
||||
static inline void
|
||||
curve25519_generate_secret(u8 secret[at_least CURVE25519_KEY_SIZE])
|
||||
{
|
||||
get_random_bytes_wait(secret, CURVE25519_KEY_SIZE);
|
||||
curve25519_clamp_secret(secret);
|
||||
|
|
|
|||
Loading…
Reference in New Issue