Message ID | 20221027065505.15306-1-tianjia.zhang@linux.alibaba.com (mailing list archive) |
---|---|
Headers | show |
Series | Optimizing SM3 and SM4 algorithms using arm64 NEON/CE instructions | expand |
On Thu, Oct 27, 2022 at 02:54:52PM +0800, Tianjia Zhang wrote: > Hi folks, > > This series of patches uses different arm64 instruction sets to optimize > the SM3 and SM4 algorithms, as well as the optimization of different > modes of SM4. > > patch 1-2: NEON instruction set optimization for SM3 > patch 3: Refactored and streamlined SM4 NEON instruction implementation > patch 4-5: support test for new SM4 mode > patch 6-8: Refactored and streamlined SM4 CE instruction implementation > patch 9-10: CE accelerated implementation of SM4 CTS/XTS > patch 11: CE accelerated implementation of SM4 CMAC/XCBC/CBCMAC > patch 12-13: CE accelerated implementation of SM4 CCM/GCM > > v3 change: > - As Eric said, remove the code for ESSIV, including testmgr and tcrypt > > v2 changes: > - remove ARMv9 SVE acceleration implementation > - rebase onto v6.1-rc1 > > Cheers, > Tianjia > > Tianjia Zhang (13): > crypto: arm64/sm3 - raise the priority of the CE implementation > crypto: arm64/sm3 - add NEON assembly implementation > crypto: arm64/sm4 - refactor and simplify NEON implementation > crypto: testmgr - add SM4 cts-cbc/xts/xcbc test vectors > crypto: tcrypt - add SM4 cts-cbc/xts/xcbc test > crypto: arm64/sm4 - refactor and simplify CE implementation > crypto: arm64/sm4 - simplify sm4_ce_expand_key() of CE implementation > crypto: arm64/sm4 - export reusable CE acceleration functions > crypto: arm64/sm4 - add CE implementation for CTS-CBC mode > crypto: arm64/sm4 - add CE implementation for XTS mode > crypto: arm64/sm4 - add CE implementation for cmac/xcbc/cbcmac > crypto: arm64/sm4 - add CE implementation for CCM mode > crypto: arm64/sm4 - add CE implementation for GCM mode > > arch/arm64/crypto/Kconfig | 47 +- > arch/arm64/crypto/Makefile | 9 + > arch/arm64/crypto/sm3-ce-glue.c | 2 +- > arch/arm64/crypto/sm3-neon-core.S | 600 +++++++++++++ > arch/arm64/crypto/sm3-neon-glue.c | 103 +++ > arch/arm64/crypto/sm4-ce-asm.h | 209 +++++ > arch/arm64/crypto/sm4-ce-ccm-core.S | 328 ++++++++ > arch/arm64/crypto/sm4-ce-ccm-glue.c | 303 +++++++ > arch/arm64/crypto/sm4-ce-core.S | 1205 ++++++++++++++++++--------- > arch/arm64/crypto/sm4-ce-gcm-core.S | 741 ++++++++++++++++ > arch/arm64/crypto/sm4-ce-gcm-glue.c | 286 +++++++ > arch/arm64/crypto/sm4-ce-glue.c | 575 ++++++++++++- > arch/arm64/crypto/sm4-ce.h | 16 + > arch/arm64/crypto/sm4-neon-core.S | 630 +++++++++----- > arch/arm64/crypto/sm4-neon-glue.c | 172 +--- > crypto/tcrypt.c | 21 + > crypto/testmgr.c | 19 + > crypto/testmgr.h | 977 ++++++++++++++++++++++ > 18 files changed, 5478 insertions(+), 765 deletions(-) > create mode 100644 arch/arm64/crypto/sm3-neon-core.S > create mode 100644 arch/arm64/crypto/sm3-neon-glue.c > create mode 100644 arch/arm64/crypto/sm4-ce-asm.h > create mode 100644 arch/arm64/crypto/sm4-ce-ccm-core.S > create mode 100644 arch/arm64/crypto/sm4-ce-ccm-glue.c > create mode 100644 arch/arm64/crypto/sm4-ce-gcm-core.S > create mode 100644 arch/arm64/crypto/sm4-ce-gcm-glue.c > create mode 100644 arch/arm64/crypto/sm4-ce.h > > -- > 2.24.3 (Apple Git-128) All applied. Thanks.