hmac.h File Reference

Routines for computing Hash-based Message Authentication Codes. More...

`#include <stdlib.h>`
`#include "sha1.h"`
`#include "md5.h"`

Go to the source code of this file.

## Functions

int | hmac (const void *buffer, size_t buffer_length, const void *key, size_t key_length, unsigned char *digest, size_t digest_len, size_t block_size, void(*hash_func)(const void *, size_t, unsigned char *))
| Generate HMAC.
int | hmac_md5 (const void *buffer, size_t buffer_length, const void *key, size_t key_length, unsigned char digest[MD5_DIGEST_LENGTH])
| Generate HMAC using md5 hash function Note that this function produces a digest in binary form which must be converted to a human readable form with md5_to_string.
int | hmac_sha1 (const void *buffer, size_t buffer_length, const void *key, size_t key_length, unsigned char digest[SHA1_DIGEST_LENGTH])
| Generate HMAC using sha1 hash function Note that this function produces a digest in binary form which must be converted to a human readable form with sha1_string.

## Detailed Description

Routines for computing Hash-based Message Authentication Codes.

## Function Documentation

## hmac()

int hmac | ( | const void * | buffer,
|  | size_t | buffer_length,
|  | const void * | key,
|  | size_t | key_length,
|  | unsigned char * | digest,
|  | size_t | digest_len,
|  | size_t | block_size,
|  | void(* | hash_func )(const void *, size_t, unsigned char *) )

Generate HMAC.

Parameters

  buffer | Pointer to a memory buffer.
  buffer_length | Length of the buffer in bytes.
  key | Pointer to a buffer containing the key for hashing.
  key_length | The length of the key in bytes.
  digest | Pointer to a buffer to store the digest.
  digest_len | The length of the digest buffer.
  block_size | The size of the block used by the hash function in bytes.
  hash_func | A function pointer to the hash function to be used.

## hmac_md5()

int hmac_md5 | ( | const void * | buffer,
|  | size_t | buffer_length,
|  | const void * | key,
|  | size_t | key_length,
|  | unsigned char | digest[MD5_DIGEST_LENGTH] )

Generate HMAC using md5 hash function Note that this function produces a digest in binary form which must be converted to a human readable form with md5_to_string.

Parameters

  buffer | Pointer to a memory buffer.
  buffer_length | Length of the buffer in bytes.
  key | Pointer to a buffer containing the key for hashing.
  key_length | The length of the key in bytes.
  digest | Pointer to a buffer of size MD5_DIGEST_LENGTH to store the digest.

## hmac_sha1()

int hmac_sha1 | ( | const void * | buffer,
|  | size_t | buffer_length,
|  | const void * | key,
|  | size_t | key_length,
|  | unsigned char | digest[SHA1_DIGEST_LENGTH] )

Generate HMAC using sha1 hash function Note that this function produces a digest in binary form which must be converted to a human readable form with sha1_string.

Parameters

  buffer | Pointer to a memory buffer.
  buffer_length | Length of the buffer in bytes.
  key | Pointer to a buffer containing the key for hashing.
  key_length | The length of the key in bytes.
  digest | Pointer to a buffer of size SHA1_DIGEST_LENGTH to store the digest.