From 94f8644fcd59e2aa4548657241f4526a2b15ca03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Wed, 6 Sep 2017 22:30:55 +0200 Subject: [PATCH] Minor reorganization of hkdf_expand. * hkdf.c (hkdf_expand): Eliminate a (signed) ssize_t variable, use break rather than return at loop termination. --- ChangeLog | 5 +++++ hkdf.c | 25 +++++++++++-------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 776597a6..145376c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2017-09-06 Niels Möller <nisse@lysator.liu.se> + + * hkdf.c (hkdf_expand): Eliminate a (signed) ssize_t variable, use + break rather than return at loop termination. + 2017-09-06 Niels Möller <nisse@lysator.liu.se> HKDF implementation, contributed by Nikos Mavrogiannopoulos. diff --git a/hkdf.c b/hkdf.c index 73b10665..c55c42fd 100644 --- a/hkdf.c +++ b/hkdf.c @@ -63,23 +63,20 @@ hkdf_expand(void *mac_ctx, size_t length, uint8_t *dst) { uint8_t i = 1; - ssize_t left = length; - if (!left) + if (!length) return; - for (;; dst += digest_size, left -= digest_size, i++) { - update(mac_ctx, info_size, info); - update(mac_ctx, 1, &i); - if (left <= digest_size) { - if (left > 0) - digest(mac_ctx, left, dst); - return; - } + for (;; dst += digest_size, length -= digest_size, i++) + { + update(mac_ctx, info_size, info); + update(mac_ctx, 1, &i); + if (length <= digest_size) + break; - digest(mac_ctx, digest_size, dst); - update(mac_ctx, digest_size, dst); - } + digest(mac_ctx, digest_size, dst); + update(mac_ctx, digest_size, dst); + } - return; + digest(mac_ctx, length, dst); } -- GitLab