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/libtls/tls_prf.c | |
parent | e7d98b8c9967d53d0244b2d2bd4edeb20df58dcc (diff) | |
download | strongswan-bc4748832395a5db4b71cb38d37f75de0d6e9416.tar.bz2 strongswan-bc4748832395a5db4b71cb38d37f75de0d6e9416.tar.xz |
Add a return value to prf_t.get_bytes()
Diffstat (limited to 'src/libtls/tls_prf.c')
-rw-r--r-- | src/libtls/tls_prf.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/libtls/tls_prf.c b/src/libtls/tls_prf.c index 09f693448..bc0a8c178 100644 --- a/src/libtls/tls_prf.c +++ b/src/libtls/tls_prf.c @@ -56,12 +56,15 @@ static bool p_hash(prf_t *prf, char *label, chunk_t seed, size_t block_size, while (TRUE) { - /* A(i) = HMAC_hash(secret, A(i-1)) */ - prf->get_bytes(prf, a, abuf); a = chunk_from_thing(abuf); - /* HMAC_hash(secret, A(i) + seed) */ - prf->get_bytes(prf, a, NULL); - prf->get_bytes(prf, seed, buf); + /* A(i) = HMAC_hash(secret, A(i-1)) + * HMAC_hash(secret, A(i) + seed) */ + if (!prf->get_bytes(prf, a, abuf) || + !prf->get_bytes(prf, a, NULL) || + !prf->get_bytes(prf, seed, buf)) + { + return FALSE; + } if (bytes <= block_size) { |