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 */ | 
