Check rng return value in crypto tester
This commit is contained in:
committed by
Martin Willi
parent
ce024c1662
commit
8a8364f26e
@@ -956,7 +956,11 @@ static u_int bench_rng(private_crypto_tester_t *this,
|
|||||||
start_timing(&start);
|
start_timing(&start);
|
||||||
while (end_timing(&start) < this->bench_time)
|
while (end_timing(&start) < this->bench_time)
|
||||||
{
|
{
|
||||||
rng->get_bytes(rng, buf.len, buf.ptr);
|
if (!rng->get_bytes(rng, buf.len, buf.ptr))
|
||||||
|
{
|
||||||
|
runs = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
runs++;
|
runs++;
|
||||||
}
|
}
|
||||||
free(buf.ptr);
|
free(buf.ptr);
|
||||||
@@ -986,8 +990,8 @@ METHOD(crypto_tester_t, test_rng, bool,
|
|||||||
enumerator = this->rng->create_enumerator(this->rng);
|
enumerator = this->rng->create_enumerator(this->rng);
|
||||||
while (enumerator->enumerate(enumerator, &vector))
|
while (enumerator->enumerate(enumerator, &vector))
|
||||||
{
|
{
|
||||||
|
chunk_t data = chunk_empty;
|
||||||
rng_t *rng;
|
rng_t *rng;
|
||||||
chunk_t data;
|
|
||||||
|
|
||||||
if (vector->quality != quality)
|
if (vector->quality != quality)
|
||||||
{
|
{
|
||||||
@@ -1007,24 +1011,22 @@ METHOD(crypto_tester_t, test_rng, bool,
|
|||||||
failed = FALSE;
|
failed = FALSE;
|
||||||
|
|
||||||
/* allocated bytes */
|
/* allocated bytes */
|
||||||
rng->allocate_bytes(rng, vector->len, &data);
|
if (!rng->allocate_bytes(rng, vector->len, &data) ||
|
||||||
if (data.len != vector->len)
|
data.len != vector->len ||
|
||||||
|
!vector->test(vector->user, data))
|
||||||
{
|
{
|
||||||
failed = TRUE;
|
failed = TRUE;
|
||||||
}
|
}
|
||||||
if (!vector->test(vector->user, data))
|
if (!failed)
|
||||||
{
|
{ /* write bytes into existing buffer */
|
||||||
failed = TRUE;
|
memset(data.ptr, 0, data.len);
|
||||||
}
|
if (!rng->get_bytes(rng, vector->len, data.ptr) ||
|
||||||
/* bytes to existing buffer */
|
!vector->test(vector->user, data))
|
||||||
memset(data.ptr, 0, data.len);
|
{
|
||||||
rng->get_bytes(rng, vector->len, data.ptr);
|
failed = TRUE;
|
||||||
if (!vector->test(vector->user, data))
|
}
|
||||||
{
|
|
||||||
failed = TRUE;
|
|
||||||
}
|
}
|
||||||
free(data.ptr);
|
free(data.ptr);
|
||||||
|
|
||||||
rng->destroy(rng);
|
rng->destroy(rng);
|
||||||
if (failed)
|
if (failed)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user