forked from luck/tmp_suning_uos_patched
powerpc/crypto: Use cheaper random numbers for crc-vpmsum self-test
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>
This commit is contained in:
parent
6917735e8f
commit
80d04b7fab
|
@ -78,16 +78,12 @@ static int __init crc_test_init(void)
|
||||||
|
|
||||||
pr_info("crc-vpmsum_test begins, %lu iterations\n", iterations);
|
pr_info("crc-vpmsum_test begins, %lu iterations\n", iterations);
|
||||||
for (i=0; i<iterations; i++) {
|
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)
|
if (len <= offset)
|
||||||
continue;
|
continue;
|
||||||
|
prandom_bytes(data, len);
|
||||||
len -= offset;
|
len -= offset;
|
||||||
|
|
||||||
crypto_shash_update(crct10dif_shash, data+offset, len);
|
crypto_shash_update(crct10dif_shash, data+offset, len);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user