mirror of
https://github.com/BLAKE2/BLAKE2
synced 2024-11-26 04:26:12 +01:00
length bug
This commit is contained in:
parent
1dd6358997
commit
73bd0dc652
@ -93,11 +93,12 @@ int blake2xs_final(blake2xs_state *S, void *out, size_t outlen)
|
|||||||
for (i = 0; outlen > 0; ++i) {
|
for (i = 0; outlen > 0; ++i) {
|
||||||
const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
|
const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
|
||||||
/* Initialize state */
|
/* Initialize state */
|
||||||
|
P->digest_length = block_size;
|
||||||
store32(&P->node_offset, i);
|
store32(&P->node_offset, i);
|
||||||
blake2s_init_param(C, P);
|
blake2s_init_param(C, P);
|
||||||
/* Process key if needed */
|
/* Process key if needed */
|
||||||
blake2s_update(C, root, BLAKE2S_OUTBYTES);
|
blake2s_update(C, root, BLAKE2S_OUTBYTES);
|
||||||
blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, BLAKE2S_OUTBYTES);
|
blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size);
|
||||||
outlen -= block_size;
|
outlen -= block_size;
|
||||||
}
|
}
|
||||||
secure_zero_memory(root, sizeof(root));
|
secure_zero_memory(root, sizeof(root));
|
||||||
@ -132,12 +133,12 @@ int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compute the root of the tree */
|
/* Absorb the input message */
|
||||||
if (blake2xs_update(S, in, inlen) < 0) {
|
if (blake2xs_update(S, in, inlen) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compute the final hash using the counter construction */
|
/* Compute the root node of the tree and the final hash using the counter construction */
|
||||||
return blake2xs_final(S, out, outlen);
|
return blake2xs_final(S, out, outlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user