Merge remote-tracking branch 'lsk/v3.10/topic/configs' into linux-linaro-lsk
[firefly-linux-kernel-4.4.55.git] / include / crypto / xts.h
1 #ifndef _CRYPTO_XTS_H
2 #define _CRYPTO_XTS_H
3
4 #include <crypto/b128ops.h>
5
6 struct scatterlist;
7 struct blkcipher_desc;
8
9 #define XTS_BLOCK_SIZE 16
10
11 struct xts_crypt_req {
12         be128 *tbuf;
13         unsigned int tbuflen;
14
15         void *tweak_ctx;
16         void (*tweak_fn)(void *ctx, u8* dst, const u8* src);
17         void *crypt_ctx;
18         void (*crypt_fn)(void *ctx, u8 *blks, unsigned int nbytes);
19 };
20
21 #define XTS_TWEAK_CAST(x) ((void (*)(void *, u8*, const u8*))(x))
22
23 int xts_crypt(struct blkcipher_desc *desc, struct scatterlist *dst,
24               struct scatterlist *src, unsigned int nbytes,
25               struct xts_crypt_req *req);
26
27 #endif  /* _CRYPTO_XTS_H */