aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2015-03-27 16:06:21 +0100
committerMartin Willi <martin@revosec.ch>2015-03-27 16:06:21 +0100
commit4075e9d7a4bf814f710237238a2bd8367a24ffa0 (patch)
tree29d0897582900f65b92aff6e56e7e68a1c4f05e9 /src
parenteedd92b53bd78595bea130508fa64296e6a19f17 (diff)
downloadstrongswan-4075e9d7a4bf814f710237238a2bd8367a24ffa0.tar.bz2
strongswan-4075e9d7a4bf814f710237238a2bd8367a24ffa0.tar.xz
af-alg: Reset hmac/xcbc state before doing set_key()
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/plugins/af_alg/af_alg_prf.c1
-rw-r--r--src/libstrongswan/plugins/af_alg/af_alg_signer.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/libstrongswan/plugins/af_alg/af_alg_prf.c b/src/libstrongswan/plugins/af_alg/af_alg_prf.c
index 720738a84..2b7d51376 100644
--- a/src/libstrongswan/plugins/af_alg/af_alg_prf.c
+++ b/src/libstrongswan/plugins/af_alg/af_alg_prf.c
@@ -139,6 +139,7 @@ METHOD(prf_t, set_key, bool,
{
char buf[this->block_size];
+ this->ops->reset(this->ops);
if (this->xcbc)
{
/* The kernel currently does not support variable length XCBC keys,
diff --git a/src/libstrongswan/plugins/af_alg/af_alg_signer.c b/src/libstrongswan/plugins/af_alg/af_alg_signer.c
index 6ee380633..9ad01103a 100644
--- a/src/libstrongswan/plugins/af_alg/af_alg_signer.c
+++ b/src/libstrongswan/plugins/af_alg/af_alg_signer.c
@@ -156,6 +156,7 @@ METHOD(signer_t, get_block_size, size_t,
METHOD(signer_t, set_key, bool,
private_af_alg_signer_t *this, chunk_t key)
{
+ this->ops->reset(this->ops);
return this->ops->set_key(this->ops, key);
}