#include "des.h"
#include <string.h>
Go to the source code of this file.
|
void | des_setkey_enc (des_context *ctx, unsigned char key[8]) |
| DES key schedule (56-bit, encryption) More...
|
|
void | des_setkey_dec (des_context *ctx, unsigned char key[8]) |
| DES key schedule (56-bit, decryption) More...
|
|
void | des3_set2key_enc (des3_context *ctx, unsigned char key[16]) |
| Triple-DES key schedule (112-bit, encryption) More...
|
|
void | des3_set2key_dec (des3_context *ctx, unsigned char key[16]) |
| Triple-DES key schedule (112-bit, decryption) More...
|
|
void | des3_set3key_enc (des3_context *ctx, unsigned char key[24]) |
| Triple-DES key schedule (168-bit, encryption) More...
|
|
void | des3_set3key_dec (des3_context *ctx, unsigned char key[24]) |
| Triple-DES key schedule (168-bit, decryption) More...
|
|
void | des_crypt_ecb (des_context *ctx, unsigned char input[8], unsigned char output[8]) |
| DES-ECB block encryption/decryption. More...
|
|
void | des_crypt_cbc (des_context *ctx, int mode, int length, unsigned char iv[8], unsigned char *input, unsigned char *output) |
| DES-CBC buffer encryption/decryption. More...
|
|
void | des3_crypt_ecb (des3_context *ctx, unsigned char input[8], unsigned char output[8]) |
| 3DES-ECB block encryption/decryption More...
|
|
void | des3_crypt_cbc (des3_context *ctx, int mode, int length, unsigned char iv[8], unsigned char *input, unsigned char *output) |
| 3DES-CBC buffer encryption/decryption More...
|
|
◆ DES_FP
Value:{ \
X = ((X << 31) | (X >> 1)) & 0xFFFFFFFF; \
T = (X ^ Y) & 0xAAAAAAAA; X ^= T; Y ^= T; \
Y = ((Y << 31) | (Y >> 1)) & 0xFFFFFFFF; \
T = ((Y >> 8) ^ X) & 0x00FF00FF; X ^= T; Y ^= (T << 8); \
T = ((Y >> 2) ^ X) & 0x33333333; X ^= T; Y ^= (T << 2); \
T = ((X >> 16) ^ Y) & 0x0000FFFF; Y ^= T; X ^= (T << 16); \
T = ((X >> 4) ^ Y) & 0x0F0F0F0F; Y ^= T; X ^= (T << 4); \
}
Definition at line 259 of file des.c.
◆ DES_IP
Value:{ \
T = ((X >> 4) ^ Y) & 0x0F0F0F0F; Y ^= T; X ^= (T << 4); \
T = ((X >> 16) ^ Y) & 0x0000FFFF; Y ^= T; X ^= (T << 16); \
T = ((Y >> 2) ^ X) & 0x33333333; X ^= T; Y ^= (T << 2); \
T = ((Y >> 8) ^ X) & 0x00FF00FF; X ^= T; Y ^= (T << 8); \
Y = ((Y << 1) | (Y >> 31)) & 0xFFFFFFFF; \
T = (X ^ Y) & 0xAAAAAAAA; Y ^= T; X ^= T; \
X = ((X << 1) | (X >> 31)) & 0xFFFFFFFF; \
}
Definition at line 245 of file des.c.
◆ DES_ROUND
#define DES_ROUND |
( |
|
X, |
|
|
|
Y |
|
) |
| |
Value:{ \
Y ^= SB8[ (T ) & 0x3F ] ^ \
SB6[ (T >> 8) & 0x3F ] ^ \
SB4[ (T >> 16) & 0x3F ] ^ \
SB2[ (T >> 24) & 0x3F ]; \
\
T = *
SK++ ^ ((X << 28) | (X >> 4)); \
Y ^= SB7[ (T ) & 0x3F ] ^ \
SB5[ (T >> 8) & 0x3F ] ^ \
SB3[ (T >> 16) & 0x3F ] ^ \
SB1[ (T >> 24) & 0x3F ]; \
}
Definition at line 273 of file des.c.
◆ GET_ULONG_BE
#define GET_ULONG_BE |
( |
|
n, |
|
|
|
b, |
|
|
|
i |
|
) |
| |
Value:{ \
(n) = ( (unsigned long) (b)[(i) ] << 24 ) \
| ( (unsigned long) (b)[(i) + 1] << 16 ) \
| ( (unsigned long) (b)[(i) + 2] << 8 ) \
| ( (unsigned long) (b)[(i) + 3] ); \
}
Definition at line 41 of file des.c.
◆ PUT_ULONG_BE
#define PUT_ULONG_BE |
( |
|
n, |
|
|
|
b, |
|
|
|
i |
|
) |
| |
Value:{ \
(b)[(i) ] = (unsigned char) ( (n) >> 24 ); \
(b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \
(b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \
(b)[(i) + 3] = (unsigned char) ( (n) ); \
}
Definition at line 51 of file des.c.
◆ SWAP
#define SWAP |
( |
|
a, |
|
|
|
b |
|
) |
| { unsigned long t = a; a = b; b = t; t = 0; } |
◆ XYSSL_DES_C
Definition at line 29 of file des.c.
◆ des3_crypt_cbc()
3DES-CBC buffer encryption/decryption
- Parameters
-
ctx | 3DES context |
mode | DES_ENCRYPT or DES_DECRYPT |
length | length of the input data |
iv | initialization vector (updated after use) |
input | buffer holding the input data |
output | buffer holding the output data |
Definition at line 595 of file des.c.
◆ des3_crypt_ecb()
3DES-ECB block encryption/decryption
- Parameters
-
ctx | 3DES context |
input | 64-bit input block |
output | 64-bit output block |
Definition at line 554 of file des.c.
◆ des3_set2key_dec()
Triple-DES key schedule (112-bit, decryption)
- Parameters
-
ctx | 3DES context to be initialized |
key | 16-byte secret key |
Definition at line 422 of file des.c.
◆ des3_set2key_enc()
Triple-DES key schedule (112-bit, encryption)
- Parameters
-
ctx | 3DES context to be initialized |
key | 16-byte secret key |
Definition at line 411 of file des.c.
◆ des3_set3key_dec()
Triple-DES key schedule (168-bit, decryption)
- Parameters
-
ctx | 3DES context to be initialized |
key | 24-byte secret key |
Definition at line 467 of file des.c.
◆ des3_set3key_enc()
Triple-DES key schedule (168-bit, encryption)
- Parameters
-
ctx | 3DES context to be initialized |
key | 24-byte secret key |
Definition at line 456 of file des.c.
◆ des_crypt_cbc()
DES-CBC buffer encryption/decryption.
- Parameters
-
ctx | DES context |
mode | DES_ENCRYPT or DES_DECRYPT |
length | length of the input data |
iv | initialization vector (updated after use) |
input | buffer holding the input data |
output | buffer holding the output data |
Definition at line 507 of file des.c.
◆ des_crypt_ecb()
DES-ECB block encryption/decryption.
- Parameters
-
ctx | DES context |
input | 64-bit input block |
output | 64-bit output block |
Definition at line 478 of file des.c.
◆ des_setkey_dec()
DES key schedule (56-bit, decryption)
- Parameters
-
ctx | DES context to be initialized |
key | 8-byte secret key |
Definition at line 370 of file des.c.
◆ des_setkey_enc()
DES key schedule (56-bit, encryption)
- Parameters
-
ctx | DES context to be initialized |
key | 8-byte secret key |
Definition at line 362 of file des.c.