diff options
author | Niels Möller <nisse@lysator.liu.se> | 2017-09-06 22:30:55 +0200 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2017-09-06 22:30:55 +0200 |
commit | 94f8644fcd59e2aa4548657241f4526a2b15ca03 (patch) | |
tree | 033f0e25ec4eea822d28ab1118ebfca777caf5a8 | |
parent | 89abb7b8242515d54010d44efc6d1f8e88f2ab93 (diff) | |
download | nettle-hkdf-support.tar.gz |
Minor reorganization of hkdf_expand.hkdf-support
* hkdf.c (hkdf_expand): Eliminate a (signed) ssize_t variable, use
break rather than return at loop termination.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | hkdf.c | 25 |
2 files changed, 16 insertions, 14 deletions
@@ -1,5 +1,10 @@ 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. * hkdf.c (hkdf_extract, hkdf_expand): New file, new functions. * hkdf.h: New file. @@ -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); } |