OPTIGA Trust M  1.1.0
C++ library for Optiga Trust M Chip Security Controller
cipher_internal.h
Go to the documentation of this file.
1 
8 /*
9  * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
10  * SPDX-License-Identifier: Apache-2.0
11  *
12  * Licensed under the Apache License, Version 2.0 (the "License"); you may
13  * not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  * http://www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
20  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  *
24  * This file is part of mbed TLS (https://tls.mbed.org)
25  */
26 #ifndef MBEDTLS_CIPHER_WRAP_H
27 #define MBEDTLS_CIPHER_WRAP_H
28 
29 #if !defined(MBEDTLS_CONFIG_FILE)
30 #include "config.h"
31 #else
32 #include MBEDTLS_CONFIG_FILE
33 #endif
34 
35 #include "cipher.h"
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
45 {
48 
50  int (*ecb_func)( void *ctx, mbedtls_operation_t mode,
51  const unsigned char *input, unsigned char *output );
52 
53 #if defined(MBEDTLS_CIPHER_MODE_CBC)
54 
55  int (*cbc_func)( void *ctx, mbedtls_operation_t mode, size_t length,
56  unsigned char *iv, const unsigned char *input,
57  unsigned char *output );
58 #endif
59 
60 #if defined(MBEDTLS_CIPHER_MODE_CFB)
61 
62  int (*cfb_func)( void *ctx, mbedtls_operation_t mode, size_t length, size_t *iv_off,
63  unsigned char *iv, const unsigned char *input,
64  unsigned char *output );
65 #endif
66 
67 #if defined(MBEDTLS_CIPHER_MODE_OFB)
68 
69  int (*ofb_func)( void *ctx, size_t length, size_t *iv_off,
70  unsigned char *iv,
71  const unsigned char *input,
72  unsigned char *output );
73 #endif
74 
75 #if defined(MBEDTLS_CIPHER_MODE_CTR)
76 
77  int (*ctr_func)( void *ctx, size_t length, size_t *nc_off,
78  unsigned char *nonce_counter, unsigned char *stream_block,
79  const unsigned char *input, unsigned char *output );
80 #endif
81 
82 #if defined(MBEDTLS_CIPHER_MODE_XTS)
83 
84  int (*xts_func)( void *ctx, mbedtls_operation_t mode, size_t length,
85  const unsigned char data_unit[16],
86  const unsigned char *input, unsigned char *output );
87 #endif
88 
89 #if defined(MBEDTLS_CIPHER_MODE_STREAM)
90 
91  int (*stream_func)( void *ctx, size_t length,
92  const unsigned char *input, unsigned char *output );
93 #endif
94 
96  int (*setkey_enc_func)( void *ctx, const unsigned char *key,
97  unsigned int key_bitlen );
98 
100  int (*setkey_dec_func)( void *ctx, const unsigned char *key,
101  unsigned int key_bitlen);
102 
104  void * (*ctx_alloc_func)( void );
105 
107  void (*ctx_free_func)( void *ctx );
108 
109 };
110 
111 typedef struct
112 {
116 
118 
119 extern int mbedtls_cipher_supported[];
120 
121 #ifdef __cplusplus
122 }
123 #endif
124 
125 #endif /* MBEDTLS_CIPHER_WRAP_H */
int(* setkey_enc_func)(void *ctx, const unsigned char *key, unsigned int key_bitlen)
Definition: cipher_internal.h:96
mbedtls_operation_t
Definition: cipher.h:206
int(* setkey_dec_func)(void *ctx, const unsigned char *key, unsigned int key_bitlen)
Definition: cipher_internal.h:100
void(* ctx_free_func)(void *ctx)
Definition: cipher_internal.h:107
Configuration options (set of defines)
const mbedtls_cipher_definition_t mbedtls_cipher_definitions[]
Definition: cipher_wrap.c:2122
Definition: cipher.h:242
Definition: cipher_internal.h:44
mbedtls_cipher_type_t
Supported {cipher type, cipher mode} pairs.
Definition: cipher.h:104
mbedtls_cipher_id_t
Supported cipher types.
Definition: cipher.h:84
This file contains an abstraction interface for use with the cipher primitives provided by the librar...
int mbedtls_cipher_supported[]
Definition: cipher_wrap.c:2270
Definition: cipher_internal.h:111
mbedtls_cipher_id_t cipher
Definition: cipher_internal.h:47
const mbedtls_cipher_info_t * info
Definition: cipher_internal.h:114
int(* ecb_func)(void *ctx, mbedtls_operation_t mode, const unsigned char *input, unsigned char *output)
Definition: cipher_internal.h:50
mbedtls_cipher_type_t type
Definition: cipher_internal.h:113