ccm.h

Go to the documentation of this file.
00001 
00023 #ifndef MBEDTLS_CCM_H
00024 #define MBEDTLS_CCM_H
00025 
00026 #include "cipher.h"
00027 
00028 #define MBEDTLS_ERR_CCM_BAD_INPUT      -0x000D 
00029 #define MBEDTLS_ERR_CCM_AUTH_FAILED    -0x000F 
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034 
00038 typedef struct {
00039     mbedtls_cipher_context_t cipher_ctx;    
00040 }
00041 mbedtls_ccm_context;
00042 
00050 void mbedtls_ccm_init( mbedtls_ccm_context *ctx );
00051 
00062 int mbedtls_ccm_setkey( mbedtls_ccm_context *ctx,
00063                         mbedtls_cipher_id_t cipher,
00064                         const unsigned char *key,
00065                         unsigned int keybits );
00066 
00072 void mbedtls_ccm_free( mbedtls_ccm_context *ctx );
00073 
00099 int mbedtls_ccm_encrypt_and_tag( mbedtls_ccm_context *ctx, size_t length,
00100                          const unsigned char *iv, size_t iv_len,
00101                          const unsigned char *add, size_t add_len,
00102                          const unsigned char *input, unsigned char *output,
00103                          unsigned char *tag, size_t tag_len );
00104 
00122 int mbedtls_ccm_auth_decrypt( mbedtls_ccm_context *ctx, size_t length,
00123                       const unsigned char *iv, size_t iv_len,
00124                       const unsigned char *add, size_t add_len,
00125                       const unsigned char *input, unsigned char *output,
00126                       const unsigned char *tag, size_t tag_len );
00127 
00128 #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C)
00129 
00134 int mbedtls_ccm_self_test( int verbose );
00135 #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */
00136 
00137 #ifdef __cplusplus
00138 }
00139 #endif
00140 
00141 #endif /* MBEDTLS_CCM_H */

Generated on 11 Mar 2017 for mbed TLS v2.4.2 by  doxygen 1.4.7