mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-25 17:56:31 +08:00
optimize zuc
This commit is contained in:
@@ -124,15 +124,21 @@ static const uint8_t S1[256] = {
|
|||||||
{int j; for (j=0; j<15;j++) LFSR[j]=LFSR[j+1];} \
|
{int j; for (j=0; j<15;j++) LFSR[j]=LFSR[j+1];} \
|
||||||
LFSR[15] = V
|
LFSR[15] = V
|
||||||
|
|
||||||
#define LFSRWithWorkMode() \
|
#define LFSRWithWorkMode() \
|
||||||
V = LFSR[0]; \
|
{ \
|
||||||
ADD31(V, ROT31(LFSR[0], 8)); \
|
int j; \
|
||||||
ADD31(V, ROT31(LFSR[4], 20)); \
|
uint64_t a = LFSR[0]; \
|
||||||
ADD31(V, ROT31(LFSR[10], 21)); \
|
a += ((uint64_t)LFSR[0]) << 8; \
|
||||||
ADD31(V, ROT31(LFSR[13], 17)); \
|
a += ((uint64_t)LFSR[4]) << 20; \
|
||||||
ADD31(V, ROT31(LFSR[15], 15)); \
|
a += ((uint64_t)LFSR[10]) << 21; \
|
||||||
{int j; for (j=0; j<15;j++) LFSR[j]=LFSR[j+1];} \
|
a += ((uint64_t)LFSR[13]) << 17; \
|
||||||
LFSR[15] = V
|
a += ((uint64_t)LFSR[15]) << 15; \
|
||||||
|
a = (a & 0x7fffffff) + (a >> 31); \
|
||||||
|
V = (a & 0x7fffffff) + (a >> 31); \
|
||||||
|
for (j = 0; j < 15; j++) \
|
||||||
|
LFSR[j] = LFSR[j+1]; \
|
||||||
|
LFSR[15] = V; \
|
||||||
|
}
|
||||||
|
|
||||||
#define BitReconstruction2(X1,X2) \
|
#define BitReconstruction2(X1,X2) \
|
||||||
X1 = ((LFSR[11] & 0xFFFF) << 16) | (LFSR[9] >> 15); \
|
X1 = ((LFSR[11] & 0xFFFF) << 16) | (LFSR[9] >> 15); \
|
||||||
|
|||||||
Reference in New Issue
Block a user