mbox series

[00/12] x86/crypto: gcmaes AVX scatter/gather support

Message ID cover.1544471415.git.davejwatson@fb.com (mailing list archive)
Headers show
Series x86/crypto: gcmaes AVX scatter/gather support | expand

Message

Dave Watson Dec. 10, 2018, 7:56 p.m. UTC
This patch set refactors the x86 aes/gcm AVX crypto routines to
support true scatter/gather by adding gcm_enc/dec_update methods.

It is similar to the previous SSE patchset starting at e1fd316f.  
Unlike the SSE routines, the AVX routines did not support
keysize 192 & 256, this patchset also adds support for those
keysizes.

The final patch updates the C glue code, passing everything through
the crypt_by_sg() function instead of the previous memcpy based
routines.

Dave Watson (12):
  x86/crypto: aesni: Merge GCM_ENC_DEC
  x86/crypto: aesni: Introduce gcm_context_data
  x86/crypto: aesni: Macro-ify func save/restore
  x86/crypto: aesni: support 256 byte keys in avx asm
  x86/crypto: aesni: Add GCM_COMPLETE macro
  x86/crypto: aesni: Split AAD hash calculation to separate macro
  x86/crypto: aesni: Merge avx precompute functions
  x86/crypto: aesni: Fill in new context data structures
  x86/crypto: aesni: Move ghash_mul to GCM_COMPLETE
  x86/crypto: aesni: Introduce READ_PARTIAL_BLOCK macro
  x86/crypto: aesni: Introduce partial block macro
  x86/crypto: aesni: Add scatter/gather avx stubs, and use them in C

 arch/x86/crypto/aesni-intel_avx-x86_64.S | 2125 ++++++++++------------
 arch/x86/crypto/aesni-intel_glue.c       |  353 ++--
 2 files changed, 1117 insertions(+), 1361 deletions(-)

Comments

Herbert Xu Dec. 23, 2018, 4:01 a.m. UTC | #1
On Mon, Dec 10, 2018 at 07:56:28PM +0000, Dave Watson wrote:
> This patch set refactors the x86 aes/gcm AVX crypto routines to
> support true scatter/gather by adding gcm_enc/dec_update methods.
> 
> It is similar to the previous SSE patchset starting at e1fd316f.  
> Unlike the SSE routines, the AVX routines did not support
> keysize 192 & 256, this patchset also adds support for those
> keysizes.
> 
> The final patch updates the C glue code, passing everything through
> the crypt_by_sg() function instead of the previous memcpy based
> routines.
> 
> Dave Watson (12):
>   x86/crypto: aesni: Merge GCM_ENC_DEC
>   x86/crypto: aesni: Introduce gcm_context_data
>   x86/crypto: aesni: Macro-ify func save/restore
>   x86/crypto: aesni: support 256 byte keys in avx asm
>   x86/crypto: aesni: Add GCM_COMPLETE macro
>   x86/crypto: aesni: Split AAD hash calculation to separate macro
>   x86/crypto: aesni: Merge avx precompute functions
>   x86/crypto: aesni: Fill in new context data structures
>   x86/crypto: aesni: Move ghash_mul to GCM_COMPLETE
>   x86/crypto: aesni: Introduce READ_PARTIAL_BLOCK macro
>   x86/crypto: aesni: Introduce partial block macro
>   x86/crypto: aesni: Add scatter/gather avx stubs, and use them in C
> 
>  arch/x86/crypto/aesni-intel_avx-x86_64.S | 2125 ++++++++++------------
>  arch/x86/crypto/aesni-intel_glue.c       |  353 ++--
>  2 files changed, 1117 insertions(+), 1361 deletions(-)

All applied.  Thanks.