Hier eine meiner Fragestellungen präzisiert.
Wie muss man folgenden Code ändern, damit nicht immer nur BlockSize
an Daten in einem Schritt verarbeitet werden, sondern soviel wie möglich
aber ohne, dass dieses * 8 zur Umrechnung in Bit zu einer verminderung
der maximal insgesammt möglichen Datengröße führt?
DataSize ist übrigens ein Integer (ja man müsste mal untersuchen ob man das
problemfrei auf UInt32 oder UInt64 ändern kann, aber die Methodensignatur
nutzen auch alle anderen Hash Algorithmen der
DEC).
Delphi-Quellcode:
while (UInt32(DataSize) >= BlockSize)
do
begin
Absorb(Pointer(@Data), BlockSize * 8);
Dec(DataSize, BlockSize);
end;
Grüße
TurboMagic