PolarSSL v1.3.7
xtea.h
Go to the documentation of this file.
1 
27 #ifndef POLARSSL_XTEA_H
28 #define POLARSSL_XTEA_H
29 
30 #if !defined(POLARSSL_CONFIG_FILE)
31 #include "config.h"
32 #else
33 #include POLARSSL_CONFIG_FILE
34 #endif
35 
36 #include <string.h>
37 
38 #if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32)
39 #include <basetsd.h>
40 typedef UINT32 uint32_t;
41 #else
42 #include <inttypes.h>
43 #endif
44 
45 #define XTEA_ENCRYPT 1
46 #define XTEA_DECRYPT 0
47 
48 #define POLARSSL_ERR_XTEA_INVALID_INPUT_LENGTH -0x0028
50 #if !defined(POLARSSL_XTEA_ALT)
51 // Regular implementation
52 //
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
61 typedef struct
62 {
63  uint32_t k[4];
64 }
66 
73 void xtea_setup( xtea_context *ctx, const unsigned char key[16] );
74 
86  int mode,
87  const unsigned char input[8],
88  unsigned char output[8] );
89 
90 #if defined(POLARSSL_CIPHER_MODE_CBC)
91 
104 int xtea_crypt_cbc( xtea_context *ctx,
105  int mode,
106  size_t length,
107  unsigned char iv[8],
108  const unsigned char *input,
109  unsigned char *output);
110 #endif /* POLARSSL_CIPHER_MODE_CBC */
111 
112 #ifdef __cplusplus
113 }
114 #endif
115 
116 #else /* POLARSSL_XTEA_ALT */
117 #include "xtea_alt.h"
118 #endif /* POLARSSL_XTEA_ALT */
119 
120 #ifdef __cplusplus
121 extern "C" {
122 #endif
123 
129 int xtea_self_test( int verbose );
130 
131 #ifdef __cplusplus
132 }
133 #endif
134 
135 #endif /* xtea.h */
Configuration options (set of defines)
int xtea_crypt_ecb(xtea_context *ctx, int mode, const unsigned char input[8], unsigned char output[8])
XTEA cipher function.
void xtea_setup(xtea_context *ctx, const unsigned char key[16])
XTEA key schedule.
int xtea_crypt_cbc(xtea_context *ctx, int mode, size_t length, unsigned char iv[8], const unsigned char *input, unsigned char *output)
XTEA CBC cipher function.
XTEA context structure.
Definition: xtea.h:61
int xtea_self_test(int verbose)
Checkup routine.