Merge branch 'maint-0.4.8'
[tor.git] / src / ext / compat_blake2.h
blob01adb2c34ace4b09840bf5f8c847c9e151adcdb7
1 /* Copyright (c) 2023, The Tor Project, Inc. */
2 /* See LICENSE for licensing information */
4 /**
5 * \file compat_blake2.h
7 * \brief Compatibility adapter providing blake2b using ext/equix/hashx
8 **/
10 #ifndef TOR_COMPAT_BLAKE2_H
11 #define TOR_COMPAT_BLAKE2_H
13 #include <stddef.h>
14 #include <string.h>
15 #include "lib/cc/compat_compiler.h"
16 #include "ext/equix/hashx/src/blake2.h"
18 static inline int
19 blake2b_init_param(blake2b_state *S, const blake2b_param *P)
21 return hashx_blake2b_init_param(S, P);
24 static inline int
25 blake2b_init(blake2b_state *S, const uint8_t digest_length)
27 blake2b_param P;
28 memset(&P, 0, sizeof P);
29 P.digest_length = digest_length;
30 P.fanout = 1;
31 P.depth = 1;
32 return blake2b_init_param(S, &P);
35 static inline int
36 blake2b_update(blake2b_state *S, const uint8_t *in, uint64_t inlen)
38 return hashx_blake2b_update(S, in, inlen);
41 static inline int
42 blake2b_final(blake2b_state *S, uint8_t *out, uint8_t outlen)
44 return hashx_blake2b_final(S, out, outlen);
47 #endif /* !defined(TOR_COMPAT_BLAKE2_H) */