mbed TLS v2.0.0
des.h
Go to the documentation of this file.
1 
24 #ifndef MBEDTLS_DES_H
25 #define MBEDTLS_DES_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_DES_ENCRYPT 1
37 #define MBEDTLS_DES_DECRYPT 0
38 
39 #define MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH -0x0032
41 #define MBEDTLS_DES_KEY_SIZE 8
42 
43 #if !defined(MBEDTLS_DES_ALT)
44 // Regular implementation
45 //
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
54 typedef struct
55 {
56  uint32_t sk[32];
57 }
59 
63 typedef struct
64 {
65  uint32_t sk[96];
66 }
68 
75 
82 
89 
96 
105 void mbedtls_des_key_set_parity( unsigned char key[MBEDTLS_DES_KEY_SIZE] );
106 
117 int mbedtls_des_key_check_key_parity( const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
118 
126 int mbedtls_des_key_check_weak( const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
127 
136 int mbedtls_des_setkey_enc( mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
137 
146 int mbedtls_des_setkey_dec( mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
147 
157  const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2] );
158 
168  const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2] );
169 
179  const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3] );
180 
190  const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3] );
191 
202  const unsigned char input[8],
203  unsigned char output[8] );
204 
205 #if defined(MBEDTLS_CIPHER_MODE_CBC)
206 
225  int mode,
226  size_t length,
227  unsigned char iv[8],
228  const unsigned char *input,
229  unsigned char *output );
230 #endif /* MBEDTLS_CIPHER_MODE_CBC */
231 
242  const unsigned char input[8],
243  unsigned char output[8] );
244 
245 #if defined(MBEDTLS_CIPHER_MODE_CBC)
246 
267  int mode,
268  size_t length,
269  unsigned char iv[8],
270  const unsigned char *input,
271  unsigned char *output );
272 #endif /* MBEDTLS_CIPHER_MODE_CBC */
273 
282 void mbedtls_des_setkey( uint32_t SK[32],
283  const unsigned char key[MBEDTLS_DES_KEY_SIZE] );
284 #ifdef __cplusplus
285 }
286 #endif
287 
288 #else /* MBEDTLS_DES_ALT */
289 #include "des_alt.h"
290 #endif /* MBEDTLS_DES_ALT */
291 
292 #ifdef __cplusplus
293 extern "C" {
294 #endif
295 
301 int mbedtls_des_self_test( int verbose );
302 
303 #ifdef __cplusplus
304 }
305 #endif
306 
307 #endif /* des.h */
int mbedtls_des3_crypt_ecb(mbedtls_des3_context *ctx, const unsigned char input[8], unsigned char output[8])
3DES-ECB block encryption/decryption
int mbedtls_des_key_check_weak(const unsigned char key[MBEDTLS_DES_KEY_SIZE])
Check that key is not a weak or semi-weak DES key.
void mbedtls_des3_init(mbedtls_des3_context *ctx)
Initialize Triple-DES context.
int mbedtls_des3_set2key_dec(mbedtls_des3_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE *2])
Triple-DES key schedule (112-bit, decryption)
#define MBEDTLS_DES_KEY_SIZE
Definition: des.h:41
DES context structure.
Definition: des.h:54
Compatibility names (set of defines)
int mbedtls_des3_set2key_enc(mbedtls_des3_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE *2])
Triple-DES key schedule (112-bit, encryption)
int mbedtls_des3_set3key_enc(mbedtls_des3_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE *3])
Triple-DES key schedule (168-bit, encryption)
Triple-DES context structure.
Definition: des.h:63
int mbedtls_des_self_test(int verbose)
Checkup routine.
int mbedtls_des_crypt_ecb(mbedtls_des_context *ctx, const unsigned char input[8], unsigned char output[8])
DES-ECB block encryption/decryption.
void mbedtls_des_free(mbedtls_des_context *ctx)
Clear DES context.
int mbedtls_des3_crypt_cbc(mbedtls_des3_context *ctx, int mode, size_t length, unsigned char iv[8], const unsigned char *input, unsigned char *output)
3DES-CBC buffer encryption/decryption
void mbedtls_des_init(mbedtls_des_context *ctx)
Initialize DES context.
void mbedtls_des3_free(mbedtls_des3_context *ctx)
Clear Triple-DES context.
int mbedtls_des3_set3key_dec(mbedtls_des3_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE *3])
Triple-DES key schedule (168-bit, decryption)
void mbedtls_des_setkey(uint32_t SK[32], const unsigned char key[MBEDTLS_DES_KEY_SIZE])
Internal function for key expansion.
int mbedtls_des_setkey_enc(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE])
DES key schedule (56-bit, encryption)
void mbedtls_des_key_set_parity(unsigned char key[MBEDTLS_DES_KEY_SIZE])
Set key parity on the given key to odd.
int mbedtls_des_key_check_key_parity(const unsigned char key[MBEDTLS_DES_KEY_SIZE])
Check that key parity on the given key is odd.
int mbedtls_des_crypt_cbc(mbedtls_des_context *ctx, int mode, size_t length, unsigned char iv[8], const unsigned char *input, unsigned char *output)
DES-CBC buffer encryption/decryption.
int mbedtls_des_setkey_dec(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE])
DES key schedule (56-bit, decryption)