mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
lib/crypto: blake2s: Adjust parameter order of blake2s()
Reorder the parameters of blake2s() from (out, in, key, outlen, inlen, keylen) to (key, keylen, in, inlen, out, outlen). This aligns BLAKE2s with the common conventions of pairing buffers and their lengths, and having outputs follow inputs. This is widely used elsewhere in lib/crypto/ and crypto/, and even elsewhere in the BLAKE2s code itself such as blake2s_init_key() and blake2s_final(). So blake2s() was a bit of an exception. Notably, this results in the same order as hmac_*_usingrawkey(). Note that since the type signature changed, it's not possible for a blake2s() call site to be silently missed. Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Link: https://lore.kernel.org/r/20251018043106.375964-2-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
static void blake2s_default(const u8 *data, size_t len,
|
||||
u8 out[BLAKE2S_HASH_SIZE])
|
||||
{
|
||||
blake2s(out, data, NULL, BLAKE2S_HASH_SIZE, len, 0);
|
||||
blake2s(NULL, 0, data, len, out, BLAKE2S_HASH_SIZE);
|
||||
}
|
||||
|
||||
static void blake2s_init_default(struct blake2s_state *state)
|
||||
@@ -52,7 +52,7 @@ static void test_blake2s_all_key_and_hash_lens(struct kunit *test)
|
||||
for (int key_len = 0; key_len <= BLAKE2S_KEY_SIZE; key_len++) {
|
||||
rand_bytes_seeded_from_len(key, key_len);
|
||||
for (int out_len = 1; out_len <= BLAKE2S_HASH_SIZE; out_len++) {
|
||||
blake2s(hash, data, key, out_len, data_len, key_len);
|
||||
blake2s(key, key_len, data, data_len, hash, out_len);
|
||||
blake2s_update(&main_state, hash, out_len);
|
||||
}
|
||||
}
|
||||
@@ -80,10 +80,10 @@ static void test_blake2s_with_guarded_key_buf(struct kunit *test)
|
||||
rand_bytes(key, key_len);
|
||||
memcpy(guarded_key, key, key_len);
|
||||
|
||||
blake2s(hash1, test_buf, key,
|
||||
BLAKE2S_HASH_SIZE, data_len, key_len);
|
||||
blake2s(hash2, test_buf, guarded_key,
|
||||
BLAKE2S_HASH_SIZE, data_len, key_len);
|
||||
blake2s(key, key_len, test_buf, data_len,
|
||||
hash1, BLAKE2S_HASH_SIZE);
|
||||
blake2s(guarded_key, key_len, test_buf, data_len,
|
||||
hash2, BLAKE2S_HASH_SIZE);
|
||||
KUNIT_ASSERT_MEMEQ(test, hash1, hash2, BLAKE2S_HASH_SIZE);
|
||||
|
||||
blake2s_init_key(&state, BLAKE2S_HASH_SIZE,
|
||||
@@ -107,8 +107,8 @@ static void test_blake2s_with_guarded_out_buf(struct kunit *test)
|
||||
u8 hash[BLAKE2S_HASH_SIZE];
|
||||
u8 *guarded_hash = &test_buf[TEST_BUF_LEN - out_len];
|
||||
|
||||
blake2s(hash, test_buf, NULL, out_len, data_len, 0);
|
||||
blake2s(guarded_hash, test_buf, NULL, out_len, data_len, 0);
|
||||
blake2s(NULL, 0, test_buf, data_len, hash, out_len);
|
||||
blake2s(NULL, 0, test_buf, data_len, guarded_hash, out_len);
|
||||
KUNIT_ASSERT_MEMEQ(test, hash, guarded_hash, out_len);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user