diff options
author | Martin Willi <martin@revosec.ch> | 2012-07-06 10:14:29 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-07-16 14:53:33 +0200 |
commit | bc4748832395a5db4b71cb38d37f75de0d6e9416 (patch) | |
tree | ae946170f42eecb8b8db6d5b8a44ef4be12c3a83 /src/libsimaka/simaka_crypto.c | |
parent | e7d98b8c9967d53d0244b2d2bd4edeb20df58dcc (diff) | |
download | strongswan-bc474883.tar.bz2 strongswan-bc474883.tar.xz |
Add a return value to prf_t.get_bytes()
Diffstat (limited to 'src/libsimaka/simaka_crypto.c')
-rw-r--r-- | src/libsimaka/simaka_crypto.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/libsimaka/simaka_crypto.c b/src/libsimaka/simaka_crypto.c index 0a92cb342..532655e3b 100644 --- a/src/libsimaka/simaka_crypto.c +++ b/src/libsimaka/simaka_crypto.c @@ -133,7 +133,12 @@ METHOD(simaka_crypto_t, derive_keys_full, bool, str = chunk_alloca(this->prf->get_block_size(this->prf) * 3); for (i = 0; i < 3; i++) { - this->prf->get_bytes(this->prf, chunk_empty, str.ptr + str.len / 3 * i); + if (!this->prf->get_bytes(this->prf, chunk_empty, + str.ptr + str.len / 3 * i)) + { + chunk_clear(mk); + return FALSE; + } } k_encr = chunk_create(str.ptr, KENCR_LEN); @@ -166,7 +171,11 @@ METHOD(simaka_crypto_t, derive_keys_reauth, bool, str = chunk_alloca(this->prf->get_block_size(this->prf) * 2); for (i = 0; i < 2; i++) { - this->prf->get_bytes(this->prf, chunk_empty, str.ptr + str.len / 2 * i); + if (!this->prf->get_bytes(this->prf, chunk_empty, + str.ptr + str.len / 2 * i)) + { + return FALSE; + } } k_encr = chunk_create(str.ptr, KENCR_LEN); k_auth = chunk_create(str.ptr + KENCR_LEN, KAUTH_LEN); @@ -202,7 +211,11 @@ METHOD(simaka_crypto_t, derive_keys_reauth_msk, bool, str = chunk_alloca(this->prf->get_block_size(this->prf) * 2); for (i = 0; i < 2; i++) { - this->prf->get_bytes(this->prf, chunk_empty, str.ptr + str.len / 2 * i); + if (!this->prf->get_bytes(this->prf, chunk_empty, + str.ptr + str.len / 2 * i)) + { + return FALSE; + } } *msk = chunk_create(str.ptr, MSK_LEN); DBG3(DBG_LIB, "MSK %B", msk); |