diff options
author | Niels Möller <nisse@lysator.liu.se> | 2022-10-31 19:04:23 +0100 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2022-10-31 19:04:23 +0100 |
commit | bb9c0a1ed4e6b3be4c5a259d3a6192960bc0c432 (patch) | |
tree | 3faef03673acc892d9643e9dc4d61b61a3c2fc61 /md-internal.h | |
parent | f9c2e9bb6cff5d14f4e6fcee806eeb59837116cc (diff) | |
download | nettle-bb9c0a1ed4e6b3be4c5a259d3a6192960bc0c432.tar.gz |
New function _nettle_poly1305_update.
Diffstat (limited to 'md-internal.h')
-rw-r--r-- | md-internal.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/md-internal.h b/md-internal.h index fe520c63..a97b7b90 100644 --- a/md-internal.h +++ b/md-internal.h @@ -32,6 +32,8 @@ #ifndef NETTLE_MD_INTERNAL_H_INCLUDED #define NETTLE_MD_INTERNAL_H_INCLUDED +#include <string.h> + /* Internal helper macros for Merkle-Damgård hash functions. Assumes the context structs includes the following fields: @@ -51,7 +53,18 @@ memcpy((ctx)->block + (ctx)->index, (data), __md_left); \ (data) += __md_left; \ (length) -= __md_left; \ - (ctx)->index = 0; \ } while(0) +#define MD_FILL_OR_RETURN_INDEX(block_size, block, index, length, data) \ + do { \ + unsigned __md_left = (block_size) - (index); \ + if ((length) < __md_left) \ + { \ + memcpy(block + (index), (data), (length)); \ + return (index) + (length); \ + } \ + memcpy((block) + (index), (data), __md_left); \ + (data) += __md_left; \ + (length) -= __md_left; \ + } while(0) #endif /* NETTLE_MD_INTERNAL_H_INCLUDED */ |