Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
cmac.c File Reference
NIST SP800-38B compliant CMAC implementation for AES and 3DES. More...
Go to the source code of this file.
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_cmac_self_test (int verbose) |
The CMAC checkup routine. |
Detailed Description
NIST SP800-38B compliant CMAC implementation for AES and 3DES.
Copyright (C) 2006-2016, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This file is part of mbed TLS (https://tls.mbed.org)
Definition in file cmac.c.
Function Documentation
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_info The cipher information. key The CMAC key. keylen The length of the CMAC key in bits. input The buffer holding the input data. ilen The length of the input data. output The buffer for the generic CMAC result.
- Returns:
0
on success.- MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
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:
-
ctx The cipher context used for the CMAC operation. output The output buffer for the CMAC checksum result.
- Returns:
0
on success.- MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
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:
-
ctx The cipher context used for the CMAC operation.
- Returns:
0
on success.- MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
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:
-
ctx The 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. key The CMAC key. keybits The length of the CMAC key in bits. Must be supported by the cipher.
- Returns:
0
on success.- A cipher-specific error code on failure.
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:
-
ctx The cipher context used for the CMAC operation. input The buffer holding the input data. ilen The length of the input data.
- Returns:
0
on success.- MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Generated on Tue Jul 12 2022 12:46:23 by
