diff options
author | Martin Willi <martin@revosec.ch> | 2012-07-09 17:15:52 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-07-16 14:55:06 +0200 |
commit | 87dd205b61ae8c0125b459959fcc7349fa27bb74 (patch) | |
tree | a6c138a105bf40ce5a4b1b60047ed3a76cbe22ca /src/libcharon/sa/ikev1/keymat_v1.c | |
parent | e185612dd8011ca4f3de460640f74e6a652cbf32 (diff) | |
download | strongswan-87dd205b61ae8c0125b459959fcc7349fa27bb74.tar.bz2 strongswan-87dd205b61ae8c0125b459959fcc7349fa27bb74.tar.xz |
Add a return value to hasher_t.allocate_hash()
Diffstat (limited to 'src/libcharon/sa/ikev1/keymat_v1.c')
-rw-r--r-- | src/libcharon/sa/ikev1/keymat_v1.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/libcharon/sa/ikev1/keymat_v1.c b/src/libcharon/sa/ikev1/keymat_v1.c index 8f6da3ca4..e2db13a13 100644 --- a/src/libcharon/sa/ikev1/keymat_v1.c +++ b/src/libcharon/sa/ikev1/keymat_v1.c @@ -554,7 +554,11 @@ METHOD(keymat_v1_t, derive_ike_keys, bool, /* initial IV = hash(g^xi | g^xr) */ data = chunk_cata("cc", g_xi, g_xr); - this->hasher->allocate_hash(this->hasher, data, &this->phase1_iv.iv); + if (!this->hasher->allocate_hash(this->hasher, data, &this->phase1_iv.iv)) + { + chunk_free(&dh_me); + return FALSE; + } if (this->phase1_iv.iv.len > this->aead->get_block_size(this->aead)) { this->phase1_iv.iv.len = this->aead->get_block_size(this->aead); @@ -975,10 +979,15 @@ static bool generate_iv(private_keymat_v1_t *this, iv_data_t *iv) else { /* initial phase 2 IV = hash(last_phase1_block | mid) */ - u_int32_t net = htonl(iv->mid); - chunk_t data = chunk_cata("cc", this->phase1_iv.iv, - chunk_from_thing(net)); - this->hasher->allocate_hash(this->hasher, data, &iv->iv); + u_int32_t net;; + chunk_t data; + + net = htonl(iv->mid); + data = chunk_cata("cc", this->phase1_iv.iv, chunk_from_thing(net)); + if (!this->hasher->allocate_hash(this->hasher, data, &iv->iv)) + { + return FALSE; + } if (iv->iv.len > this->aead->get_block_size(this->aead)) { iv->iv.len = this->aead->get_block_size(this->aead); |