Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tpruvot
GitHub Repository: tpruvot/cpuminer-multi
Path: blob/linux/crypto/c_blake256.h
1201 views
1
#ifndef _BLAKE256_H_
2
#define _BLAKE256_H_
3
4
#include <stdint.h>
5
6
typedef struct {
7
uint32_t h[8], s[4], t[2];
8
int buflen, nullt;
9
uint8_t buf[64];
10
} state;
11
12
typedef struct {
13
state inner;
14
state outer;
15
} hmac_state;
16
17
void blake256_init(state *);
18
void blake224_init(state *);
19
20
void blake256_update(state *, const uint8_t *, uint64_t);
21
void blake224_update(state *, const uint8_t *, uint64_t);
22
23
void blake256_final(state *, uint8_t *);
24
void blake224_final(state *, uint8_t *);
25
26
void blake256_hash(uint8_t *, const uint8_t *, uint64_t);
27
void blake224_hash(uint8_t *, const uint8_t *, uint64_t);
28
29
/* HMAC functions: */
30
31
void hmac_blake256_init(hmac_state *, const uint8_t *, uint64_t);
32
void hmac_blake224_init(hmac_state *, const uint8_t *, uint64_t);
33
34
void hmac_blake256_update(hmac_state *, const uint8_t *, uint64_t);
35
void hmac_blake224_update(hmac_state *, const uint8_t *, uint64_t);
36
37
void hmac_blake256_final(hmac_state *, uint8_t *);
38
void hmac_blake224_final(hmac_state *, uint8_t *);
39
40
void hmac_blake256_hash(uint8_t *, const uint8_t *, uint64_t, const uint8_t *, uint64_t);
41
void hmac_blake224_hash(uint8_t *, const uint8_t *, uint64_t, const uint8_t *, uint64_t);
42
43
#endif /* _BLAKE256_H_ */
44
45