table of contents
LIBKECCAK_ZEROCOPY_UPDATE(3) | Library Functions Manual | LIBKECCAK_ZEROCOPY_UPDATE(3) |
NAME¶
libkeccak_zerocopy_update - Partially hash a message without copying (ADVANCED)
SYNOPSIS¶
#include <libkeccak.h> void libkeccak_zerocopy_update(struct libkeccak_state *state, const void *msg, size_t msglen);
Link with -lkeccak.
DESCRIPTION¶
The libkeccak_zerocopy_update() function continues (or starts) hashing a message. The current state of the hashing is stored in *state, and will be updated. The message specified by the msg parameter with the byte-size specified by the msglen parameter, will be hashed.
As a restriction specific to the libkeccak_zerocopy_update() function, the msglen argument must be an integer multiple of the bitrate divided by eight. This is returned by the libkeccak_zerocopy_chunksize(3) function. The libkeccak_update(3) or libkeccak_fast_update(3) functions can be used to avoid this restriction, but these, unlike the libkeccak_zerocopy_update() function, will copy the message and move around copied data.
RETURN VALUES¶
The libkeccak_zerocopy_update() function does not return a value.
ERRORS¶
The libkeccak_zerocopy_update() function cannot fail.
NOTES¶
Neither parameter by be NULL or 0.
It is safe call the libkeccak_zerocopy_update() function before the libkeccak_update(3), libkeccak_fast_update(3) libkeccak_digest(3) and libkeccak_fast_digest(3) functions with the same state argument. However, calling the libkeccak_zerocopy_update() function after the libkeccak_update(3) or libkeccak_fast_update(3) functions may cause the message to be misread.
NOTES¶
For cSHAKE, the libkeccak_cshake_initialise(3), must be called, once, immediately after state initialisation; before the first call to the libkeccak_zerocopy_update() function.
SEE ALSO¶
libkeccak_state_initialise(3), libkeccak_cshake_initialise(3), libkeccak_zerocopy_chunksize(3), libkeccak_fast_update(3), libkeccak_update(3), libkeccak_fast_digest(3), libkeccak_zerocopy_digest(3), libkeccak_digest(3)
LIBKECCAK |