diff options
Diffstat (limited to 'arch/x86/include/asm/crypto/serpent-avx.h')
| -rw-r--r-- | arch/x86/include/asm/crypto/serpent-avx.h | 29 | 
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/x86/include/asm/crypto/serpent-avx.h b/arch/x86/include/asm/crypto/serpent-avx.h index 0da1d3e2a55..33c2b8a435d 100644 --- a/arch/x86/include/asm/crypto/serpent-avx.h +++ b/arch/x86/include/asm/crypto/serpent-avx.h @@ -6,6 +6,16 @@  #define SERPENT_PARALLEL_BLOCKS 8 +struct serpent_lrw_ctx { +	struct lrw_table_ctx lrw_table; +	struct serpent_ctx serpent_ctx; +}; + +struct serpent_xts_ctx { +	struct serpent_ctx tweak_ctx; +	struct serpent_ctx crypt_ctx; +}; +  asmlinkage void serpent_ecb_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst,  					 const u8 *src);  asmlinkage void serpent_ecb_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst, @@ -16,4 +26,23 @@ asmlinkage void serpent_cbc_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,  asmlinkage void serpent_ctr_8way_avx(struct serpent_ctx *ctx, u8 *dst,  				     const u8 *src, le128 *iv); +asmlinkage void serpent_xts_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst, +					 const u8 *src, le128 *iv); +asmlinkage void serpent_xts_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst, +					 const u8 *src, le128 *iv); + +extern void __serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src, +				le128 *iv); + +extern void serpent_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv); +extern void serpent_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv); + +extern int lrw_serpent_setkey(struct crypto_tfm *tfm, const u8 *key, +			      unsigned int keylen); + +extern void lrw_serpent_exit_tfm(struct crypto_tfm *tfm); + +extern int xts_serpent_setkey(struct crypto_tfm *tfm, const u8 *key, +			      unsigned int keylen); +  #endif  |