Hallo Robert,
danke für die prompte Antwort!
Es lässt sich nun kompilieren, hab den Code nochmals angeschaut. Das heisst nun also
das in "Byte(AKey[xU+1])" das xU+1 Zeichen (Char) von AKey als Byte gelesen wird?
Nun versteht ich aber folgende Zeile nicht mehr:
"TByteArray(Dest)[xS] := TByteArray(ASource)[xS] xor FD[xT];"
die lässt sich nämlich auch nicht kompilieren
Und mit "Bytes" scheints auch nicht zu gehen...
Was muss hier getan werden, und was passiert hier genau?
Delphi-Quellcode:
procedure RC4Code(var ARC4: TRC4Context; const ASource; var Dest; ACount: Integer);
var
xS : Integer;
xT : Byte;
xtest : byte;
begin
with ARC4 do
for xS := 0 to ACount -1 do
begin
Inc(FI);
xT := FD[FI];
Inc(FJ, xT);
FD[FI] := FD[FJ];
FD[FJ] := xT;
Inc(xT, FD[FI]);
{$IFDEF CLR}
TByteArray(Dest)[xS] := TByteArray(ASource)[xS] xor FD[xT];
{$ELSE}
TByteArray(Dest)[xS] := TByteArray(ASource)[xS] xor FD[xT];
{$ENDIF}
end;
end;