66 memb_free(&hmac_context_storage, ctx);
71 memb_init(&hmac_context_storage);
77 const unsigned char *input,
size_t ilen) {
106 memcpy(ctx->
pad, key, klen);
148 int main(
int argc,
char **argv) {
154 fprintf(stderr,
"usage: %s key text", argv[0]);
165 for(i = 0; i < len; i++)
166 printf(
"%02x", buf[i]);
static dtls_hmac_context_t * dtls_hmac_context_new()
void dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen)
void dtls_hmac_free(dtls_hmac_context_t *ctx)
#define DTLS_HMAC_DIGEST_SIZE
void dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen)
dtls_hmac_context_t * dtls_hmac_new(const unsigned char *key, size_t klen)
static void dtls_hash_init(dtls_hash_t ctx)
unsigned char pad[DTLS_HMAC_BLOCKSIZE]
static void dtls_hash_update(dtls_hash_t ctx, const unsigned char *input, size_t len)
int dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result)
static void dtls_hmac_context_free(dtls_hmac_context_t *ctx)
#define DTLS_HMAC_BLOCKSIZE
static size_t dtls_hash_finalize(unsigned char *buf, dtls_hash_t ctx)
static void dtls_hmac_storage_init()