mbed TLS v2.6.0
|
Cipher-based Message Authentication Code (CMAC) Mode for Authentication. More...
#include "mbedtls/cipher.h"
Go to the source code of this file.
Data Structures | |
struct | mbedtls_cmac_context_t |
CMAC context structure - Contains internal state information only. More... | |
Macros | |
#define | MBEDTLS_AES_BLOCK_SIZE 16 |
#define | MBEDTLS_DES3_BLOCK_SIZE 8 |
#define | MBEDTLS_CIPHER_BLKSIZE_MAX 8 /* longest used by CMAC is 3DES */ |
Functions | |
int | mbedtls_cipher_cmac_starts (mbedtls_cipher_context_t *ctx, const unsigned char *key, size_t keybits) |
Set the CMAC key and prepare to authenticate the input data. More... | |
int | mbedtls_cipher_cmac_update (mbedtls_cipher_context_t *ctx, const unsigned char *input, size_t ilen) |
Generic CMAC process buffer. More... | |
int | mbedtls_cipher_cmac_finish (mbedtls_cipher_context_t *ctx, unsigned char *output) |
Output CMAC. More... | |
int | mbedtls_cipher_cmac_reset (mbedtls_cipher_context_t *ctx) |
Prepare to authenticate a new message with the same key. More... | |
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) |
Output = Generic_CMAC( cmac key, input buffer ) More... | |
Cipher-based Message Authentication Code (CMAC) Mode for Authentication.
Copyright (C) 2015-2016, ARM Limited, All Rights Reserved SPDX-License-Identifier: GPL-2.0
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
This file is part of mbed TLS (https://tls.mbed.org)
Definition in file cmac.h.
#define MBEDTLS_CIPHER_BLKSIZE_MAX 8 /* longest used by CMAC is 3DES */ |
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 | ||
) |
Output = Generic_CMAC( cmac key, input buffer )
cipher_info | message digest info |
key | CMAC key |
keylen | length of the CMAC key in bits |
input | buffer holding the data |
ilen | length of the input data |
output | Generic CMAC-result |
int mbedtls_cipher_cmac_finish | ( | mbedtls_cipher_context_t * | ctx, |
unsigned char * | output | ||
) |
Output CMAC.
Called after mbedtls_cipher_cmac_update(). Usually followed by mbedtls_cipher_cmac_reset(), then mbedtls_cipher_cmac_starts(), or mbedtls_cipher_free().
ctx | CMAC context |
output | Generic CMAC checksum result |
int mbedtls_cipher_cmac_reset | ( | mbedtls_cipher_context_t * | ctx | ) |
Prepare to authenticate a new message with the same key.
Called after mbedtls_cipher_cmac_finish() and before mbedtls_cipher_cmac_update().
ctx | CMAC context to be reset |
int mbedtls_cipher_cmac_starts | ( | mbedtls_cipher_context_t * | ctx, |
const unsigned char * | key, | ||
size_t | keybits | ||
) |
Set the CMAC key and prepare to authenticate the input data.
Should be called with an initialized cipher context.
ctx | Cipher context. This should be a cipher context, initialized to be 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 | CMAC key |
keybits | length of the CMAC key in bits (must be acceptable by the cipher) |
int mbedtls_cipher_cmac_update | ( | mbedtls_cipher_context_t * | ctx, |
const unsigned char * | input, | ||
size_t | ilen | ||
) |
Generic CMAC process buffer.
Called between mbedtls_cipher_cmac_starts() or mbedtls_cipher_cmac_reset() and mbedtls_cipher_cmac_finish(). May be called repeatedly.
ctx | CMAC context |
input | buffer holding the data |
ilen | length of the input data |