diff options
| author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2011-11-08 22:56:06 -0500 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2011-11-08 22:56:06 -0500 |
| commit | ce0045561e1edb92e4a509eb433ff52d3afaa258 (patch) | |
| tree | 78c8a6fcd82d966aca6a48d17c9063de34e224e9 /include/crypto | |
| parent | f9d2691fc9a00f39b587f965c33cca012a5597bc (diff) | |
crypto: xts: add interface for parallelized cipher implementations
Add xts_crypt() function that can be used by cipher implementations that can
benefit from parallelized cipher operations.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include/crypto')
| -rw-r--r-- | include/crypto/xts.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/crypto/xts.h b/include/crypto/xts.h new file mode 100644 index 000000000000..72c09eb56437 --- /dev/null +++ b/include/crypto/xts.h | |||
| @@ -0,0 +1,27 @@ | |||
| 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 */ | ||
