HMAC support

File: csp/crypto/csp_hmac.h

Description: HMAC support.

Hash-based Message Authentication Code - based on code from libtom.org.

Defines

CSP_HMAC_LENGTH
[source]

Number of bytes from the HMAC calculation, that is appended to the CSP message.

Interface Functions

int csp_hmac_append(csp_packet_t *packet, _Bool include_header)
[source]

Append HMAC to packet If header is included, csp_id_prepend() must be called beforehand

Parameters:
  • packet – CSP packet, must be valid.

  • include_header – use header in hmac calculation (this will not modify the flags field)

Returns:

#CSP_ERR_NONE on success, otherwise an error code.

int csp_hmac_verify(csp_packet_t *packet, _Bool include_header)
[source]

Verify HMAC of packet

Parameters:
  • packet – CSP packet, must be valid.

  • include_header – use header in hmac calculation (this will not modify the flags field)

Returns:

#CSP_ERR_NONE on success, otherwise an error code.

int csp_hmac_memory(const void *key, uint32_t keylen, const void *data, uint32_t datalen, uint8_t *hmac)
[source]

Calculate HMAC on buffer This function is used by append/verify but cal also be called separately.

Parameters:
  • key – HMAC key

  • keylen – HMAC key length

  • data – pointer to data

  • datalen – lehgth of data

  • hmac – calculated HMAC hash, minimum #CSP_SHA1_DIGESTSIZE bytes.

Returns:

#CSP_ERR_NONE on success, otherwise an error code.

int csp_hmac_set_key(const void *key, uint32_t keylen)
[source]

Save a copy of the key string for use by the append/verify functions

Parameters:
  • key – HMAC key

  • keylen – HMAC key length

Returns:

#CSP_ERR_NONE on success, otherwise an error code.