From 8253e1be8e2a7eb8f808552bc6c2c018e6f07514 Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Fri, 25 Aug 2023 13:20:55 +0800 Subject: [PATCH] sm4: xts sm4ni arm64, fix duplicated name issue #151 --- sm4/sm4ni_xts.go | 20 ++++++++++++++++---- sm4/xts_sm4ni_arm64.s | 16 ++++++++-------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/sm4/sm4ni_xts.go b/sm4/sm4ni_xts.go index 86a5d41..ad9e548 100644 --- a/sm4/sm4ni_xts.go +++ b/sm4/sm4ni_xts.go @@ -38,19 +38,31 @@ func (b *sm4CipherNI) NewXTSDecrypter(encryptedTweak *[BlockSize]byte, isGB bool func (x *xtsNI) BlockSize() int { return BlockSize } +//go:noescape +func encryptSm4NiXts(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) + +//go:noescape +func encryptSm4NiXtsGB(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) + +//go:noescape +func decryptSm4NiXts(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) + +//go:noescape +func decryptSm4NiXtsGB(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) + func (x *xtsNI) CryptBlocks(dst, src []byte) { validateXtsInput(dst, src) if x.enc == xtsEncrypt { if x.isGB { - encryptSm4XtsGB(&x.b.enc[0], &x.tweak, dst, src) + encryptSm4NiXtsGB(&x.b.enc[0], &x.tweak, dst, src) } else { - encryptSm4Xts(&x.b.enc[0], &x.tweak, dst, src) + encryptSm4NiXts(&x.b.enc[0], &x.tweak, dst, src) } } else { if x.isGB { - decryptSm4XtsGB(&x.b.dec[0], &x.tweak, dst, src) + decryptSm4NiXtsGB(&x.b.dec[0], &x.tweak, dst, src) } else { - decryptSm4Xts(&x.b.dec[0], &x.tweak, dst, src) + decryptSm4NiXts(&x.b.dec[0], &x.tweak, dst, src) } } } diff --git a/sm4/xts_sm4ni_arm64.s b/sm4/xts_sm4ni_arm64.s index 58fc493..5884de4 100644 --- a/sm4/xts_sm4ni_arm64.s +++ b/sm4/xts_sm4ni_arm64.s @@ -70,8 +70,8 @@ #define srcPtrLen R4 #define I R5 -// func encryptSm4Xts(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) -TEXT ·encryptSm4Xts(SB),0,$128-64 +// func encryptSm4NiXts(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) +TEXT ·encryptSm4NiXts(SB),0,$128-64 MOVD xk+0(FP), rk MOVD tweak+8(FP), twPtr MOVD dst+16(FP), dstPtr @@ -161,8 +161,8 @@ xtsSm4EncDone: VST1 [TW.B16], (twPtr) RET -// func encryptSm4XtsGB(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) -TEXT ·encryptSm4XtsGB(SB),0,$128-64 +// func encryptSm4NiXtsGB(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) +TEXT ·encryptSm4NiXtsGB(SB),0,$128-64 MOVD xk+0(FP), rk MOVD tweak+8(FP), twPtr MOVD dst+16(FP), dstPtr @@ -253,8 +253,8 @@ xtsSm4EncDone: VST1 [TW.B16], (twPtr) RET -// func decryptSm4Xts(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) -TEXT ·decryptSm4Xts(SB),0,$128-64 +// func decryptSm4NiXts(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) +TEXT ·decryptSm4NiXts(SB),0,$128-64 MOVD xk+0(FP), rk MOVD tweak+8(FP), twPtr MOVD dst+16(FP), dstPtr @@ -367,8 +367,8 @@ xtsSm4DecDone: VST1 [TW.B16], (twPtr) RET -// func decryptSm4XtsGB(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) -TEXT ·decryptSm4XtsGB(SB),0,$128-64 +// func decryptSm4NiXtsGB(xk *uint32, tweak *[BlockSize]byte, dst, src []byte) +TEXT ·decryptSm4NiXtsGB(SB),0,$128-64 MOVD xk+0(FP), rk MOVD tweak+8(FP), twPtr MOVD dst+16(FP), dstPtr