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()