crypto: ghash - Add PCLMULQDQ accelerated implementation
PCLMULQDQ is used to accelerate the most time-consuming part of GHASH, carry-less multiplication. More information about PCLMULQDQ can be found at: http://software.intel.com/en-us/articles/carry-less-multiplication-and-its-usage-for-computing-the-gcm-mode/ Because PCLMULQDQ changes XMM state, its usage must be enclosed with kernel_fpu_begin/end, which can be used only in process context, the acceleration is implemented as crypto_ahash. That is, request in soft IRQ context will be defered to the cryptd kernel thread. Signed-off-by:Huang Ying <ying.huang@intel.com> Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au>
Showing
- arch/x86/crypto/Makefile 3 additions, 0 deletionsarch/x86/crypto/Makefile
- arch/x86/crypto/ghash-clmulni-intel_asm.S 157 additions, 0 deletionsarch/x86/crypto/ghash-clmulni-intel_asm.S
- arch/x86/crypto/ghash-clmulni-intel_glue.c 333 additions, 0 deletionsarch/x86/crypto/ghash-clmulni-intel_glue.c
- arch/x86/include/asm/cpufeature.h 1 addition, 0 deletionsarch/x86/include/asm/cpufeature.h
- crypto/Kconfig 8 additions, 0 deletionscrypto/Kconfig
- crypto/cryptd.c 7 additions, 0 deletionscrypto/cryptd.c
- include/crypto/cryptd.h 1 addition, 0 deletionsinclude/crypto/cryptd.h
arch/x86/crypto/ghash-clmulni-intel_asm.S
0 → 100644
arch/x86/crypto/ghash-clmulni-intel_glue.c
0 → 100644
Please register or sign in to comment