Форум: "Прочее";
Текущий архив: 2012.02.26;
Скачать: [xml.tar.bz2];
ВнизПомогите переписать функцию с ASM на Pascal или C Найти похожие ветки
← →
Rouse_ © (2011-11-08 17:47) [8]
procedure GOST_EncryptBlockA(var GBlock: TGOSTBlock);
var
I, A, Block1, Block2, Tmp: Cardinal;
begin
Block1 := GBlock[0];
Block2 := GBlock[1];
for I := 0 to 2 do
begin
for A := 0 to 7 do
begin
Tmp := Block1;
Inc(Block1, GOSTKey[A]);
Block1 := (Block1 and $FFFFFF00) + GOSTTable[0, Block1 and $FF];
Block1 := ((Block1 and $FFFFFF00) shr 8) + ((Block1 and $FF) shl 24);
Block1 := (Block1 and $FFFFFF00) + GOSTTable[1, Block1 and $FF];
Block1 := ((Block1 and $FFFFFF00) shr 8) + ((Block1 and $FF) shl 24);
Block1 := (Block1 and $FFFFFF00) + GOSTTable[2, Block1 and $FF];
Block1 := ((Block1 and $FFFFFF00) shr 8) + ((Block1 and $FF) shl 24);
Block1 := (Block1 and $FFFFFF00) + GOSTTable[3, Block1 and $FF];
Block1 := (Block1 shl 3) + ((Block1 and $E0000000) shr 29);
Block1 := Block1 xor Block2;
Block2 := Tmp;
end;
end;
for A := 0 to 7 do
begin
Tmp := Block1;
Inc(Block1, GOSTKey[7 - A]);
Block1 := (Block1 and $FFFFFF00) + GOSTTable[0, Block1 and $FF];
Block1 := ((Block1 and $FFFFFF00) shr 8) + ((Block1 and $FF) shl 24);
Block1 := (Block1 and $FFFFFF00) + GOSTTable[1, Block1 and $FF];
Block1 := ((Block1 and $FFFFFF00) shr 8) + ((Block1 and $FF) shl 24);
Block1 := (Block1 and $FFFFFF00) + GOSTTable[2, Block1 and $FF];
Block1 := ((Block1 and $FFFFFF00) shr 8) + ((Block1 and $FF) shl 24);
Block1 := (Block1 and $FFFFFF00) + GOSTTable[3, Block1 and $FF];
Block1 := (Block1 shl 3) + ((Block1 and $E0000000) shr 29);
Block1 := Block1 xor Block2;
Block2 := Tmp;
end;
GBlock[0] := Block2;
GBlock[1] := Block1;
end;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2012.02.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c