]>
Commit | Line | Data |
---|---|---|
a7378d4e JK |
1 | #ifndef ASM_X86_TWOFISH_H |
2 | #define ASM_X86_TWOFISH_H | |
3 | ||
4 | #include <linux/crypto.h> | |
5 | #include <crypto/twofish.h> | |
6 | #include <crypto/lrw.h> | |
7 | #include <crypto/b128ops.h> | |
8 | ||
9 | struct twofish_lrw_ctx { | |
10 | struct lrw_table_ctx lrw_table; | |
11 | struct twofish_ctx twofish_ctx; | |
12 | }; | |
13 | ||
14 | struct twofish_xts_ctx { | |
15 | struct twofish_ctx tweak_ctx; | |
16 | struct twofish_ctx crypt_ctx; | |
17 | }; | |
18 | ||
19 | /* regular block cipher functions from twofish_x86_64 module */ | |
20 | asmlinkage void twofish_enc_blk(struct twofish_ctx *ctx, u8 *dst, | |
21 | const u8 *src); | |
22 | asmlinkage void twofish_dec_blk(struct twofish_ctx *ctx, u8 *dst, | |
23 | const u8 *src); | |
24 | ||
25 | /* 3-way parallel cipher functions */ | |
26 | asmlinkage void __twofish_enc_blk_3way(struct twofish_ctx *ctx, u8 *dst, | |
27 | const u8 *src, bool xor); | |
28 | asmlinkage void twofish_dec_blk_3way(struct twofish_ctx *ctx, u8 *dst, | |
29 | const u8 *src); | |
30 | ||
31 | /* helpers from twofish_x86_64-3way module */ | |
32 | extern void twofish_dec_blk_cbc_3way(void *ctx, u128 *dst, const u128 *src); | |
33 | extern void twofish_enc_blk_ctr(void *ctx, u128 *dst, const u128 *src, | |
58990986 | 34 | le128 *iv); |
a7378d4e | 35 | extern void twofish_enc_blk_ctr_3way(void *ctx, u128 *dst, const u128 *src, |
58990986 | 36 | le128 *iv); |
a7378d4e JK |
37 | |
38 | extern int lrw_twofish_setkey(struct crypto_tfm *tfm, const u8 *key, | |
39 | unsigned int keylen); | |
40 | ||
41 | extern void lrw_twofish_exit_tfm(struct crypto_tfm *tfm); | |
42 | ||
43 | extern int xts_twofish_setkey(struct crypto_tfm *tfm, const u8 *key, | |
44 | unsigned int keylen); | |
45 | ||
46 | #endif /* ASM_X86_TWOFISH_H */ |