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

📄 tomcrypt_mac.h

📁 该压缩包中包括 tom的加密函数库及pdf说明 ,以及Rinick s ECC:椭圆曲线非对称加密密钥生成器
💻 H
字号:
#ifdef HMACtypedef struct Hmac_state {     hash_state     md;     int            hash;     hash_state     hashstate;     unsigned char  *key;} hmac_state;int hmac_init(hmac_state *hmac, int hash, const unsigned char *key, unsigned long keylen);int hmac_process(hmac_state *hmac, const unsigned char *in, unsigned long inlen);int hmac_done(hmac_state *hmac, unsigned char *out, unsigned long *outlen);int hmac_test(void);int hmac_memory(int hash,                 const unsigned char *key, unsigned long keylen,                const unsigned char *in,  unsigned long inlen,                       unsigned char *out, unsigned long *outlen);int hmac_memory_multi(int hash,                 const unsigned char *key,  unsigned long keylen,                      unsigned char *out,  unsigned long *outlen,                const unsigned char *in,   unsigned long inlen, ...);int hmac_file(int hash, const char *fname, const unsigned char *key,              unsigned long keylen,               unsigned char *dst, unsigned long *dstlen);#endif#ifdef OMACtypedef struct {   int             cipher_idx,                    buflen,                   blklen;   unsigned char   block[MAXBLOCKSIZE],                   prev[MAXBLOCKSIZE],                   Lu[2][MAXBLOCKSIZE];   symmetric_key   key;} omac_state;int omac_init(omac_state *omac, int cipher, const unsigned char *key, unsigned long keylen);int omac_process(omac_state *omac, const unsigned char *in, unsigned long inlen);int omac_done(omac_state *omac, unsigned char *out, unsigned long *outlen);int omac_memory(int cipher,                const unsigned char *key, unsigned long keylen,               const unsigned char *in,  unsigned long inlen,                     unsigned char *out, unsigned long *outlen);int omac_memory_multi(int cipher,                 const unsigned char *key, unsigned long keylen,                      unsigned char *out, unsigned long *outlen,                const unsigned char *in,  unsigned long inlen, ...);int omac_file(int cipher,               const unsigned char *key, unsigned long keylen,              const          char *filename,                     unsigned char *out, unsigned long *outlen);int omac_test(void);#endif /* OMAC */#ifdef PMACtypedef struct {   unsigned char     Ls[32][MAXBLOCKSIZE],    /* L shifted by i bits to the left */                     Li[MAXBLOCKSIZE],        /* value of Li [current value, we calc from previous recall] */                     Lr[MAXBLOCKSIZE],        /* L * x^-1 */                     block[MAXBLOCKSIZE],     /* currently accumulated block */                     checksum[MAXBLOCKSIZE];  /* current checksum */   symmetric_key     key;                     /* scheduled key for cipher */   unsigned long     block_index;             /* index # for current block */   int               cipher_idx,              /* cipher idx */                     block_len,               /* length of block */                     buflen;                  /* number of bytes in the buffer */} pmac_state;int pmac_init(pmac_state *pmac, int cipher, const unsigned char *key, unsigned long keylen);int pmac_process(pmac_state *pmac, const unsigned char *in, unsigned long inlen);int pmac_done(pmac_state *pmac, unsigned char *out, unsigned long *outlen);int pmac_memory(int cipher,                const unsigned char *key, unsigned long keylen,               const unsigned char *msg, unsigned long msglen,                     unsigned char *out, unsigned long *outlen);int pmac_memory_multi(int cipher,                 const unsigned char *key, unsigned long keylen,                      unsigned char *out, unsigned long *outlen,                const unsigned char *in, unsigned long inlen, ...);int pmac_file(int cipher,              const unsigned char *key, unsigned long keylen,             const          char *filename,                    unsigned char *out, unsigned long *outlen);int pmac_test(void);/* internal functions */int pmac_ntz(unsigned long x);void pmac_shift_xor(pmac_state *pmac);#endif /* PMAC */#ifdef EAX_MODE#if !(defined(OMAC) && defined(CTR))   #error EAX_MODE requires OMAC and CTR#endiftypedef struct {   unsigned char N[MAXBLOCKSIZE];   symmetric_CTR ctr;   omac_state    headeromac, ctomac;} eax_state;int eax_init(eax_state *eax, int cipher, const unsigned char *key, unsigned long keylen,             const unsigned char *nonce, unsigned long noncelen,             const unsigned char *header, unsigned long headerlen);int eax_encrypt(eax_state *eax, const unsigned char *pt, unsigned char *ct, unsigned long length);int eax_decrypt(eax_state *eax, const unsigned char *ct, unsigned char *pt, unsigned long length);int eax_addheader(eax_state *eax, const unsigned char *header, unsigned long length);int eax_done(eax_state *eax, unsigned char *tag, unsigned long *taglen);int eax_encrypt_authenticate_memory(int cipher,    const unsigned char *key,    unsigned long keylen,    const unsigned char *nonce,  unsigned long noncelen,    const unsigned char *header, unsigned long headerlen,    const unsigned char *pt,     unsigned long ptlen,          unsigned char *ct,          unsigned char *tag,    unsigned long *taglen);int eax_decrypt_verify_memory(int cipher,    const unsigned char *key,    unsigned long keylen,    const unsigned char *nonce,  unsigned long noncelen,    const unsigned char *header, unsigned long headerlen,    const unsigned char *ct,     unsigned long ctlen,          unsigned char *pt,          unsigned char *tag,    unsigned long taglen,          int           *stat); int eax_test(void);#endif /* EAX MODE */#ifdef OCB_MODEtypedef struct {   unsigned char     L[MAXBLOCKSIZE],         /* L value */                     Ls[32][MAXBLOCKSIZE],    /* L shifted by i bits to the left */                     Li[MAXBLOCKSIZE],        /* value of Li [current value, we calc from previous recall] */                     Lr[MAXBLOCKSIZE],        /* L * x^-1 */                     R[MAXBLOCKSIZE],         /* R value */                     checksum[MAXBLOCKSIZE];  /* current checksum */   symmetric_key     key;                     /* scheduled key for cipher */   unsigned long     block_index;             /* index # for current block */   int               cipher,                  /* cipher idx */                     block_len;               /* length of block */} ocb_state;int ocb_init(ocb_state *ocb, int cipher,              const unsigned char *key, unsigned long keylen, const unsigned char *nonce);int ocb_encrypt(ocb_state *ocb, const unsigned char *pt, unsigned char *ct);int ocb_decrypt(ocb_state *ocb, const unsigned char *ct, unsigned char *pt);int ocb_done_encrypt(ocb_state *ocb,                      const unsigned char *pt,  unsigned long ptlen,                           unsigned char *ct,                            unsigned char *tag, unsigned long *taglen);int ocb_done_decrypt(ocb_state *ocb,                      const unsigned char *ct,  unsigned long ctlen,                           unsigned char *pt,                      const unsigned char *tag, unsigned long taglen, int *stat);int ocb_encrypt_authenticate_memory(int cipher,    const unsigned char *key,    unsigned long keylen,    const unsigned char *nonce,      const unsigned char *pt,     unsigned long ptlen,          unsigned char *ct,          unsigned char *tag,    unsigned long *taglen);int ocb_decrypt_verify_memory(int cipher,    const unsigned char *key,    unsigned long keylen,    const unsigned char *nonce,      const unsigned char *ct,     unsigned long ctlen,          unsigned char *pt,    const unsigned char *tag,    unsigned long taglen,          int           *stat);int ocb_test(void);/* internal functions */void ocb_shift_xor(ocb_state *ocb, unsigned char *Z);int ocb_ntz(unsigned long x);int s_ocb_done(ocb_state *ocb, const unsigned char *pt, unsigned long ptlen,               unsigned char *ct, unsigned char *tag, unsigned long *taglen, int mode);#endif /* OCB_MODE */#ifdef CCM_MODE#define CCM_ENCRYPT 0#define CCM_DECRYPT 1int ccm_memory(int cipher,    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);int ccm_test(void);#endif /* CCM_MODE */#ifdef GCM_MODE#define GCM_ENCRYPT 0#define GCM_DECRYPT 1#define GCM_MODE_IV    0#define GCM_MODE_AAD   1#define GCM_MODE_TEXT  2typedef struct {    symmetric_key       K;   unsigned char       H[16],        /* multiplier */                       X[16],        /* accumulator */                       Y[16],        /* counter */                       Y_0[16],      /* initial counter */                       buf[16];      /* buffer for stuff */   int                 cipher,       /* which cipher */                       ivmode,       /* Which mode is the IV in? */                       mode,         /* mode the GCM code is in */                       buflen;       /* length of data in buf */   ulong64             totlen,       /* 64-bit counter used for IV and AAD */                       pttotlen;     /* 64-bit counter for the PT */#ifdef GCM_TABLES   unsigned char       PC[16][256][16];  /* 16 tables of 8x128 */#endif  } gcm_state;void gcm_gf_mult(const unsigned char *a, const unsigned char *b, unsigned char *c);void gcm_mult_h(gcm_state *gcm, unsigned char *I);int gcm_init(gcm_state *gcm, int cipher,             const unsigned char *key, int keylen);int gcm_reset(gcm_state *gcm);int gcm_add_iv(gcm_state *gcm,                const unsigned char *IV,     unsigned long IVlen);int gcm_add_aad(gcm_state *gcm,               const unsigned char *adata,  unsigned long adatalen);int gcm_process(gcm_state *gcm,                     unsigned char *pt,     unsigned long ptlen,                     unsigned char *ct,                     int direction);int gcm_done(gcm_state *gcm,                      unsigned char *tag,    unsigned long *taglen);int gcm_memory(      int           cipher,               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);int gcm_test(void);#endif /* GCM_MODE */#ifdef PELICANtypedef struct pelican_state{    symmetric_key K;    unsigned char state[16];    int           buflen;} pelican_state;int pelican_init(pelican_state *pelmac, const unsigned char *key, unsigned long keylen);int pelican_process(pelican_state *pelmac, const unsigned char *in, unsigned long inlen);int pelican_done(pelican_state *pelmac, unsigned char *out);int pelican_test(void);int pelican_memory(const unsigned char *key, unsigned long keylen,                   const unsigned char *in, unsigned long inlen,                         unsigned char *out);#endif/* $Source: /cvs/libtom/libtomcrypt/src/headers/tomcrypt_mac.h,v $ *//* $Revision: 1.7 $ *//* $Date: 2005/05/05 14:35:58 $ */

⌨️ 快捷键说明

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