[PATCH] selftests: vDSO: Also test counter in vdso_test_chacha
Jason A. Donenfeld
Jason at zx2c4.com
Mon Sep 2 04:08:13 AEST 2024
On Sun, Sep 01, 2024 at 07:40:33PM +0200, Christophe Leroy wrote:
> -static void reference_chacha20_blocks(uint8_t *dst_bytes, const uint32_t *key, size_t nblocks)
> +static void reference_chacha20_blocks(uint8_t *dst_bytes, const uint32_t *key, uint32_t *counter, size_t nblocks)
> {
> uint32_t s[16] = {
> 0x61707865U, 0x3320646eU, 0x79622d32U, 0x6b206574U,
> - key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7]
> + key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7],
> + counter[0], counter[1],
While you're doing this, also add the remaining, `0, 0` elements.
> + if (memcmp(output1, output2, sizeof(output1)) ||
> + memcmp(counter2, counter2, sizeof(counter1)))
counter2 will always be counter2. You meant for the first argument to be
counter1.
> + reference_chacha20_blocks(output1, key, counter1, BLOCKS);
> + __arch_chacha20_blocks_nostack(output2, key, counter2, BLOCKS);
> + if (memcmp(output1, output2, sizeof(output1)) ||
> + memcmp(counter2, counter2, sizeof(counter1)))
> + return KSFT_FAIL;
> +
> + reference_chacha20_blocks(output1, key, counter1, BLOCKS);
> + __arch_chacha20_blocks_nostack(output2, key, counter2, BLOCKS);
> + if (memcmp(output1, output2, sizeof(output1)) ||
> + memcmp(counter2, counter2, sizeof(counter1)))
> + return KSFT_FAIL;
> +
Why repeat these two stanzas? Also, same issue with counter2 used twice
in that memcmp.
More information about the Linuxppc-dev
mailing list