mbed TLS v2.16.0
ccm.h
Go to the documentation of this file.
1 
30 /*
31  * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved
32  * SPDX-License-Identifier: Apache-2.0
33  *
34  * Licensed under the Apache License, Version 2.0 (the "License"); you may
35  * not use this file except in compliance with the License.
36  * You may obtain a copy of the License at
37  *
38  * http://www.apache.org/licenses/LICENSE-2.0
39  *
40  * Unless required by applicable law or agreed to in writing, software
41  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
42  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
43  * See the License for the specific language governing permissions and
44  * limitations under the License.
45  *
46  * This file is part of Mbed TLS (https://tls.mbed.org)
47  */
48 
49 #ifndef MBEDTLS_CCM_H
50 #define MBEDTLS_CCM_H
51 
52 #include "cipher.h"
53 
54 #define MBEDTLS_ERR_CCM_BAD_INPUT -0x000D
55 #define MBEDTLS_ERR_CCM_AUTH_FAILED -0x000F
57 /* MBEDTLS_ERR_CCM_HW_ACCEL_FAILED is deprecated and should not be used. */
58 #define MBEDTLS_ERR_CCM_HW_ACCEL_FAILED -0x0011
60 #ifdef __cplusplus
61 extern "C" {
62 #endif
63 
64 #if !defined(MBEDTLS_CCM_ALT)
65 // Regular implementation
66 //
67 
72 typedef struct mbedtls_ccm_context
73 {
75 }
77 
78 #else /* MBEDTLS_CCM_ALT */
79 #include "ccm_alt.h"
80 #endif /* MBEDTLS_CCM_ALT */
81 
90 
105  mbedtls_cipher_id_t cipher,
106  const unsigned char *key,
107  unsigned int keybits );
108 
117 
155  const unsigned char *iv, size_t iv_len,
156  const unsigned char *add, size_t add_len,
157  const unsigned char *input, unsigned char *output,
158  unsigned char *tag, size_t tag_len );
159 
203  const unsigned char *iv, size_t iv_len,
204  const unsigned char *add, size_t add_len,
205  const unsigned char *input, unsigned char *output,
206  unsigned char *tag, size_t tag_len );
207 
240  const unsigned char *iv, size_t iv_len,
241  const unsigned char *add, size_t add_len,
242  const unsigned char *input, unsigned char *output,
243  const unsigned char *tag, size_t tag_len );
244 
285  const unsigned char *iv, size_t iv_len,
286  const unsigned char *add, size_t add_len,
287  const unsigned char *input, unsigned char *output,
288  const unsigned char *tag, size_t tag_len );
289 
290 #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C)
291 
297 int mbedtls_ccm_self_test( int verbose );
298 #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */
299 
300 #ifdef __cplusplus
301 }
302 #endif
303 
304 #endif /* MBEDTLS_CCM_H */
mbedtls_ccm_context
The CCM context-type definition. The CCM context is passed to the APIs called.
Definition: ccm.h:73
mbedtls_cipher_id_t
mbedtls_cipher_id_t
Supported cipher types.
Definition: cipher.h:84
mbedtls_ccm_self_test
int mbedtls_ccm_self_test(int verbose)
The CCM checkup routine.
mbedtls_ccm_encrypt_and_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)
This function encrypts a buffer using CCM.
mbedtls_ccm_star_auth_decrypt
int mbedtls_ccm_star_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)
This function performs a CCM* authenticated decryption of a buffer.
mbedtls_ccm_init
void mbedtls_ccm_init(mbedtls_ccm_context *ctx)
This function initializes the specified CCM context, to make references valid, and prepare the contex...
cipher.h
This file contains an abstraction interface for use with the cipher primitives provided by the librar...
mbedtls_ccm_context::cipher_ctx
mbedtls_cipher_context_t cipher_ctx
Definition: ccm.h:74
mbedtls_ccm_setkey
int mbedtls_ccm_setkey(mbedtls_ccm_context *ctx, mbedtls_cipher_id_t cipher, const unsigned char *key, unsigned int keybits)
This function initializes the CCM context set in the ctx parameter and sets the encryption key.
mbedtls_ccm_context
struct mbedtls_ccm_context mbedtls_ccm_context
The CCM context-type definition. The CCM context is passed to the APIs called.
mbedtls_ccm_free
void mbedtls_ccm_free(mbedtls_ccm_context *ctx)
This function releases and clears the specified CCM context and underlying cipher sub-context.
mbedtls_cipher_context_t
Definition: cipher.h:285
mbedtls_ccm_auth_decrypt
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)
This function performs a CCM authenticated decryption of a buffer.
mbedtls_ccm_star_encrypt_and_tag
int mbedtls_ccm_star_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)
This function encrypts a buffer using CCM*.