aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtls/tls_prf.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-07-06 10:14:29 +0200
committerMartin Willi <martin@revosec.ch>2012-07-16 14:53:33 +0200
commitbc4748832395a5db4b71cb38d37f75de0d6e9416 (patch)
treeae946170f42eecb8b8db6d5b8a44ef4be12c3a83 /src/libtls/tls_prf.c
parente7d98b8c9967d53d0244b2d2bd4edeb20df58dcc (diff)
downloadstrongswan-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.c13
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)
{