From e0c38ba95a293b747acee203ead11933a44a4c59 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Wed, 1 Jun 2022 12:40:24 +0000 Subject: Add blake2s implementation to stdcrypto Signed-off-by: Laurent Bercot --- src/include/skalibs/blake2s.h | 32 ++++++++++++++++++++++++++++++++ src/include/skalibs/stdcrypto.h | 1 + 2 files changed, 33 insertions(+) create mode 100644 src/include/skalibs/blake2s.h (limited to 'src/include') diff --git a/src/include/skalibs/blake2s.h b/src/include/skalibs/blake2s.h new file mode 100644 index 0000000..1da386d --- /dev/null +++ b/src/include/skalibs/blake2s.h @@ -0,0 +1,32 @@ + /* ISC license. */ + +#ifndef SKALIBS_BLAKE2S_H +#define SKALIBS_BLAKE2S_H + +#include +#include + +typedef struct blake2s_ctx_s blake2s_ctx, *blake2s_ctx_ref ; +struct blake2s_ctx_s +{ + size_t buflen ; + size_t outlen ; + uint32_t h[8] ; + uint32_t t[2] ; + uint32_t f[2] ; + char buf[64] ; +} ; + +#define BLAKE2S_INIT(outlen) { \ + .buflen = 0, \ + .outlen = outlen, \ + .h = { 0x6A09E667UL ^ (0x01010000 | outlen), 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL, 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL }, \ + .t = { 0, 0 }, \ + .f = { 0, 0 }, \ + .buf = { 0 } } + +extern void blake2s_init (blake2s_ctx *, size_t) ; /* outlen <= 32 */ +extern void blake2s_update (blake2s_ctx *, char const *, size_t) ; +extern void blake2s_final (blake2s_ctx *, char *) ; /* outlen chars */ + +#endif diff --git a/src/include/skalibs/stdcrypto.h b/src/include/skalibs/stdcrypto.h index c04407b..a74c451 100644 --- a/src/include/skalibs/stdcrypto.h +++ b/src/include/skalibs/stdcrypto.h @@ -6,5 +6,6 @@ #include #include #include +#include #endif -- cgit v1.2.3