aboutsummaryrefslogtreecommitdiffstats
path: root/libblake_blake2b_digest.c
diff options
context:
space:
mode:
Diffstat (limited to 'libblake_blake2b_digest.c')
-rw-r--r--libblake_blake2b_digest.c38
1 files changed, 2 insertions, 36 deletions
diff --git a/libblake_blake2b_digest.c b/libblake_blake2b_digest.c
index 016282d..08b2d75 100644
--- a/libblake_blake2b_digest.c
+++ b/libblake_blake2b_digest.c
@@ -1,45 +1,12 @@
/* See LICENSE file for copyright and license details. */
#include "common.h"
-static void
-encode_uint64_le(unsigned char *out, uint_least64_t value, size_t bytes)
-{
- switch (bytes) {
- default:
- out[7] = (unsigned char)((value >> 56) & 255);
- /* fall through */
- case 7:
- out[6] = (unsigned char)((value >> 48) & 255);
- /* fall through */
- case 6:
- out[5] = (unsigned char)((value >> 40) & 255);
- /* fall through */
- case 5:
- out[4] = (unsigned char)((value >> 32) & 255);
- /* fall through */
- case 4:
- out[3] = (unsigned char)((value >> 24) & 255);
- /* fall through */
- case 3:
- out[2] = (unsigned char)((value >> 16) & 255);
- /* fall through */
- case 2:
- out[1] = (unsigned char)((value >> 8) & 255);
- /* fall through */
- case 1:
- out[0] = (unsigned char)((value >> 0) & 255);
- /* fall through */
- case 0:
- break;
- }
-}
-
void
libblake_blake2b_digest(struct libblake_blake2b_state *state, void *data_, size_t len, int last_node,
size_t output_len, unsigned char output[static output_len])
{
unsigned char *data = data_;
- size_t r, i, j;
+ size_t r;
r = libblake_blake2b_update(state, data, len);
data = &data[r];
@@ -57,6 +24,5 @@ libblake_blake2b_digest(struct libblake_blake2b_state *state, void *data_, size_
libblake_internal_blake2b_compress(state, data);
- for (i = 0, j = 0; i < output_len; i += 8, j += 1)
- encode_uint64_le(&output[i], state->h[j], output_len - i);
+ libblake_internal_blake2b_output_digest(state, output_len, output);
}