Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

cmac.h File Reference

cmac.h File Reference

This file contains CMAC definitions and functions. More...

Go to the source code of this file.

Data Structures

struct  mbedtls_cmac_context_t
 The CMAC context structure. More...

Functions

int mbedtls_cipher_cmac_starts (mbedtls_cipher_context_t *ctx, const unsigned char *key, size_t keybits)
 This function sets the CMAC key, and prepares to authenticate the input data.
int mbedtls_cipher_cmac_update (mbedtls_cipher_context_t *ctx, const unsigned char *input, size_t ilen)
 This function feeds an input buffer into an ongoing CMAC computation.
int mbedtls_cipher_cmac_finish (mbedtls_cipher_context_t *ctx, unsigned char *output)
 This function finishes the CMAC operation, and writes the result to the output buffer.
int mbedtls_cipher_cmac_reset (mbedtls_cipher_context_t *ctx)
 This function prepares the authentication of another message with the same key as the previous CMAC operation.
int mbedtls_cipher_cmac (const mbedtls_cipher_info_t *cipher_info, const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char *output)
 This function calculates the full generic CMAC on the input buffer with the provided key.
int mbedtls_aes_cmac_prf_128 (const unsigned char *key, size_t key_len, const unsigned char *input, size_t in_len, unsigned char output[16])
 This function implements the AES-CMAC-PRF-128 pseudorandom function, as defined in RFC-4615: The Advanced Encryption Standard-Cipher-based Message Authentication Code-Pseudo-Random Function-128 (AES-CMAC-PRF-128) Algorithm for the Internet Key Exchange Protocol (IKE).
int mbedtls_cmac_self_test (int verbose)
 The CMAC checkup routine.

Detailed Description

This file contains CMAC definitions and functions.

The Cipher-based Message Authentication Code (CMAC) Mode for Authentication is defined in RFC-4493: The AES-CMAC Algorithm.

Definition in file cmac.h.


Function Documentation

int mbedtls_aes_cmac_prf_128 ( const unsigned char *  key,
size_t  key_len,
const unsigned char *  input,
size_t  in_len,
unsigned char  output[16] 
)

This function implements the AES-CMAC-PRF-128 pseudorandom function, as defined in RFC-4615: The Advanced Encryption Standard-Cipher-based Message Authentication Code-Pseudo-Random Function-128 (AES-CMAC-PRF-128) Algorithm for the Internet Key Exchange Protocol (IKE).

Parameters:
keyThe key to use.
key_lenThe key length in Bytes.
inputThe buffer holding the input data.
in_lenThe length of the input data in Bytes.
outputThe buffer holding the generated 16 Bytes of pseudorandom output.
Returns:
0 on success.

Definition at line 285 of file cmac_alt.c.

int mbedtls_cipher_cmac ( const mbedtls_cipher_info_t cipher_info,
const unsigned char *  key,
size_t  keylen,
const unsigned char *  input,
size_t  ilen,
unsigned char *  output 
)

This function calculates the full generic CMAC on the input buffer with the provided key.

The function allocates the context, performs the calculation, and frees the context.

The CMAC result is calculated as output = generic CMAC(cmac key, input buffer).

Parameters:
cipher_infoThe cipher information.
keyThe CMAC key.
keylenThe length of the CMAC key in bits.
inputThe buffer holding the input data.
ilenThe length of the input data.
outputThe buffer for the generic CMAC result.
Returns:
0 on success.
MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 241 of file cmac_alt.c.

int mbedtls_cipher_cmac_finish ( mbedtls_cipher_context_t ctx,
unsigned char *  output 
)

This function finishes the CMAC operation, and writes the result to the output buffer.

It is called after mbedtls_cipher_cmac_update(). It can be followed by mbedtls_cipher_cmac_reset() and mbedtls_cipher_cmac_update(), or mbedtls_cipher_free().

Parameters:
ctxThe cipher context used for the CMAC operation.
outputThe output buffer for the CMAC checksum result.
Returns:
0 on success.
MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 191 of file cmac_alt.c.

int mbedtls_cipher_cmac_reset ( mbedtls_cipher_context_t ctx )

This function prepares the authentication of another message with the same key as the previous CMAC operation.

It is called after mbedtls_cipher_cmac_finish() and before mbedtls_cipher_cmac_update().

Parameters:
ctxThe cipher context used for the CMAC operation.
Returns:
0 on success.
MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 221 of file cmac_alt.c.

int mbedtls_cipher_cmac_starts ( mbedtls_cipher_context_t ctx,
const unsigned char *  key,
size_t  keybits 
)

This function sets the CMAC key, and prepares to authenticate the input data.

Must be called with an initialized cipher context.

Parameters:
ctxThe cipher context used for the CMAC operation, initialized as one of the following types: MBEDTLS_CIPHER_AES_128_ECB, MBEDTLS_CIPHER_AES_192_ECB, MBEDTLS_CIPHER_AES_256_ECB, or MBEDTLS_CIPHER_DES_EDE3_ECB.
keyThe CMAC key.
keybitsThe length of the CMAC key in bits. Must be supported by the cipher.
Returns:
0 on success.
A cipher-specific error code on failure.

Definition at line 66 of file cmac_alt.c.

int mbedtls_cipher_cmac_update ( mbedtls_cipher_context_t ctx,
const unsigned char *  input,
size_t  ilen 
)

This function feeds an input buffer into an ongoing CMAC computation.

It is called between mbedtls_cipher_cmac_starts() or mbedtls_cipher_cmac_reset(), and mbedtls_cipher_cmac_finish(). Can be called repeatedly.

Parameters:
ctxThe cipher context used for the CMAC operation.
inputThe buffer holding the input data.
ilenThe length of the input data.
Returns:
0 on success.
MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 113 of file cmac_alt.c.

int mbedtls_cmac_self_test ( int  verbose )

The CMAC checkup routine.

Returns:
0 on success.
1 on failure.

Definition at line 922 of file cmac.c.