• Ard Biesheuvel's avatar
    crypto: arm/sha512 - accelerated SHA-512 using ARM generic ASM and NEON · c80ae7ca
    Ard Biesheuvel authored
    This replaces the SHA-512 NEON module with the faster and more
    versatile implementation from the OpenSSL project. It consists
    of both a NEON and a generic ASM version of the core SHA-512
    transform, where the NEON version reverts to the ASM version
    when invoked in non-process context.
    
    This patch is based on the OpenSSL upstream version b1a5d1c65208
    of sha512-armv4.pl, which can be found here:
    
      https://git.openssl.org/gitweb/?p=openssl.git;h=b1a5d1c65208
    
    Performance relative to the generic implementation (measured
    using tcrypt.ko mode=306 sec=1 running on a Cortex-A57 under
    KVM):
    
      input size	block size	asm	neon	old neon
    
      16		16		1.39	2.54	2.21
      64		16		1.32	2.33	2.09
      64		64		1.38	2.53	2.19
      256		16		1.31	2.28	2.06
      256		64		1.38	2.54	2.25
      256		256		1.40	2.77	2.39
      1024		16		1.29	2.22	2.01
      1024		256		1.40	2.82	2.45
      1024		1024		1.41	2.93	2.53
      2048		16		1.33	2.21	2.00
      2048		256		1.40	2.84	2.46
      2048		1024		1.41	2.96	2.55
      2048		2048		1.41	2.98	2.56
      4096		16		1.34	2.20	1.99
      4096		256		1.40	2.84	2.46
      4096		1024		1.41	2.97	2.56
      4096		4096		1.41	3.01	2.58
      8192		16		1.34	2.19	1.99
      8192		256		1.40	2.85	2.47
      8192		1024		1.41	2.98	2.56
      8192		4096		1.41	2.71	2.59
      8192		8192		1.51	3.51	2.69
    Acked-by: default avatarJussi Kivilinna <jussi.kivilinna@iki.fi>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    c80ae7ca
sha512-neon-glue.c 2.52 KB