⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tomcrypt_cipher.h

📁 该压缩包中包括 tom的加密函数库及pdf说明 ,以及Rinick s ECC:椭圆曲线非对称加密密钥生成器
💻 H
📖 第 1 页 / 共 2 页
字号:
   /** Accelerated CBC decryption        @param pt      Plaintext       @param ct      Ciphertext       @param blocks  The number of complete blocks to process       @param IV      The initial value (input/output)       @param skey    The scheduled key context   */   void (*accel_cbc_decrypt)(const unsigned char *ct, unsigned char *pt, unsigned long blocks, unsigned char *IV, symmetric_key *skey);   /** Accelerated CTR encryption        @param pt      Plaintext       @param ct      Ciphertext       @param blocks  The number of complete blocks to process       @param IV      The initial value (input/output)       @param mode    little or big endian counter (mode=0 or mode=1)       @param skey    The scheduled key context   */   void (*accel_ctr_encrypt)(const unsigned char *pt, unsigned char *ct, unsigned long blocks, unsigned char *IV, int mode, symmetric_key *skey);   /** Accelerated CCM packet (one-shot)       @param key        The secret key to use       @param keylen     The length of the secret key (octets)       @param nonce      The session nonce [use once]       @param noncelen   The length of the nonce       @param header     The header for the session       @param headerlen  The length of the header (octets)       @param pt         [out] The plaintext       @param ptlen      The length of the plaintext (octets)       @param ct         [out] The ciphertext       @param tag        [out] The destination tag       @param taglen     [in/out] The max size and resulting size of the authentication tag       @param direction  Encrypt or Decrypt direction (0 or 1)       @return CRYPT_OK if successful   */   void (*accel_ccm_memory)(       const unsigned char *key,    unsigned long keylen,       const unsigned char *nonce,  unsigned long noncelen,       const unsigned char *header, unsigned long headerlen,             unsigned char *pt,     unsigned long ptlen,             unsigned char *ct,             unsigned char *tag,    unsigned long *taglen,                       int  direction);   /** Accelerated GCM packet (one shot)       @param key               The secret key       @param keylen            The length of the secret key       @param IV                The initial vector        @param IVlen             The length of the initial vector       @param adata             The additional authentication data (header)       @param adatalen          The length of the adata       @param pt                The plaintext       @param ptlen             The length of the plaintext (ciphertext length is the same)       @param ct                The ciphertext       @param tag               [out] The MAC tag       @param taglen            [in/out] The MAC tag length       @param direction         Encrypt or Decrypt mode (GCM_ENCRYPT or GCM_DECRYPT)   */   void (*accel_gcm_memory)(       const unsigned char *key,    unsigned long keylen,       const unsigned char *IV,     unsigned long IVlen,       const unsigned char *adata,  unsigned long adatalen,             unsigned char *pt,     unsigned long ptlen,             unsigned char *ct,              unsigned char *tag,    unsigned long *taglen,                       int direction);} cipher_descriptor[];#ifdef BLOWFISHint blowfish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void blowfish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void blowfish_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int blowfish_test(void);void blowfish_done(symmetric_key *skey);int blowfish_keysize(int *keysize);extern const struct ltc_cipher_descriptor blowfish_desc;#endif#ifdef RC5int rc5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void rc5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void rc5_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int rc5_test(void);void rc5_done(symmetric_key *skey);int rc5_keysize(int *keysize);extern const struct ltc_cipher_descriptor rc5_desc;#endif#ifdef RC6int rc6_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void rc6_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void rc6_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int rc6_test(void);void rc6_done(symmetric_key *skey);int rc6_keysize(int *keysize);extern const struct ltc_cipher_descriptor rc6_desc;#endif#ifdef RC2int rc2_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void rc2_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void rc2_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int rc2_test(void);void rc2_done(symmetric_key *skey);int rc2_keysize(int *keysize);extern const struct ltc_cipher_descriptor rc2_desc;#endif#ifdef SAFERPint saferp_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void saferp_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void saferp_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *skey);int saferp_test(void);void saferp_done(symmetric_key *skey);int saferp_keysize(int *keysize);extern const struct ltc_cipher_descriptor saferp_desc;#endif#ifdef 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);void safer_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key);void 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 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);void rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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);void 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 XTEAint xtea_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void xtea_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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 TWOFISHint twofish_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void twofish_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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 DESint des_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void des_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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);void des3_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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 CAST5int cast5_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void cast5_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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 NOEKEONint noekeon_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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 SKIPJACKint skipjack_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void skipjack_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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 KHAZADint khazad_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void khazad_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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 ANUBISint anubis_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);void anubis_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey);void 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 ECBint 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 CFBint 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 OFBint 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 CBCint 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 CTR#define CTR_COUNTER_LITTLE_ENDIAN    0#define CTR_COUNTER_BIG_ENDIAN       1int 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);#endif    int 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.16 $ *//* $Date: 2005/06/19 18:00:28 $ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -