diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libstrongswan/crypto/crypto_tester.c | 8 | ||||
-rw-r--r-- | src/libstrongswan/crypto/crypto_tester.h | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/libstrongswan/crypto/crypto_tester.c b/src/libstrongswan/crypto/crypto_tester.c index 4b8173402..da7bea0f2 100644 --- a/src/libstrongswan/crypto/crypto_tester.c +++ b/src/libstrongswan/crypto/crypto_tester.c @@ -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); diff --git a/src/libstrongswan/crypto/crypto_tester.h b/src/libstrongswan/crypto/crypto_tester.h index 5a9726126..d2929f33d 100644 --- a/src/libstrongswan/crypto/crypto_tester.h +++ b/src/libstrongswan/crypto/crypto_tester.h @@ -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 */ |