diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/skalibs/blake2s.h | 32 | ||||
-rw-r--r-- | src/include/skalibs/stdcrypto.h | 1 |
2 files changed, 33 insertions, 0 deletions
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 <stddef.h> +#include <stdint.h> + +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 <skalibs/sha1.h> #include <skalibs/sha256.h> #include <skalibs/sha512.h> +#include <skalibs/blake2s.h> #endif |