mbed TLS v2.0.0
xtea.h
Go to the documentation of this file.
1 
24 #ifndef MBEDTLS_XTEA_H
25 #define MBEDTLS_XTEA_H
26 
27 #if !defined(MBEDTLS_CONFIG_FILE)
28 #include "config.h"
29 #else
30 #include MBEDTLS_CONFIG_FILE
31 #endif
32 
33 #include <stddef.h>
34 #include <stdint.h>
35 
36 #define MBEDTLS_XTEA_ENCRYPT 1
37 #define MBEDTLS_XTEA_DECRYPT 0
38 
39 #define MBEDTLS_ERR_XTEA_INVALID_INPUT_LENGTH -0x0028
41 #if !defined(MBEDTLS_XTEA_ALT)
42 // Regular implementation
43 //
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
52 typedef struct
53 {
54  uint32_t k[4];
55 }
57 
64 
71 
78 void mbedtls_xtea_setup( mbedtls_xtea_context *ctx, const unsigned char key[16] );
79 
91  int mode,
92  const unsigned char input[8],
93  unsigned char output[8] );
94 
95 #if defined(MBEDTLS_CIPHER_MODE_CBC)
96 
110  int mode,
111  size_t length,
112  unsigned char iv[8],
113  const unsigned char *input,
114  unsigned char *output);
115 #endif /* MBEDTLS_CIPHER_MODE_CBC */
116 
117 #ifdef __cplusplus
118 }
119 #endif
120 
121 #else /* MBEDTLS_XTEA_ALT */
122 #include "xtea_alt.h"
123 #endif /* MBEDTLS_XTEA_ALT */
124 
125 #ifdef __cplusplus
126 extern "C" {
127 #endif
128 
134 int mbedtls_xtea_self_test( int verbose );
135 
136 #ifdef __cplusplus
137 }
138 #endif
139 
140 #endif /* xtea.h */
int mbedtls_xtea_crypt_ecb(mbedtls_xtea_context *ctx, int mode, const unsigned char input[8], unsigned char output[8])
XTEA cipher function.
int mbedtls_xtea_crypt_cbc(mbedtls_xtea_context *ctx, int mode, size_t length, unsigned char iv[8], const unsigned char *input, unsigned char *output)
XTEA CBC cipher function.
void mbedtls_xtea_free(mbedtls_xtea_context *ctx)
Clear XTEA context.
Compatibility names (set of defines)
void mbedtls_xtea_init(mbedtls_xtea_context *ctx)
Initialize XTEA context.
void mbedtls_xtea_setup(mbedtls_xtea_context *ctx, const unsigned char key[16])
XTEA key schedule.
int mbedtls_xtea_self_test(int verbose)
Checkup routine.
XTEA context structure.
Definition: xtea.h:52