1*ce004556SJussi Kivilinna #ifndef _CRYPTO_XTS_H 2*ce004556SJussi Kivilinna #define _CRYPTO_XTS_H 3*ce004556SJussi Kivilinna 4*ce004556SJussi Kivilinna #include <crypto/b128ops.h> 5*ce004556SJussi Kivilinna 6*ce004556SJussi Kivilinna struct scatterlist; 7*ce004556SJussi Kivilinna struct blkcipher_desc; 8*ce004556SJussi Kivilinna 9*ce004556SJussi Kivilinna #define XTS_BLOCK_SIZE 16 10*ce004556SJussi Kivilinna 11*ce004556SJussi Kivilinna struct xts_crypt_req { 12*ce004556SJussi Kivilinna be128 *tbuf; 13*ce004556SJussi Kivilinna unsigned int tbuflen; 14*ce004556SJussi Kivilinna 15*ce004556SJussi Kivilinna void *tweak_ctx; 16*ce004556SJussi Kivilinna void (*tweak_fn)(void *ctx, u8* dst, const u8* src); 17*ce004556SJussi Kivilinna void *crypt_ctx; 18*ce004556SJussi Kivilinna void (*crypt_fn)(void *ctx, u8 *blks, unsigned int nbytes); 19*ce004556SJussi Kivilinna }; 20*ce004556SJussi Kivilinna 21*ce004556SJussi Kivilinna #define XTS_TWEAK_CAST(x) ((void (*)(void *, u8*, const u8*))(x)) 22*ce004556SJussi Kivilinna 23*ce004556SJussi Kivilinna int xts_crypt(struct blkcipher_desc *desc, struct scatterlist *dst, 24*ce004556SJussi Kivilinna struct scatterlist *src, unsigned int nbytes, 25*ce004556SJussi Kivilinna struct xts_crypt_req *req); 26*ce004556SJussi Kivilinna 27*ce004556SJussi Kivilinna #endif /* _CRYPTO_XTS_H */ 28