24 lines
606 B
C
24 lines
606 B
C
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
|
|
enum blake2b_constant
|
|
{
|
|
BLAKE2B_BLOCKBYTES = 128,
|
|
BLAKE2B_OUTBYTES = 64,
|
|
BLAKE2B_KEYBYTES = 64,
|
|
BLAKE2B_SALTBYTES = 16,
|
|
BLAKE2B_PERSONALBYTES = 16
|
|
};
|
|
|
|
typedef struct {
|
|
uint8_t b[128]; // input buffer
|
|
uint64_t h[8]; // chained state
|
|
uint64_t t[2]; // total number of bytes
|
|
size_t c; // pointer for b[]
|
|
size_t outlen; // digest size
|
|
} blake2b_ctx;
|
|
|
|
void blake2b_update(blake2b_ctx *ctx, const void *in, size_t inlen);
|
|
int blake2b_init(blake2b_ctx *ctx, size_t outlen);
|
|
void blake2b_final(blake2b_ctx *ctx, void *out); |