From 2df12b4c57a97c5c1203401f41f5e11cb95a0153 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 17 Jul 2012 11:32:13 +0200 Subject: [PATCH] Fix tls_prf bug introduced with bc474883 --- src/libtls/tls_prf.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libtls/tls_prf.c b/src/libtls/tls_prf.c index a70b121d6..918de1e50 100644 --- a/src/libtls/tls_prf.c +++ b/src/libtls/tls_prf.c @@ -55,11 +55,14 @@ 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)) */ + if (!prf->get_bytes(prf, a, abuf)) + { + return FALSE; + } a = chunk_from_thing(abuf); - /* 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) || + /* HMAC_hash(secret, A(i) + seed) */ + if (!prf->get_bytes(prf, a, NULL) || !prf->get_bytes(prf, seed, buf)) { return FALSE;