diff options
author | Martin Willi <martin@strongswan.org> | 2009-06-12 10:39:47 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-06-12 10:39:47 +0200 |
commit | 371a54c7a902c0869ca6fb05ca6ced2d6d765214 (patch) | |
tree | fc4cefccfac9b1c52291522aa7ad803cc148512a | |
parent | c66cd00df45d7a160fa10708e768baefe5b0b683 (diff) | |
download | strongswan-371a54c7a902c0869ca6fb05ca6ced2d6d765214.tar.bz2 strongswan-371a54c7a902c0869ca6fb05ca6ced2d6d765214.tar.xz |
added support for stateful PRFs (such as the FIPS_PRF)
-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 */ |