summaryrefslogtreecommitdiff
path: root/src/mongo/crypto/tom/tomcrypt_mac.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/crypto/tom/tomcrypt_mac.h')
-rw-r--r--src/mongo/crypto/tom/tomcrypt_mac.h506
1 files changed, 290 insertions, 216 deletions
diff --git a/src/mongo/crypto/tom/tomcrypt_mac.h b/src/mongo/crypto/tom/tomcrypt_mac.h
index b6fbcecc482..e850aa88a3a 100644
--- a/src/mongo/crypto/tom/tomcrypt_mac.h
+++ b/src/mongo/crypto/tom/tomcrypt_mac.h
@@ -15,196 +15,254 @@
#ifdef LTC_HMAC
typedef struct Hmac_state {
- hash_state md;
- int hash;
- hash_state hashstate;
- unsigned char *key;
+ 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_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);
+ 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,
+ 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);
+ unsigned char* dst,
+ unsigned long* dstlen);
#endif
#ifdef LTC_OMAC
typedef struct {
- int cipher_idx,
- buflen,
- blklen;
- unsigned char block[MAXBLOCKSIZE],
- prev[MAXBLOCKSIZE],
- Lu[2][MAXBLOCKSIZE];
- symmetric_key key;
+ 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_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);
+ 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, ...);
+ 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);
+ const unsigned char* key,
+ unsigned long keylen,
+ const char* filename,
+ unsigned char* out,
+ unsigned long* outlen);
int omac_test(void);
#endif /* LTC_OMAC */
#ifdef LTC_PMAC
typedef 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 */
+ 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_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);
+ 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, ...);
+ 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);
+ 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);
+void pmac_shift_xor(pmac_state* pmac);
#endif /* PMAC */
#ifdef LTC_EAX_MODE
#if !(defined(LTC_OMAC) && defined(LTC_CTR_MODE))
- #error LTC_EAX_MODE requires LTC_OMAC and CTR
+#error LTC_EAX_MODE requires LTC_OMAC and CTR
#endif
typedef struct {
unsigned char N[MAXBLOCKSIZE];
symmetric_CTR ctr;
- omac_state headeromac, ctomac;
+ 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_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(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);
+ 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);
+ 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 LTC_OCB_MODE
typedef 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 */
+ 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_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);
+ 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);
+ 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);
+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);
+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 /* LTC_OCB_MODE */
@@ -214,26 +272,32 @@ int s_ocb_done(ocb_state *ocb, const unsigned char *pt, unsigned long ptlen,
#define CCM_DECRYPT 1
int ccm_memory(int cipher,
- const unsigned char *key, unsigned long keylen,
- symmetric_key *uskey,
- 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);
+ const unsigned char* key,
+ unsigned long keylen,
+ symmetric_key* uskey,
+ 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 /* LTC_CCM_MODE */
#if defined(LRW_MODE) || defined(LTC_GCM_MODE)
-void gcm_gf_mult(const unsigned char *a, const unsigned char *b, unsigned char *c);
+void gcm_gf_mult(const unsigned char* a, const unsigned char* b, unsigned char* c);
#endif
/* table shared between GCM and LRW */
-#if defined(LTC_GCM_TABLES) || defined(LRW_TABLES) || ((defined(LTC_GCM_MODE) || defined(LTC_GCM_MODE)) && defined(LTC_FAST))
+#if defined(LTC_GCM_TABLES) || defined(LRW_TABLES) || \
+ ((defined(LTC_GCM_MODE) || defined(LTC_GCM_MODE)) && defined(LTC_FAST))
extern const unsigned char gcm_shift_table[];
#endif
@@ -242,119 +306,125 @@ extern const unsigned char gcm_shift_table[];
#define GCM_ENCRYPT 0
#define GCM_DECRYPT 1
-#define LTC_GCM_MODE_IV 0
-#define LTC_GCM_MODE_AAD 1
-#define LTC_GCM_MODE_TEXT 2
+#define LTC_GCM_MODE_IV 0
+#define LTC_GCM_MODE_AAD 1
+#define LTC_GCM_MODE_TEXT 2
typedef 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 */
+ 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 */
+ 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 */
+ ulong64 totlen, /* 64-bit counter used for IV and AAD */
+ pttotlen; /* 64-bit counter for the PT */
#ifdef LTC_GCM_TABLES
- unsigned char PC[16][256][16] /* 16 tables of 8x128 */
+ unsigned char PC[16][256][16] /* 16 tables of 8x128 */
#ifdef LTC_GCM_TABLES_SSE2
-__attribute__ ((aligned (16)))
+ __attribute__((aligned(16)))
#endif
-;
+ ;
#endif
} gcm_state;
-void gcm_mult_h(gcm_state *gcm, unsigned char *I);
+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_init(gcm_state* gcm, int cipher, const unsigned char* key, int keylen);
-int gcm_reset(gcm_state *gcm);
+int gcm_reset(gcm_state* gcm);
-int gcm_add_iv(gcm_state *gcm,
- const unsigned char *IV, unsigned long IVlen);
+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_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_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_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_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 /* LTC_GCM_MODE */
#ifdef LTC_PELICAN
-typedef struct pelican_state
-{
+typedef struct pelican_state {
symmetric_key K;
unsigned char state[16];
- int buflen;
+ 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_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);
+int pelican_memory(const unsigned char* key,
+ unsigned long keylen,
+ const unsigned char* in,
+ unsigned long inlen,
+ unsigned char* out);
#endif
#ifdef LTC_XCBC
/* add this to "keylen" to xcbc_init to use a pure three-key XCBC MAC */
-#define LTC_XCBC_PURE 0x8000UL
+#define LTC_XCBC_PURE 0x8000UL
typedef struct {
- unsigned char K[3][MAXBLOCKSIZE],
- IV[MAXBLOCKSIZE];
+ unsigned char K[3][MAXBLOCKSIZE], IV[MAXBLOCKSIZE];
symmetric_key key;
- int cipher,
- buflen,
- blocksize;
+ int cipher, buflen, blocksize;
} xcbc_state;
-int xcbc_init(xcbc_state *xcbc, int cipher, const unsigned char *key, unsigned long keylen);
-int xcbc_process(xcbc_state *xcbc, const unsigned char *in, unsigned long inlen);
-int xcbc_done(xcbc_state *xcbc, unsigned char *out, unsigned long *outlen);
+int xcbc_init(xcbc_state* xcbc, int cipher, const unsigned char* key, unsigned long keylen);
+int xcbc_process(xcbc_state* xcbc, const unsigned char* in, unsigned long inlen);
+int xcbc_done(xcbc_state* xcbc, unsigned char* out, unsigned long* outlen);
int xcbc_memory(int cipher,
- const unsigned char *key, unsigned long keylen,
- const unsigned char *in, unsigned long inlen,
- unsigned char *out, unsigned long *outlen);
+ const unsigned char* key,
+ unsigned long keylen,
+ const unsigned char* in,
+ unsigned long inlen,
+ unsigned char* out,
+ unsigned long* outlen);
int xcbc_memory_multi(int cipher,
- const unsigned char *key, unsigned long keylen,
- unsigned char *out, unsigned long *outlen,
- const unsigned char *in, unsigned long inlen, ...);
+ const unsigned char* key,
+ unsigned long keylen,
+ unsigned char* out,
+ unsigned long* outlen,
+ const unsigned char* in,
+ unsigned long inlen,
+ ...);
int xcbc_file(int cipher,
- const unsigned char *key, unsigned long keylen,
- const char *filename,
- unsigned char *out, unsigned long *outlen);
+ const unsigned char* key,
+ unsigned long keylen,
+ const char* filename,
+ unsigned char* out,
+ unsigned long* outlen);
int xcbc_test(void);
#endif
@@ -362,33 +432,37 @@ int xcbc_test(void);
#ifdef LTC_F9_MODE
typedef struct {
- unsigned char akey[MAXBLOCKSIZE],
- ACC[MAXBLOCKSIZE],
- IV[MAXBLOCKSIZE];
+ unsigned char akey[MAXBLOCKSIZE], ACC[MAXBLOCKSIZE], IV[MAXBLOCKSIZE];
symmetric_key key;
- int cipher,
- buflen,
- keylen,
- blocksize;
+ int cipher, buflen, keylen, blocksize;
} f9_state;
-int f9_init(f9_state *f9, int cipher, const unsigned char *key, unsigned long keylen);
-int f9_process(f9_state *f9, const unsigned char *in, unsigned long inlen);
-int f9_done(f9_state *f9, unsigned char *out, unsigned long *outlen);
+int f9_init(f9_state* f9, int cipher, const unsigned char* key, unsigned long keylen);
+int f9_process(f9_state* f9, const unsigned char* in, unsigned long inlen);
+int f9_done(f9_state* f9, unsigned char* out, unsigned long* outlen);
int f9_memory(int cipher,
- const unsigned char *key, unsigned long keylen,
- const unsigned char *in, unsigned long inlen,
- unsigned char *out, unsigned long *outlen);
+ const unsigned char* key,
+ unsigned long keylen,
+ const unsigned char* in,
+ unsigned long inlen,
+ unsigned char* out,
+ unsigned long* outlen);
int f9_memory_multi(int cipher,
- const unsigned char *key, unsigned long keylen,
- unsigned char *out, unsigned long *outlen,
- const unsigned char *in, unsigned long inlen, ...);
+ const unsigned char* key,
+ unsigned long keylen,
+ unsigned char* out,
+ unsigned long* outlen,
+ const unsigned char* in,
+ unsigned long inlen,
+ ...);
int f9_file(int cipher,
- const unsigned char *key, unsigned long keylen,
- const char *filename,
- unsigned char *out, unsigned long *outlen);
+ const unsigned char* key,
+ unsigned long keylen,
+ const char* filename,
+ unsigned char* out,
+ unsigned long* outlen);
int f9_test(void);
#endif