mirror of
https://github.com/emmansun/gmsm.git
synced 2025-04-26 20:26:19 +08:00
sm4: ppc64x, use NIBBLE_MASK as round key
This commit is contained in:
parent
7cc5130380
commit
c279984922
@ -102,7 +102,7 @@ GLOBL ·rcon(SB), RODATA, $192
|
|||||||
// - y: 128 bits temp register
|
// - y: 128 bits temp register
|
||||||
// - z: 128 bits temp register
|
// - z: 128 bits temp register
|
||||||
#define AFFINE_TRANSFORM_NOTX(L, H, V_FOUR, x, y, z) \
|
#define AFFINE_TRANSFORM_NOTX(L, H, V_FOUR, x, y, z) \
|
||||||
VNOR x, x, z; \
|
VNOR x, x, z; \ // z = NOT(x)
|
||||||
VAND NIBBLE_MASK, z, z; \
|
VAND NIBBLE_MASK, z, z; \
|
||||||
VPERM L, L, z, y; \
|
VPERM L, L, z, y; \
|
||||||
VSRD x, V_FOUR, x; \
|
VSRD x, V_FOUR, x; \
|
||||||
@ -116,13 +116,10 @@ GLOBL ·rcon(SB), RODATA, $192
|
|||||||
// - y: 128 bits temp register
|
// - y: 128 bits temp register
|
||||||
// - z: 128 bits temp register
|
// - z: 128 bits temp register
|
||||||
#define SM4_SBOX(x, y, z) \
|
#define SM4_SBOX(x, y, z) \
|
||||||
; \
|
|
||||||
AFFINE_TRANSFORM(M1L, M1H, V_FOUR, x, y, z); \
|
AFFINE_TRANSFORM(M1L, M1H, V_FOUR, x, y, z); \
|
||||||
; \
|
|
||||||
VPERM x, x, INVERSE_SHIFT_ROWS, x; \
|
VPERM x, x, INVERSE_SHIFT_ROWS, x; \
|
||||||
VCIPHERLAST x, ZERO, x; \
|
VCIPHERLAST x, NIBBLE_MASK, x; \
|
||||||
; \
|
AFFINE_TRANSFORM_NOTX(M2L, M2H, V_FOUR, x, y, z)
|
||||||
AFFINE_TRANSFORM(M2L, M2H, V_FOUR, x, y, z)
|
|
||||||
|
|
||||||
#define SM4_TAO_L2(x, y, z) \
|
#define SM4_TAO_L2(x, y, z) \
|
||||||
SM4_SBOX(x, y, z); \
|
SM4_SBOX(x, y, z); \
|
||||||
@ -165,7 +162,6 @@ TEXT ·expandKeyAsm(SB),NOSPLIT,$0
|
|||||||
LXVD2X (R4)(R3), M2L
|
LXVD2X (R4)(R3), M2L
|
||||||
MOVD $96, R3
|
MOVD $96, R3
|
||||||
LXVD2X (R4)(R3), M2H
|
LXVD2X (R4)(R3), M2H
|
||||||
VSPLTISB $0, ZERO // VZERO ZERO
|
|
||||||
|
|
||||||
MOVD key+0(FP), R3
|
MOVD key+0(FP), R3
|
||||||
MOVD ck+8(FP), R4
|
MOVD ck+8(FP), R4
|
||||||
|
Loading…
x
Reference in New Issue
Block a user