Seltsam.
Habe den Code jetzt korrigiert, die bisherigen Unittests laufen auch sauber durch.
Sieht jetzt so aus:
Meldung von DUnit:
"TestCalcRawByteString: ETestFailure
at $006D7C6D
Index: 3 - expected: <f7fc914c8fe4827d866b02df2459840260f4adb0db4deb9fa 661756c>
but was: <f912f9fcba30ec218d9fc4b682a5ac3457635be038d08a8af 5f44241>"
Was läuft da falsch?
Grüße
TurboMagic
Sorry TM..
Du fragst, was falsch läuft... ?
Ich laufe falsch. Ich sollte mehr schlafen und weniger posten - oder wenn doch, dann nur vollständigen Code und nicht Auszüge.
Ich habe deine neuste Version gerade jetzt geladen. Auch meine Testnachricht wird von deiner Funktion korrekt "gehasht".
(Ich sehe gerade, dass in der soeben heruntergeladenen
DEC von github immer noch die alte procedure THash_SHA3Base.Calc() drin ist. Hab's soeben mit deiner hier geposteten laufen lassen - auch ok.)
Das s := s+s+s ging verloren. So sieht's aus:
Delphi-Quellcode:
uses
System.SysUtils,
DECFormat,
DECHash;
var
s : RawByteString;
WE : THash_SHA3_224;
begin
WE := THash_SHA3_224.Create;
try
WriteLn('SHA3 224 Test');
s := '';
for var i := 1 to 10 do
s := s + 'e21et2e2et1208e7t12e07812te08127et1028e7t1208e7gd81d872t178r02tr370823';
s := s + 'TurboMagic';
s := s + s + s;
writeln( length(s).ToString );
writeln( s );
s := WE.CalcString(s, TFormat_HexL);
WriteLn(s);
writeln( s = 'f7fc914c8fe4827d866b02df2459840260f4adb0db4deb9fa661756c' );
finally
WE.Free;
end;
ReadLn;