Skip to content

Commit

Permalink
powerpc/crypto: Use cheaper random numbers for crc-vpmsum self-test
Browse files Browse the repository at this point in the history
This code was filling a 64K buffer from /dev/urandom in order to
compute a CRC over (on average half of) it by two different methods,
comparing the CRCs, and repeating.

This is not a remotely security-critical application, so use the far
faster and cheaper prandom_u32() generator.

And, while we're at it, only fill as much of the buffer as we plan to use.

Signed-off-by: George Spelvin <lkml@sdf.org>
Acked-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
  • Loading branch information
George Spelvin authored and Michael Ellerman committed Apr 20, 2019
1 parent 6917735 commit 80d04b7
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions arch/powerpc/crypto/crc-vpmsum_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,16 +78,12 @@ static int __init crc_test_init(void)

pr_info("crc-vpmsum_test begins, %lu iterations\n", iterations);
for (i=0; i<iterations; i++) {
size_t len, offset;
size_t offset = prandom_u32_max(16);
size_t len = prandom_u32_max(MAX_CRC_LENGTH);

get_random_bytes(data, MAX_CRC_LENGTH);
get_random_bytes(&len, sizeof(len));
get_random_bytes(&offset, sizeof(offset));

len %= MAX_CRC_LENGTH;
offset &= 15;
if (len <= offset)
continue;
prandom_bytes(data, len);
len -= offset;

crypto_shash_update(crct10dif_shash, data+offset, len);
Expand Down

0 comments on commit 80d04b7

Please sign in to comment.