ГОСТ Р ИСО 28640 - 2012
IF statc_i >= Р THEN
LET stalc_i = 0
LET pO = 0
LET pi = QI
LET p2 = Q2
LET p3 = Q3
FOR i=<) TO P-Q3-1
DECLARE NUMERIC рО. р!. р2. рЗ
unsigned long *p(). *pl. ap2. *p3;
if (slate_i >= P) |
slatc_i = 0;
pO = state;
pi = state + Q I;
p2 = state + Q2:
p3 = state + Q3:
FOR (i=0: i<(P-Q3): i++)
LET statc(pO) = Xor32(Xor32(Xor32(statc(pO) .
statcfpl)> . statc(p2)) . statc(p3))
LET pO = pO + 1
LET pi = pi + I
LET p2 = p2 + 1
LET рЗ = рЗ + 1
NEXT i
LET рЗ = 0
FOR i=i TO P-Q2-1
*р0++ л= *pl++ л *p2++ A"p3++;
p3 = state;
for (; i<(P-Q2); i++)
LET statc(pO) = Xor32(Xor32(Xor32(statc(pO) .
statc(pl)) . state(p2)) . statc(p3))
LET pO = pO + I
LET pi = pi + 1
LET p2 = p2 + 1
LET рЗ = рЗ + 1
NEXT i
LET p2 = 0
FOR i=i TO P-Ql-1
*р0++ л= *pl++ л *p2++ A"p3++;
p2 = state;
for (; i<(P-Q 1); i++)
LET state(pO) = Xor32(Xor32(Xor32(statc(pO) .
statc(pl)) . statc(p2)) . statc(p3))
LET pO = pOI
!ap0++ A= *pl++ A *p2++ A*p3++:
!pi = state;
LET pi = pi + 1
LET p2 = p2 + 1
LET рЗ = p3 + 1
NEXT i
LET pi = 0
FOR i=i TO P-l
!for (; i<P; i++)
LET state(pO) = Xor32(Xor32(Xor32(statc(pO) ,
!*p0++ A= 4pl++ л 4p2++ A*p3++:
statc(pl)) , state(p2)) , state(p3))
LET pO = pO + I
LET pi = pi + 1
LET p2 = p2 + 1
LET рЗ = p3 + 1
NEXT i
END IF
!J
26