Data Structures |
struct | mbedtls_cipher_info_t |
| Cipher information. More...
|
struct | mbedtls_cipher_context_t |
| Generic cipher context. More...
|
Defines |
#define | MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE -0x6080 |
| The selected feature is not available.
|
#define | MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA -0x6100 |
| Bad input parameters to function.
|
#define | MBEDTLS_ERR_CIPHER_ALLOC_FAILED -0x6180 |
| Failed to allocate memory.
|
#define | MBEDTLS_ERR_CIPHER_INVALID_PADDING -0x6200 |
| Input data contains invalid padding and is rejected.
|
#define | MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED -0x6280 |
| Decryption of block requires a full block.
|
#define | MBEDTLS_ERR_CIPHER_AUTH_FAILED -0x6300 |
| Authentication failed (for AEAD modes).
|
#define | MBEDTLS_ERR_CIPHER_INVALID_CONTEXT -0x6380 |
| The context is invalid, eg because it was free()ed.
|
#define | MBEDTLS_CIPHER_VARIABLE_IV_LEN 0x01 |
| Cipher accepts IVs of variable length.
|
#define | MBEDTLS_CIPHER_VARIABLE_KEY_LEN 0x02 |
| Cipher accepts keys of variable length.
|
#define | MBEDTLS_MAX_IV_LENGTH 16 |
| Maximum length of any IV, in bytes.
|
#define | MBEDTLS_MAX_BLOCK_LENGTH 16 |
| Maximum block size of any cipher, in bytes.
|
Typedefs |
typedef struct
mbedtls_cipher_base_t | mbedtls_cipher_base_t |
| Base cipher information (opaque struct).
|
Enumerations |
enum | mbedtls_cipher_id_t {
MBEDTLS_CIPHER_ID_NONE = 0,
MBEDTLS_CIPHER_ID_NULL,
MBEDTLS_CIPHER_ID_AES,
MBEDTLS_CIPHER_ID_DES,
MBEDTLS_CIPHER_ID_3DES,
MBEDTLS_CIPHER_ID_CAMELLIA,
MBEDTLS_CIPHER_ID_BLOWFISH,
MBEDTLS_CIPHER_ID_ARC4
} |
enum | mbedtls_cipher_type_t {
MBEDTLS_CIPHER_NONE = 0,
MBEDTLS_CIPHER_NULL,
MBEDTLS_CIPHER_AES_128_ECB,
MBEDTLS_CIPHER_AES_192_ECB,
MBEDTLS_CIPHER_AES_256_ECB,
MBEDTLS_CIPHER_AES_128_CBC,
MBEDTLS_CIPHER_AES_192_CBC,
MBEDTLS_CIPHER_AES_256_CBC,
MBEDTLS_CIPHER_AES_128_CFB128,
MBEDTLS_CIPHER_AES_192_CFB128,
MBEDTLS_CIPHER_AES_256_CFB128,
MBEDTLS_CIPHER_AES_128_CTR,
MBEDTLS_CIPHER_AES_192_CTR,
MBEDTLS_CIPHER_AES_256_CTR,
MBEDTLS_CIPHER_AES_128_GCM,
MBEDTLS_CIPHER_AES_192_GCM,
MBEDTLS_CIPHER_AES_256_GCM,
MBEDTLS_CIPHER_CAMELLIA_128_ECB,
MBEDTLS_CIPHER_CAMELLIA_192_ECB,
MBEDTLS_CIPHER_CAMELLIA_256_ECB,
MBEDTLS_CIPHER_CAMELLIA_128_CBC,
MBEDTLS_CIPHER_CAMELLIA_192_CBC,
MBEDTLS_CIPHER_CAMELLIA_256_CBC,
MBEDTLS_CIPHER_CAMELLIA_128_CFB128,
MBEDTLS_CIPHER_CAMELLIA_192_CFB128,
MBEDTLS_CIPHER_CAMELLIA_256_CFB128,
MBEDTLS_CIPHER_CAMELLIA_128_CTR,
MBEDTLS_CIPHER_CAMELLIA_192_CTR,
MBEDTLS_CIPHER_CAMELLIA_256_CTR,
MBEDTLS_CIPHER_CAMELLIA_128_GCM,
MBEDTLS_CIPHER_CAMELLIA_192_GCM,
MBEDTLS_CIPHER_CAMELLIA_256_GCM,
MBEDTLS_CIPHER_DES_ECB,
MBEDTLS_CIPHER_DES_CBC,
MBEDTLS_CIPHER_DES_EDE_ECB,
MBEDTLS_CIPHER_DES_EDE_CBC,
MBEDTLS_CIPHER_DES_EDE3_ECB,
MBEDTLS_CIPHER_DES_EDE3_CBC,
MBEDTLS_CIPHER_BLOWFISH_ECB,
MBEDTLS_CIPHER_BLOWFISH_CBC,
MBEDTLS_CIPHER_BLOWFISH_CFB64,
MBEDTLS_CIPHER_BLOWFISH_CTR,
MBEDTLS_CIPHER_ARC4_128,
MBEDTLS_CIPHER_AES_128_CCM,
MBEDTLS_CIPHER_AES_192_CCM,
MBEDTLS_CIPHER_AES_256_CCM,
MBEDTLS_CIPHER_CAMELLIA_128_CCM,
MBEDTLS_CIPHER_CAMELLIA_192_CCM,
MBEDTLS_CIPHER_CAMELLIA_256_CCM
} |
enum | mbedtls_cipher_mode_t {
MBEDTLS_MODE_NONE = 0,
MBEDTLS_MODE_ECB,
MBEDTLS_MODE_CBC,
MBEDTLS_MODE_CFB,
MBEDTLS_MODE_OFB,
MBEDTLS_MODE_CTR,
MBEDTLS_MODE_GCM,
MBEDTLS_MODE_STREAM,
MBEDTLS_MODE_CCM
} |
enum | mbedtls_cipher_padding_t {
MBEDTLS_PADDING_PKCS7 = 0,
MBEDTLS_PADDING_ONE_AND_ZEROS,
MBEDTLS_PADDING_ZEROS_AND_LEN,
MBEDTLS_PADDING_ZEROS,
MBEDTLS_PADDING_NONE
} |
enum | mbedtls_operation_t { MBEDTLS_OPERATION_NONE = -1,
MBEDTLS_DECRYPT = 0,
MBEDTLS_ENCRYPT
} |
enum | { MBEDTLS_KEY_LENGTH_NONE = 0,
MBEDTLS_KEY_LENGTH_DES = 64,
MBEDTLS_KEY_LENGTH_DES_EDE = 128,
MBEDTLS_KEY_LENGTH_DES_EDE3 = 192
} |
Functions |
const int * | mbedtls_cipher_list (void) |
| Returns the list of ciphers supported by the generic cipher module.
|
const mbedtls_cipher_info_t * | mbedtls_cipher_info_from_string (const char *cipher_name) |
| Returns the cipher information structure associated with the given cipher name.
|
const mbedtls_cipher_info_t * | mbedtls_cipher_info_from_type (const mbedtls_cipher_type_t cipher_type) |
| Returns the cipher information structure associated with the given cipher type.
|
const mbedtls_cipher_info_t * | mbedtls_cipher_info_from_values (const mbedtls_cipher_id_t cipher_id, int key_bitlen, const mbedtls_cipher_mode_t mode) |
| Returns the cipher information structure associated with the given cipher id, key size and mode.
|
void | mbedtls_cipher_init (mbedtls_cipher_context_t *ctx) |
| Initialize a cipher_context (as NONE).
|
void | mbedtls_cipher_free (mbedtls_cipher_context_t *ctx) |
| Free and clear the cipher-specific context of ctx.
|
int | mbedtls_cipher_setup (mbedtls_cipher_context_t *ctx, const mbedtls_cipher_info_t *cipher_info) |
| Initialises and fills the cipher context structure with the appropriate values.
|
static unsigned int | mbedtls_cipher_get_block_size (const mbedtls_cipher_context_t *ctx) |
| Returns the block size of the given cipher.
|
static mbedtls_cipher_mode_t | mbedtls_cipher_get_cipher_mode (const mbedtls_cipher_context_t *ctx) |
| Returns the mode of operation for the cipher.
|
static int | mbedtls_cipher_get_iv_size (const mbedtls_cipher_context_t *ctx) |
| Returns the size of the cipher's IV/NONCE in bytes.
|
static mbedtls_cipher_type_t | mbedtls_cipher_get_type (const mbedtls_cipher_context_t *ctx) |
| Returns the type of the given cipher.
|
static const char * | mbedtls_cipher_get_name (const mbedtls_cipher_context_t *ctx) |
| Returns the name of the given cipher, as a string.
|
static int | mbedtls_cipher_get_key_bitlen (const mbedtls_cipher_context_t *ctx) |
| Returns the key length of the cipher.
|
static mbedtls_operation_t | mbedtls_cipher_get_operation (const mbedtls_cipher_context_t *ctx) |
| Returns the operation of the given cipher.
|
int | mbedtls_cipher_setkey (mbedtls_cipher_context_t *ctx, const unsigned char *key, int key_bitlen, const mbedtls_operation_t operation) |
| Set the key to use with the given context.
|
int | mbedtls_cipher_set_iv (mbedtls_cipher_context_t *ctx, const unsigned char *iv, size_t iv_len) |
| Set the initialization vector (IV) or nonce.
|
int | mbedtls_cipher_reset (mbedtls_cipher_context_t *ctx) |
| Finish preparation of the given context.
|
int | mbedtls_cipher_update (mbedtls_cipher_context_t *ctx, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen) |
| Generic cipher update function.
|
int | mbedtls_cipher_finish (mbedtls_cipher_context_t *ctx, unsigned char *output, size_t *olen) |
| Generic cipher finalisation function.
|
int | mbedtls_cipher_crypt (mbedtls_cipher_context_t *ctx, const unsigned char *iv, size_t iv_len, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen) |
| Generic all-in-one encryption/decryption (for all ciphers except AEAD constructs).
|
Generic cipher wrapper.
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
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.