📄 tomcrypt_cipher.h
字号:
#ifdef LTC_SAFERint safer_k64_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int safer_sk64_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int safer_k128_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int safer_sk128_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int safer_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);int safer_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key);int safer_k64_test(void);int safer_sk64_test(void);int safer_sk128_test(void);void safer_done(symmetric_key *skey);int safer_64_keysize(int *keysize);int safer_128_keysize(int *keysize);extern const struct ltc_cipher_descriptor safer_k64_desc, safer_k128_desc, safer_sk64_desc, safer_sk128_desc;#endif#ifdef LTC_RIJNDAEL/* make aes an alias */#define aes_setup rijndael_setup#define aes_ecb_encrypt rijndael_ecb_encrypt#define aes_ecb_decrypt rijndael_ecb_decrypt#define aes_test rijndael_test#define aes_done rijndael_done#define aes_keysize rijndael_keysize#define aes_enc_setup rijndael_enc_setup#define aes_enc_ecb_encrypt rijndael_enc_ecb_encrypt#define aes_enc_keysize rijndael_enc_keysizeint rijndael_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int rijndael_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int rijndael_test(void);void rijndael_done(symmetric_key *skey);int rijndael_keysize(int *keysize);int rijndael_enc_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int rijndael_enc_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void rijndael_enc_done(symmetric_key *skey);int rijndael_enc_keysize(int *keysize);extern const struct ltc_cipher_descriptor rijndael_desc, aes_desc;extern const struct ltc_cipher_descriptor rijndael_enc_desc, aes_enc_desc;#endif#ifdef LTC_XTEAint xtea_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int xtea_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int xtea_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int xtea_test(void);void xtea_done(symmetric_key *skey);int xtea_keysize(int *keysize);extern const struct ltc_cipher_descriptor xtea_desc;#endif#ifdef LTC_TWOFISHint twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int twofish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int twofish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int twofish_test(void);void twofish_done(symmetric_key *skey);int twofish_keysize(int *keysize);extern const struct ltc_cipher_descriptor twofish_desc;#endif#ifdef LTC_DESint des_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int des_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int des_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int des_test(void);void des_done(symmetric_key *skey);int des_keysize(int *keysize);int des3_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int des3_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int des3_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int des3_test(void);void des3_done(symmetric_key *skey);int des3_keysize(int *keysize);extern const struct ltc_cipher_descriptor des_desc, des3_desc;#endif#ifdef LTC_CAST5int cast5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int cast5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int cast5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int cast5_test(void);void cast5_done(symmetric_key *skey);int cast5_keysize(int *keysize);extern const struct ltc_cipher_descriptor cast5_desc;#endif#ifdef LTC_NOEKEONint noekeon_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int noekeon_test(void);void noekeon_done(symmetric_key *skey);int noekeon_keysize(int *keysize);extern const struct ltc_cipher_descriptor noekeon_desc;#endif#ifdef LTC_SKIPJACKint skipjack_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int skipjack_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int skipjack_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int skipjack_test(void);void skipjack_done(symmetric_key *skey);int skipjack_keysize(int *keysize);extern const struct ltc_cipher_descriptor skipjack_desc;#endif#ifdef LTC_KHAZADint khazad_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int khazad_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int khazad_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int khazad_test(void);void khazad_done(symmetric_key *skey);int khazad_keysize(int *keysize);extern const struct ltc_cipher_descriptor khazad_desc;#endif#ifdef LTC_ANUBISint anubis_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int anubis_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int anubis_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int anubis_test(void);void anubis_done(symmetric_key *skey);int anubis_keysize(int *keysize);extern const struct ltc_cipher_descriptor anubis_desc;#endif#ifdef LTC_KSEEDint kseed_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int kseed_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int kseed_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int kseed_test(void);void kseed_done(symmetric_key *skey);int kseed_keysize(int *keysize);extern const struct ltc_cipher_descriptor kseed_desc;#endif#ifdef LTC_KASUMIint kasumi_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int kasumi_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int kasumi_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int kasumi_test(void);void kasumi_done(symmetric_key *skey);int kasumi_keysize(int *keysize);extern const struct ltc_cipher_descriptor kasumi_desc;#endif#ifdef LTC_MULTI2int multi2_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);int multi2_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);int multi2_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int multi2_test(void);void multi2_done(symmetric_key *skey);int multi2_keysize(int *keysize);extern const struct ltc_cipher_descriptor multi2_desc;#endif#ifdef LTC_ECB_MODEint ecb_start(int cipher, const unsigned char *key, int keylen, int num_rounds, symmetric_ECB *ecb);int ecb_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_ECB *ecb);int ecb_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_ECB *ecb);int ecb_done(symmetric_ECB *ecb);#endif#ifdef LTC_CFB_MODEint cfb_start(int cipher, const unsigned char *IV, const unsigned char *key, int keylen, int num_rounds, symmetric_CFB *cfb);int cfb_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_CFB *cfb);int cfb_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_CFB *cfb);int cfb_getiv(unsigned char *IV, unsigned long *len, symmetric_CFB *cfb);int cfb_setiv(const unsigned char *IV, unsigned long len, symmetric_CFB *cfb);int cfb_done(symmetric_CFB *cfb);#endif#ifdef LTC_OFB_MODEint ofb_start(int cipher, const unsigned char *IV, const unsigned char *key, int keylen, int num_rounds, symmetric_OFB *ofb);int ofb_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_OFB *ofb);int ofb_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_OFB *ofb);int ofb_getiv(unsigned char *IV, unsigned long *len, symmetric_OFB *ofb);int ofb_setiv(const unsigned char *IV, unsigned long len, symmetric_OFB *ofb);int ofb_done(symmetric_OFB *ofb);#endif#ifdef LTC_CBC_MODEint cbc_start(int cipher, const unsigned char *IV, const unsigned char *key, int keylen, int num_rounds, symmetric_CBC *cbc);int cbc_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_CBC *cbc);int cbc_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_CBC *cbc);int cbc_getiv(unsigned char *IV, unsigned long *len, symmetric_CBC *cbc);int cbc_setiv(const unsigned char *IV, unsigned long len, symmetric_CBC *cbc);int cbc_done(symmetric_CBC *cbc);#endif#ifdef LTC_CTR_MODE#define CTR_COUNTER_LITTLE_ENDIAN 0x0000#define CTR_COUNTER_BIG_ENDIAN 0x1000#define LTC_CTR_RFC3686 0x2000int ctr_start( int cipher, const unsigned char *IV, const unsigned char *key, int keylen, int num_rounds, int ctr_mode, symmetric_CTR *ctr);int ctr_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_CTR *ctr);int ctr_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_CTR *ctr);int ctr_getiv(unsigned char *IV, unsigned long *len, symmetric_CTR *ctr);int ctr_setiv(const unsigned char *IV, unsigned long len, symmetric_CTR *ctr);int ctr_done(symmetric_CTR *ctr);int ctr_test(void);#endif#ifdef LTC_LRW_MODE#define LRW_ENCRYPT 0#define LRW_DECRYPT 1int lrw_start( int cipher, const unsigned char *IV, const unsigned char *key, int keylen, const unsigned char *tweak, int num_rounds, symmetric_LRW *lrw);int lrw_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_LRW *lrw);int lrw_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_LRW *lrw);int lrw_getiv(unsigned char *IV, unsigned long *len, symmetric_LRW *lrw);int lrw_setiv(const unsigned char *IV, unsigned long len, symmetric_LRW *lrw);int lrw_done(symmetric_LRW *lrw);int lrw_test(void);/* don't call */int lrw_process(const unsigned char *pt, unsigned char *ct, unsigned long len, int mode, symmetric_LRW *lrw);#endif #ifdef LTC_F8_MODEint f8_start( int cipher, const unsigned char *IV, const unsigned char *key, int keylen, const unsigned char *salt_key, int skeylen, int num_rounds, symmetric_F8 *f8);int f8_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_F8 *f8);int f8_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_F8 *f8);int f8_getiv(unsigned char *IV, unsigned long *len, symmetric_F8 *f8);int f8_setiv(const unsigned char *IV, unsigned long len, symmetric_F8 *f8);int f8_done(symmetric_F8 *f8);int f8_test_mode(void);#endif#ifdef LTC_XTS_MODEtypedef struct { symmetric_key key1, key2; int cipher;} symmetric_xts;int xts_start( int cipher, const unsigned char *key1, const unsigned char *key2, unsigned long keylen, int num_rounds, symmetric_xts *xts);int xts_encrypt( const unsigned char *pt, unsigned long ptlen, unsigned char *ct, const unsigned char *tweak, symmetric_xts *xts);int xts_decrypt( const unsigned char *ct, unsigned long ptlen, unsigned char *pt, const unsigned char *tweak, symmetric_xts *xts);void xts_done(symmetric_xts *xts);int xts_test(void);void xts_mult_x(unsigned char *I);#endifint find_cipher(const char *name);int find_cipher_any(const char *name, int blocklen, int keylen);int find_cipher_id(unsigned char ID);int register_cipher(const struct ltc_cipher_descriptor *cipher);int unregister_cipher(const struct ltc_cipher_descriptor *cipher);int cipher_is_valid(int idx);LTC_MUTEX_PROTO(ltc_cipher_mutex)/* $Source: /cvs/libtom/libtomcrypt/src/headers/tomcrypt_cipher.h,v $ *//* $Revision: 1.54 $ *//* $Date: 2007/05/12 14:37:41 $ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -