added support for stateful PRFs (such as the FIPS_PRF)

This commit is contained in:
Martin Willi 2009-06-12 10:39:47 +02:00
parent c66cd00df4
commit 371a54c7a9
2 changed files with 10 additions and 0 deletions

View File

@ -407,6 +407,10 @@ static bool test_prf(private_crypto_tester_t *this,
}
/* bytes to existing buffer */
memset(out.ptr, 0, out.len);
if (vector->stateful)
{
prf->set_key(prf, key);
}
prf->get_bytes(prf, seed, out.ptr);
if (!memeq(vector->out, out.ptr, out.len))
{
@ -416,6 +420,10 @@ static bool test_prf(private_crypto_tester_t *this,
if (seed.len > 2)
{
memset(out.ptr, 0, out.len);
if (vector->stateful)
{
prf->set_key(prf, key);
}
prf->allocate_bytes(prf, chunk_create(seed.ptr, 1), NULL);
prf->get_bytes(prf, chunk_create(seed.ptr + 1, 1), NULL);
prf->get_bytes(prf, chunk_skip(seed, 2), out.ptr);

View File

@ -75,6 +75,8 @@ struct hasher_test_vector_t {
struct prf_test_vector_t {
/** prf algorithm this test vector tests */
pseudo_random_function_t alg;
/** is this PRF stateful? */
bool stateful;
/** key length to use, in bytes */
size_t key_size;
/** key to use */