[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211222045022.27069-1-tianjia.zhang@linux.alibaba.com>
Date: Wed, 22 Dec 2021 12:50:16 +0800
From: Tianjia Zhang <tianjia.zhang@...ux.alibaba.com>
To: Herbert Xu <herbert@...dor.apana.org.au>,
"David S. Miller" <davem@...emloft.net>,
Vitaly Chikunov <vt@...linux.org>,
Eric Biggers <ebiggers@...gle.com>,
Eric Biggers <ebiggers@...nel.org>,
Gilad Ben-Yossef <gilad@...yossef.com>,
Ard Biesheuvel <ardb@...nel.org>,
Jussi Kivilinna <jussi.kivilinna@....fi>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>,
"H. Peter Anvin" <hpa@...or.com>, linux-crypto@...r.kernel.org,
x86@...nel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Cc: Tianjia Zhang <tianjia.zhang@...ux.alibaba.com>
Subject: [PATCH v2 0/6] Introduce x86 assembly accelerated implementation for SM3 algorithm
This series of patches creates an stand-alone library for SM3 hash
algorithm in the lib/crypto directory, and makes the implementations
that originally depended on sm3-generic depend on the stand-alone SM3
library, which also includes sm3-generic itself.
On this basis, the AVX assembly acceleration implementation of SM3
algorithm is introduced, the main algorithm implementation based on
SM3 AES/BMI2 accelerated work by libgcrypt at:
https://gnupg.org/software/libgcrypt/index.html
>From the performance benchmark data, the performance improvement of
SM3 algorithm after AVX optimization can reach up to 38%.
---
v2 changes:
- x86/sm3: Change K macros to signed decimal and use LEA and 32-bit offset
Tianjia Zhang (6):
crypto: sm3 - create SM3 stand-alone library
crypto: arm64/sm3-ce - make dependent on sm3 library
crypto: sm2 - make dependent on sm3 library
crypto: sm3 - make dependent on sm3 library
crypto: x86/sm3 - add AVX assembly implementation
crypto: tcrypt - add asynchronous speed test for SM3
arch/arm64/crypto/Kconfig | 2 +-
arch/arm64/crypto/sm3-ce-glue.c | 20 +-
arch/x86/crypto/Makefile | 3 +
arch/x86/crypto/sm3-avx-asm_64.S | 517 +++++++++++++++++++++++++++++++
arch/x86/crypto/sm3_avx_glue.c | 134 ++++++++
crypto/Kconfig | 16 +-
crypto/sm2.c | 38 +--
crypto/sm3_generic.c | 142 +--------
crypto/tcrypt.c | 14 +-
include/crypto/sm3.h | 35 ++-
lib/crypto/Kconfig | 3 +
lib/crypto/Makefile | 3 +
lib/crypto/sm3.c | 246 +++++++++++++++
13 files changed, 1007 insertions(+), 166 deletions(-)
create mode 100644 arch/x86/crypto/sm3-avx-asm_64.S
create mode 100644 arch/x86/crypto/sm3_avx_glue.c
create mode 100644 lib/crypto/sm3.c
--
2.32.0
Powered by blists - more mailing lists