Go to the documentation of this file.
31 #ifndef MBEDTLS_CIPHER_H
32 #define MBEDTLS_CIPHER_H
34 #if !defined(MBEDTLS_CONFIG_FILE)
37 #include MBEDTLS_CONFIG_FILE
43 #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C)
44 #define MBEDTLS_CIPHER_MODE_AEAD
47 #if defined(MBEDTLS_CIPHER_MODE_CBC)
48 #define MBEDTLS_CIPHER_MODE_WITH_PADDING
51 #if defined(MBEDTLS_ARC4_C) || defined(MBEDTLS_CIPHER_NULL_CIPHER) || \
52 defined(MBEDTLS_CHACHA20_C)
53 #define MBEDTLS_CIPHER_MODE_STREAM
56 #if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
57 !defined(inline) && !defined(__cplusplus)
58 #define inline __inline
61 #define MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE -0x6080
62 #define MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA -0x6100
63 #define MBEDTLS_ERR_CIPHER_ALLOC_FAILED -0x6180
64 #define MBEDTLS_ERR_CIPHER_INVALID_PADDING -0x6200
65 #define MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED -0x6280
66 #define MBEDTLS_ERR_CIPHER_AUTH_FAILED -0x6300
67 #define MBEDTLS_ERR_CIPHER_INVALID_CONTEXT -0x6380
70 #define MBEDTLS_ERR_CIPHER_HW_ACCEL_FAILED -0x6400
72 #define MBEDTLS_CIPHER_VARIABLE_IV_LEN 0x01
73 #define MBEDTLS_CIPHER_VARIABLE_KEY_LEN 0x02
226 #define MBEDTLS_MAX_IV_LENGTH 16
228 #define MBEDTLS_MAX_BLOCK_LENGTH 16
299 #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING)
303 void (*
add_padding)(
unsigned char *output,
size_t olen,
size_t data_len );
304 int (*
get_padding)(
unsigned char *input,
size_t ilen,
size_t *data_len );
323 #if defined(MBEDTLS_CMAC_C)
575 const unsigned char *key,
579 #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING)
619 const unsigned char *iv,
633 #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C)
649 const unsigned char *ad,
size_t ad_len );
687 size_t ilen,
unsigned char *output,
size_t *olen );
712 unsigned char *output,
size_t *olen );
714 #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C)
732 unsigned char *tag,
size_t tag_len );
748 const unsigned char *tag,
size_t tag_len );
785 const unsigned char *iv,
size_t iv_len,
786 const unsigned char *input,
size_t ilen,
787 unsigned char *output,
size_t *olen );
789 #if defined(MBEDTLS_CIPHER_MODE_AEAD)
821 const unsigned char *iv,
size_t iv_len,
822 const unsigned char *ad,
size_t ad_len,
823 const unsigned char *input,
size_t ilen,
824 unsigned char *output,
size_t *olen,
825 unsigned char *tag,
size_t tag_len );
863 const unsigned char *iv,
size_t iv_len,
864 const unsigned char *ad,
size_t ad_len,
865 const unsigned char *input,
size_t ilen,
866 unsigned char *output,
size_t *olen,
867 const unsigned char *tag,
size_t tag_len );