mbed TLS v2.2.0
|
Counter with CBC-MAC (CCM) for 128-bit block ciphers.
Copyright (C) 2006-2015, 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 ccm.h.
#include "cipher.h"
Go to the source code of this file.
Data Structures | |
struct | mbedtls_ccm_context |
CCM context structure. More... | |
Macros | |
#define | MBEDTLS_ERR_CCM_BAD_INPUT -0x000D |
Bad input parameters to function. More... | |
#define | MBEDTLS_ERR_CCM_AUTH_FAILED -0x000F |
Authenticated decryption failed. More... | |
Functions | |
void | mbedtls_ccm_init (mbedtls_ccm_context *ctx) |
Initialize CCM context (just makes references valid) Makes the context ready for mbedtls_ccm_setkey() or mbedtls_ccm_free(). More... | |
int | mbedtls_ccm_setkey (mbedtls_ccm_context *ctx, mbedtls_cipher_id_t cipher, const unsigned char *key, unsigned int keybits) |
CCM initialization (encryption and decryption) More... | |
void | mbedtls_ccm_free (mbedtls_ccm_context *ctx) |
Free a CCM context and underlying cipher sub-context. More... | |
int | mbedtls_ccm_encrypt_and_tag (mbedtls_ccm_context *ctx, size_t length, const unsigned char *iv, size_t iv_len, const unsigned char *add, size_t add_len, const unsigned char *input, unsigned char *output, unsigned char *tag, size_t tag_len) |
CCM buffer encryption. More... | |
int | mbedtls_ccm_auth_decrypt (mbedtls_ccm_context *ctx, size_t length, const unsigned char *iv, size_t iv_len, const unsigned char *add, size_t add_len, const unsigned char *input, unsigned char *output, const unsigned char *tag, size_t tag_len) |
CCM buffer authenticated decryption. More... | |
#define MBEDTLS_ERR_CCM_AUTH_FAILED -0x000F |
#define MBEDTLS_ERR_CCM_BAD_INPUT -0x000D |
int mbedtls_ccm_auth_decrypt | ( | mbedtls_ccm_context * | ctx, |
size_t | length, | ||
const unsigned char * | iv, | ||
size_t | iv_len, | ||
const unsigned char * | add, | ||
size_t | add_len, | ||
const unsigned char * | input, | ||
unsigned char * | output, | ||
const unsigned char * | tag, | ||
size_t | tag_len | ||
) |
CCM buffer authenticated decryption.
ctx | CCM context |
length | length of the input data |
iv | initialization vector |
iv_len | length of IV |
add | additional data |
add_len | length of additional data |
input | buffer holding the input data |
output | buffer for holding the output data |
tag | buffer holding the tag |
tag_len | length of the tag |
int mbedtls_ccm_encrypt_and_tag | ( | mbedtls_ccm_context * | ctx, |
size_t | length, | ||
const unsigned char * | iv, | ||
size_t | iv_len, | ||
const unsigned char * | add, | ||
size_t | add_len, | ||
const unsigned char * | input, | ||
unsigned char * | output, | ||
unsigned char * | tag, | ||
size_t | tag_len | ||
) |
CCM buffer encryption.
ctx | CCM context |
length | length of the input data in bytes |
iv | nonce (initialization vector) |
iv_len | length of IV in bytes must be 2, 3, 4, 5, 6, 7 or 8 |
add | additional data |
add_len | length of additional data in bytes must be less than 2^16 - 2^8 |
input | buffer holding the input data |
output | buffer for holding the output data must be at least 'length' bytes wide |
tag | buffer for holding the tag |
tag_len | length of the tag to generate in bytes must be 4, 6, 8, 10, 14 or 16 |
void mbedtls_ccm_free | ( | mbedtls_ccm_context * | ctx | ) |
Free a CCM context and underlying cipher sub-context.
ctx | CCM context to free |
void mbedtls_ccm_init | ( | mbedtls_ccm_context * | ctx | ) |
Initialize CCM context (just makes references valid) Makes the context ready for mbedtls_ccm_setkey() or mbedtls_ccm_free().
ctx | CCM context to initialize |
int mbedtls_ccm_setkey | ( | mbedtls_ccm_context * | ctx, |
mbedtls_cipher_id_t | cipher, | ||
const unsigned char * | key, | ||
unsigned int | keybits | ||
) |
CCM initialization (encryption and decryption)
ctx | CCM context to be initialized |
cipher | cipher to use (a 128-bit block cipher) |
key | encryption key |
keybits | key size in bits (must be acceptable by the cipher) |