📄 des.h
字号:
/** * \file des.h */#ifndef XYSSL_DES_H#define XYSSL_DES_H#define DES_ENCRYPT 1#define DES_DECRYPT 0/** * \brief DES context structure */typedef struct{ int mode; /*!< encrypt/decrypt */ unsigned long sk[32]; /*!< DES subkeys */}des_context;/** * \brief Triple-DES context structure */typedef struct{ int mode; /*!< encrypt/decrypt */ unsigned long sk[96]; /*!< 3DES subkeys */}des3_context;#ifdef __cplusplusextern "C" {#endif/** * \brief DES key schedule (56-bit, encryption) * * \param ctx DES context to be initialized * \param key 8-byte secret key */void des_setkey_enc( des_context *ctx, unsigned char key[8] );/** * \brief DES key schedule (56-bit, decryption) * * \param ctx DES context to be initialized * \param key 8-byte secret key */void des_setkey_dec( des_context *ctx, unsigned char key[8] );/** * \brief Triple-DES key schedule (112-bit, encryption) * * \param ctx 3DES context to be initialized * \param key 16-byte secret key */void des3_set2key_enc( des3_context *ctx, unsigned char key[16] );/** * \brief Triple-DES key schedule (112-bit, decryption) * * \param ctx 3DES context to be initialized * \param key 16-byte secret key */void des3_set2key_dec( des3_context *ctx, unsigned char key[16] );/** * \brief Triple-DES key schedule (168-bit, encryption) * * \param ctx 3DES context to be initialized * \param key 24-byte secret key */void des3_set3key_enc( des3_context *ctx, unsigned char key[24] );/** * \brief Triple-DES key schedule (168-bit, decryption) * * \param ctx 3DES context to be initialized * \param key 24-byte secret key */void des3_set3key_dec( des3_context *ctx, unsigned char key[24] );/** * \brief DES-ECB block encryption/decryption * * \param ctx DES context * \param input 64-bit input block * \param output 64-bit output block */void des_crypt_ecb( des_context *ctx, unsigned char input[8], unsigned char output[8] );/** * \brief DES-CBC buffer encryption/decryption * * \param ctx DES context * \param mode DES_ENCRYPT or DES_DECRYPT * \param length length of the input data * \param iv initialization vector (updated after use) * \param input buffer holding the input data * \param output buffer holding the output data */void des_crypt_cbc( des_context *ctx, int mode, int length, unsigned char iv[8], unsigned char *input, unsigned char *output );/** * \brief 3DES-ECB block encryption/decryption * * \param ctx 3DES context * \param input 64-bit input block * \param output 64-bit output block */void des3_crypt_ecb( des3_context *ctx, unsigned char input[8], unsigned char output[8] );/** * \brief 3DES-CBC buffer encryption/decryption * * \param ctx 3DES context * \param mode DES_ENCRYPT or DES_DECRYPT * \param length length of the input data * \param iv initialization vector (updated after use) * \param input buffer holding the input data * \param output buffer holding the output data */void des3_crypt_cbc( des3_context *ctx, int mode, int length, unsigned char iv[8], unsigned char *input, unsigned char *output );/* * \brief Checkup routine * * \return 0 if successful, or 1 if the test failed */int des_self_test( int verbose );#ifdef __cplusplus}#endif#endif /* des.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -