| /** |
| * @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); |
| |
| |
| enum hmac_hash { |
| HMAC_HASH_SHA1, |
| HMAC_HASH_SHA256 |
| }; |
| |
| 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); |