aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/crypto/crypto_tester.c8
-rw-r--r--src/libstrongswan/crypto/crypto_tester.h2
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 */