0a3769a4ef3afbbbd05df38f43ec7382fd65a2b6Florian Zeitzvoid hmac_init(struct hmac_context *ctx, const unsigned char *key,
0a3769a4ef3afbbbd05df38f43ec7382fd65a2b6Florian Zeitz size_t key_len, const struct hash_method *meth);
0a3769a4ef3afbbbd05df38f43ec7382fd65a2b6Florian Zeitzvoid hmac_final(struct hmac_context *ctx, unsigned char *digest);
0a3769a4ef3afbbbd05df38f43ec7382fd65a2b6Florian Zeitzstatic inline void
d8361cc8576d9ede93a037f9b96f2a3f9b7e9054Timo Sirainenhmac_update(struct hmac_context *_ctx, const void *data, size_t size)
d8361cc8576d9ede93a037f9b96f2a3f9b7e9054Timo Sirainen struct hmac_context_priv *ctx = &_ctx->u.priv;
ffe51a1969f24d88bbfacb3ba2ec83d5b99ae774Aki Tuomibuffer_t *t_hmac_data(const struct hash_method *meth,
ffe51a1969f24d88bbfacb3ba2ec83d5b99ae774Aki Tuomibuffer_t *t_hmac_buffer(const struct hash_method *meth,
ffe51a1969f24d88bbfacb3ba2ec83d5b99ae774Aki Tuomibuffer_t *t_hmac_str(const struct hash_method *meth,
ffe51a1969f24d88bbfacb3ba2ec83d5b99ae774Aki Tuomi const char *data);