mbed TLS v2.2.1
des.h
Go to the documentation of this file.
1 
23 #ifndef MBEDTLS_DES_H
24 #define MBEDTLS_DES_H
25 
26 #if !defined(MBEDTLS_CONFIG_FILE)
27 #include "config.h"
28 #else
29 #include MBEDTLS_CONFIG_FILE
30 #endif
31 
32 #include <stddef.h>
33 #include <stdint.h>
34 
35 #define MBEDTLS_DES_ENCRYPT 1
36 #define MBEDTLS_DES_DECRYPT 0
37 
38 #define MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH -0x0032
40 #define MBEDTLS_DES_KEY_SIZE 8
41 
42 #if !defined(MBEDTLS_DES_ALT)
43 // Regular implementation
44 //
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
53 typedef struct
54 {
55  uint32_t sk[32];
56 }
57 mbedtls_des_context;
58 
62 typedef struct
63 {
64  uint32_t sk[96];
65 }
66 mbedtls_des3_context;
67 
73 void mbedtls_des_init( mbedtls_des_context *ctx );
74 
80 void mbedtls_des_free( mbedtls_des_context *ctx );
81 
87 void mbedtls_des3_init( mbedtls_des3_context *ctx );
88 
94 void mbedtls_des3_free( mbedtls_des3_context *ctx );
95 
104 void mbedtls_des_key_set_parity( unsigned char key[MBEDTLS_DES_KEY_SIZE] );
105 
116 int mbedtls_des_key_check_key_parity( const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
117 
125 int mbedtls_des_key_check_weak( const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
126 
135 int mbedtls_des_setkey_enc( mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
136 
145 int mbedtls_des_setkey_dec( mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
146 
155 int mbedtls_des3_set2key_enc( mbedtls_des3_context *ctx,
156  const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2] );
157 
166 int mbedtls_des3_set2key_dec( mbedtls_des3_context *ctx,
167  const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2] );
168 
177 int mbedtls_des3_set3key_enc( mbedtls_des3_context *ctx,
178  const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3] );
179 
188 int mbedtls_des3_set3key_dec( mbedtls_des3_context *ctx,
189  const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3] );
190 
200 int mbedtls_des_crypt_ecb( mbedtls_des_context *ctx,
201  const unsigned char input[8],
202  unsigned char output[8] );
203 
204 #if defined(MBEDTLS_CIPHER_MODE_CBC)
205 
223 int mbedtls_des_crypt_cbc( mbedtls_des_context *ctx,
224  int mode,
225  size_t length,
226  unsigned char iv[8],
227  const unsigned char *input,
228  unsigned char *output );
229 #endif /* MBEDTLS_CIPHER_MODE_CBC */
230 
240 int mbedtls_des3_crypt_ecb( mbedtls_des3_context *ctx,
241  const unsigned char input[8],
242  unsigned char output[8] );
243 
244 #if defined(MBEDTLS_CIPHER_MODE_CBC)
245 
265 int mbedtls_des3_crypt_cbc( mbedtls_des3_context *ctx,
266  int mode,
267  size_t length,
268  unsigned char iv[8],
269  const unsigned char *input,
270  unsigned char *output );
271 #endif /* MBEDTLS_CIPHER_MODE_CBC */
272 
281 void mbedtls_des_setkey( uint32_t SK[32],
282  const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
283 #ifdef __cplusplus
284 }
285 #endif
286 
287 #else /* MBEDTLS_DES_ALT */
288 #include "des_alt.h"
289 #endif /* MBEDTLS_DES_ALT */
290 
291 #ifdef __cplusplus
292 extern "C" {
293 #endif
294 
300 int mbedtls_des_self_test( int verbose );
301 
302 #ifdef __cplusplus
303 }
304 #endif
305 
306 #endif /* des.h */
#define MBEDTLS_DES_KEY_SIZE
Definition: des.h:40
Configuration options (set of defines)
int mbedtls_des_self_test(int verbose)
Checkup routine.