-struct crypto_tfm;
-
-struct scatterlist {
- struct page *page;
- unsigned int offset;
- __u32 dma_address;
- unsigned int length;
-};
-
-struct cipher_tfm {
- void *cit_iv;
- unsigned int cit_ivsize;
- __u32 cit_mode;
- int (*cit_setkey)(struct crypto_tfm *tfm,
- const __u8 *key, unsigned int keylen);
- int (*cit_encrypt)(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes);
- int (*cit_encrypt_iv)(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes, __u8 *iv);
- int (*cit_decrypt)(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes);
- int (*cit_decrypt_iv)(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes, __u8 *iv);
- void (*cit_xor_block)(__u8 *dst, const __u8 *src);
-};
-
-struct digest_tfm {
- void (*dit_init)(struct crypto_tfm *tfm);
- void (*dit_update)(struct crypto_tfm *tfm,
- struct scatterlist *sg, unsigned int nsg);
- void (*dit_update_kernel)(struct crypto_tfm *tfm,
- const void *data, size_t count);
- void (*dit_final)(struct crypto_tfm *tfm, __u8 *out);
- void (*dit_digest)(struct crypto_tfm *tfm, struct scatterlist *sg,
- unsigned int nsg, __u8 *out);
- int (*dit_setkey)(struct crypto_tfm *tfm,
- const __u8 *key, unsigned int keylen);
-#ifdef CONFIG_CRYPTO_HMAC
- void *dit_hmac_block;
-#endif
-};
-
-struct compress_tfm {
- int (*cot_compress)(struct crypto_tfm *tfm,
- const __u8 *src, unsigned int slen,
- __u8 *dst, unsigned int *dlen);
- int (*cot_decompress)(struct crypto_tfm *tfm,
- const __u8 *src, unsigned int slen,
- __u8 *dst, unsigned int *dlen);
-};
-
-struct crypto_tfm {
-
- __u32 crt_flags;
-
- union {
- struct cipher_tfm cipher;
- struct digest_tfm digest;
- struct compress_tfm compress;
- } crt_u;
-
- struct crypto_alg *__crt_alg;
-};
-