mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 19:43:32 +00:00
30 lines
833 B
C
30 lines
833 B
C
|
#ifndef COSMOPOLITAN_LIBC_STR_BLAKE2_H_
|
||
|
#define COSMOPOLITAN_LIBC_STR_BLAKE2_H_
|
||
|
|
||
|
#define BLAKE2B256_DIGEST_LENGTH 32
|
||
|
#define BLAKE2B_CBLOCK 128
|
||
|
|
||
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||
|
COSMOPOLITAN_C_START_
|
||
|
|
||
|
struct Blake2b {
|
||
|
uint64_t h[8];
|
||
|
uint64_t t_low;
|
||
|
uint64_t t_high;
|
||
|
union {
|
||
|
uint8_t bytes[BLAKE2B_CBLOCK];
|
||
|
uint64_t words[16];
|
||
|
} block;
|
||
|
size_t block_used;
|
||
|
};
|
||
|
|
||
|
int BLAKE2B256_Init(struct Blake2b *);
|
||
|
int BLAKE2B256_Update(struct Blake2b *, const void *, size_t);
|
||
|
int BLAKE2B256_Process(struct Blake2b *, const uint64_t[BLAKE2B_CBLOCK / 8]);
|
||
|
int BLAKE2B256_Final(struct Blake2b *, uint8_t[BLAKE2B256_DIGEST_LENGTH]);
|
||
|
int BLAKE2B256(const void *, size_t, uint8_t[BLAKE2B256_DIGEST_LENGTH]);
|
||
|
|
||
|
COSMOPOLITAN_C_END_
|
||
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||
|
#endif /* COSMOPOLITAN_LIBC_STR_BLAKE2_H_ */
|