diff options
Diffstat (limited to 'include/des.h')
-rw-r--r-- | include/des.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/include/des.h b/include/des.h new file mode 100644 index 0000000..27619aa --- /dev/null +++ b/include/des.h @@ -0,0 +1,45 @@ +#ifndef _DES_H +#define _DES_H + +#ifndef uint8 +#define uint8 unsigned char +#endif + +#ifndef uint32 +#define uint32 unsigned long int +#endif + +typedef struct +{ + uint32 esk[32]; /* DES encryption subkeys */ + uint32 dsk[32]; /* DES decryption subkeys */ +} +des_context; + +typedef struct +{ + uint32 esk[96]; /* Triple-DES encryption subkeys */ + uint32 dsk[96]; /* Triple-DES decryption subkeys */ +} +des3_context; + +#ifdef __cplusplus +extern "C" { +#endif + +int des_set_key( des_context *ctx, uint8 key[8] ); +void des_encrypt( des_context *ctx, uint8 input[8], uint8 output[8] ); +void des_decrypt( des_context *ctx, uint8 input[8], uint8 output[8] ); + +int des3_set_2keys( des3_context *ctx, uint8 key1[8], uint8 key2[8] ); +int des3_set_3keys( des3_context *ctx, uint8 key1[8], uint8 key2[8], + uint8 key3[8] ); + +void des3_encrypt( des3_context *ctx, uint8 input[8], uint8 output[8] ); +void des3_decrypt( des3_context *ctx, uint8 input[8], uint8 output[8] ); + +#ifdef __cplusplus +} +#endif + +#endif /* des.h */ |