2010-11-03 11:34:14 +00:00
|
|
|
/**
|
|
|
|
* @file re_hmac.h Interface to HMAC functions
|
|
|
|
*
|
|
|
|
* Copyright (C) 2010 Creytiv.com
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
void hmac_sha1(const uint8_t *k, /* secret key */
|
|
|
|
size_t lk, /* length of the key in bytes */
|
|
|
|
const uint8_t *d, /* data */
|
|
|
|
size_t ld, /* length of data in bytes */
|
|
|
|
uint8_t* out, /* output buffer, at least "t" bytes */
|
|
|
|
size_t t);
|
2014-03-26 14:04:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
enum hmac_hash {
|
2016-02-01 08:04:53 +00:00
|
|
|
HMAC_HASH_SHA1,
|
|
|
|
HMAC_HASH_SHA256
|
2014-03-26 14:04:58 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct hmac;
|
|
|
|
|
|
|
|
int hmac_create(struct hmac **hmacp, enum hmac_hash hash,
|
|
|
|
const uint8_t *key, size_t key_len);
|
|
|
|
int hmac_digest(struct hmac *hmac, uint8_t *md, size_t md_len,
|
|
|
|
const uint8_t *data, size_t data_len);
|