123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #include <stddef.h>
- #define BLAKE2S_BLOCKBYTES 64
- #define BLAKE2S_OUTBYTES 32
- #define BLAKE2S_KEYBYTES 32
- #define BLAKE2S_SALTBYTES 8
- #define BLAKE2S_PERSONALBYTES 8
- #define BLAKE2B_BLOCKBYTES 128
- #define BLAKE2B_OUTBYTES 64
- #define BLAKE2B_KEYBYTES 64
- #define BLAKE2B_SALTBYTES 16
- #define BLAKE2B_PERSONALBYTES 16
- struct blake2s_param_st {
- uint8_t digest_length;
- uint8_t key_length;
- uint8_t fanout;
- uint8_t depth;
- uint8_t leaf_length[4];
- uint8_t node_offset[6];
- uint8_t node_depth;
- uint8_t inner_length;
- uint8_t salt[BLAKE2S_SALTBYTES];
- uint8_t personal[BLAKE2S_PERSONALBYTES];
- };
- typedef struct blake2s_param_st BLAKE2S_PARAM;
- struct blake2s_ctx_st {
- uint32_t h[8];
- uint32_t t[2];
- uint32_t f[2];
- uint8_t buf[BLAKE2S_BLOCKBYTES];
- size_t buflen;
- };
- struct blake2b_param_st {
- uint8_t digest_length;
- uint8_t key_length;
- uint8_t fanout;
- uint8_t depth;
- uint8_t leaf_length[4];
- uint8_t node_offset[8];
- uint8_t node_depth;
- uint8_t inner_length;
- uint8_t reserved[14];
- uint8_t salt[BLAKE2B_SALTBYTES];
- uint8_t personal[BLAKE2B_PERSONALBYTES];
- };
- typedef struct blake2b_param_st BLAKE2B_PARAM;
- struct blake2b_ctx_st {
- uint64_t h[8];
- uint64_t t[2];
- uint64_t f[2];
- uint8_t buf[BLAKE2B_BLOCKBYTES];
- size_t buflen;
- };
- #define BLAKE2B_DIGEST_LENGTH 64
- #define BLAKE2S_DIGEST_LENGTH 32
- typedef struct blake2s_ctx_st BLAKE2S_CTX;
- typedef struct blake2b_ctx_st BLAKE2B_CTX;
- int BLAKE2b_Init(BLAKE2B_CTX *c);
- int BLAKE2b_Update(BLAKE2B_CTX *c, const void *data, size_t datalen);
- int BLAKE2b_Final(unsigned char *md, BLAKE2B_CTX *c);
- int BLAKE2s_Init(BLAKE2S_CTX *c);
- int BLAKE2s_Update(BLAKE2S_CTX *c, const void *data, size_t datalen);
- int BLAKE2s_Final(unsigned char *md, BLAKE2S_CTX *c);
|