zuc: eia128 ppc64x fix bug

This commit is contained in:
Sun Yimin 2024-09-30 17:35:08 +08:00 committed by GitHub
parent 50f5d29e49
commit 0adad613a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -59,8 +59,8 @@ TEXT ·eia3Round16B(SB),NOSPLIT,$0
VSRW XDATA, XTMP2, XTMP1
VAND BIT_REV_AND_TAB, XTMP1, XTMP1
MOVD $0x20, PTR
LXVD2X (PTR)(R0), BIT_REV_TAB_L
MOVD $0x10, R8
LXVD2X (PTR)(R8), BIT_REV_TAB_L
VSLB BIT_REV_TAB_L, XTMP2, BIT_REV_TAB_H
VPERM BIT_REV_TAB_L, BIT_REV_TAB_L, XTMP3, XTMP3
VPERM BIT_REV_TAB_H, BIT_REV_TAB_H, XTMP1, XTMP1
@ -69,19 +69,19 @@ TEXT ·eia3Round16B(SB),NOSPLIT,$0
// ZUC authentication part, 4x32 data bits
// setup data
VSPLTISB $0, XTMP2
MOVD $0x30, PTR
LXVD2X (PTR)(R0), XTMP4
MOVD $0x20, R8
LXVD2X (PTR)(R8), XTMP4
VPERM XTMP2, XTMP3, XTMP4, XTMP1
MOVD $0x40, PTR
LXVD2X (PTR)(R0), XTMP4
MOVD $0x30, R8
LXVD2X (PTR)(R8), XTMP4
VPERM XTMP2, XTMP3, XTMP4, XTMP2
// setup KS
LXVW4X (R4), KS_L
MOVD $8, PTR
LXVW4X (PTR)(R4), KS_M1
MOVD $0x50, PTR
LXVD2X (PTR)(R0), XTMP1
MOVD $8, R8
LXVW4X (R8)(R4), KS_M1
MOVD $0x40, R8
LXVD2X (PTR)(R8), XTMP1
VPERM KS_L, KS_L, XTMP1, KS_L
VPERM KS_M1, KS_M1, XTMP1, KS_M1
@ -94,14 +94,14 @@ TEXT ·eia3Round16B(SB),NOSPLIT,$0
VSPLTW $2, XTMP3, XDIGEST
// Update tag
MFVSRWZ XDIGEST, PTR
MFVSRWZ XDIGEST, R8
MOVWZ (R3), R6
XOR R6, PTR, R6
XOR R6, R8, R6
MOVW R6, (R3)
// Copy last 16 bytes of KS to the front
MOVD $16, PTR
LXVD2X (PTR)(R4), XTMP1
MOVD $16, R8
LXVD2X (R8)(R4), XTMP1
STXVD2X XTMP1, (R4)(R0)
RET