diff options
Diffstat (limited to 'src/crypto.h')
-rw-r--r-- | src/crypto.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/crypto.h b/src/crypto.h index e463361..90b27b9 100644 --- a/src/crypto.h +++ b/src/crypto.h @@ -129,8 +129,19 @@ void blake2s_update(struct blake2s_state *state, const uint8_t *in, size_t inlen void blake2s_final(struct blake2s_state *state, uint8_t *out); -void blake2s(uint8_t *out, const uint8_t *in, const uint8_t *key, - const size_t outlen, const size_t inlen, const size_t keylen); +static inline void blake2s(uint8_t *out, const uint8_t *in, const uint8_t *key, + const size_t outlen, const size_t inlen, const size_t keylen) +{ + struct blake2s_state state; + + if (keylen) + blake2s_init_key(&state, outlen, key, keylen); + else + blake2s_init(&state, outlen); + + blake2s_update(&state, in, inlen); + blake2s_final(&state, out); +} #endif #ifdef COMPAT_NEED_CURVE25519 |