OSDN Git Service

Updated Delphi bindings to latest version.
authorLoRd_MuldeR <mulder2@gmx.de>
Mon, 15 Jan 2018 19:35:31 +0000 (20:35 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Mon, 15 Jan 2018 19:35:31 +0000 (20:35 +0100)
bindings/Delphi/example/Example.res
bindings/Delphi/example/src/Main.pas
bindings/Delphi/library/MHash384.pas

index 1e4099b..1be44f6 100644 (file)
Binary files a/bindings/Delphi/example/Example.res and b/bindings/Delphi/example/Example.res differ
index a9d83ca..4273b44 100644 (file)
@@ -119,10 +119,12 @@ begin
     try
       try
         TMHash384.SelfTest(UpdateProgress, AbortFlag);
+        Edit_FileDigest.Text := 'Self-test completed.';
         ShowMessage('Self-test completed successfully.');
       except
         on E: Exception do
         begin
+          Edit_FileDigest.Text := 'Self-test failed!';
           MessageBox(Self.WindowHandle, PAnsiChar('Self-test has faild with an error!'#10#10'Details:'#10 + E.Message), PAnsiChar(String(E.ClassName)), MB_ICONERROR or MB_SYSTEMMODAL);
           Exit;
          end;
@@ -131,7 +133,6 @@ begin
       Button_Browse.Enabled := True;
       Button_Compute.Enabled := True;
       ProgressBar.Position := 100;
-      Edit_FileDigest.Text := 'Self-test completed.';
     end;
   end;
   if Key = ESC then
index d279137..775dc04 100644 (file)
@@ -1151,7 +1151,7 @@ begin
   ptr_dst := @m_digest[not m_rnd and 1];
   for i := 0 to MHASH384_LEN-1 do
   begin
-    val := ptr_src[ptr_mix[i]] xor ptr_xor[i] xor ptr_rnd[i];
+    val := (ptr_src[ptr_mix[i]] xor ptr_xor[i]) + ptr_rnd[i];
     ptr_dst[i] := ptr_dst[i] xor TABLE_SBX[val][i];
   end;
   m_rnd := (m_rnd + 1) and $FF
@@ -1243,7 +1243,7 @@ begin
   ptr_dst := @m_digest[not m_rnd and 1];
   for i := 0 to MHASH384_LEN-1 do
   begin
-    val := ptr_src[ptr_mix[i]] xor ptr_xor[i] xor ptr_rnd[i];
+    val := (ptr_src[ptr_mix[i]] xor ptr_xor[i]) + ptr_rnd[i];
     output[i] := ptr_dst[i] xor TABLE_SBX[val][i];
   end;
 end;
@@ -1449,34 +1449,34 @@ const
   );
   TEST_RESULT: array[0..15] of TDigestBuf =
   (
-    ( $7B, $5E, $40, $A3, $5D, $2A, $27, $21, $24, $93, $20, $27, $F0, $9F, $0B, $9F, $26, $71, $D9, $EF, $F4, $C7, $E6, $F9, $74, $66, $EA, $67, $31, $61, $7D, $FA, $9B, $8B, $00, $46, $CB, $8D, $6A, $A1, $E5, $AD, $F5, $20, $FC, $E3, $4C, $32 ), {00}
-    ( $94, $16, $8F, $71, $27, $DD, $E6, $1D, $B6, $90, $AC, $C4, $DC, $FC, $BF, $35, $EA, $F7, $7A, $15, $1F, $8B, $BA, $EE, $4F, $C3, $F7, $04, $57, $3D, $FD, $0D, $FE, $9C, $D5, $C4, $C3, $E0, $22, $7A, $C6, $58, $2A, $51, $F2, $C4, $D8, $64 ), {01}
-    ( $55, $05, $C0, $3B, $FF, $14, $2D, $7B, $47, $37, $FA, $7F, $36, $75, $0F, $8E, $09, $34, $A3, $65, $FE, $F6, $15, $92, $E3, $D3, $B0, $D3, $08, $86, $7D, $AA, $44, $64, $EB, $35, $EA, $27, $07, $7A, $BE, $AC, $BE, $79, $B6, $57, $15, $30 ), {02}
-    ( $6E, $5B, $90, $D2, $56, $81, $B4, $54, $50, $E2, $1F, $C8, $62, $73, $EB, $AD, $B7, $91, $73, $58, $69, $CE, $6D, $EE, $AE, $1A, $D5, $27, $80, $5A, $AC, $62, $D8, $8E, $AE, $DD, $59, $2F, $20, $15, $FE, $80, $5F, $01, $F6, $32, $25, $32 ), {03}
-    ( $1F, $41, $37, $2F, $44, $B6, $63, $4C, $7B, $63, $B6, $D8, $6B, $C2, $AF, $06, $83, $72, $78, $E6, $87, $21, $76, $73, $96, $49, $B0, $63, $0F, $D6, $BB, $72, $AD, $E6, $93, $38, $2A, $94, $B8, $C2, $F8, $74, $CF, $98, $5E, $CE, $41, $F2 ), {04}
-    ( $3A, $2A, $83, $28, $0D, $B4, $E5, $95, $E0, $12, $11, $19, $32, $A7, $8D, $60, $8A, $E7, $9B, $2A, $01, $C8, $1D, $CB, $B4, $F6, $61, $43, $48, $D4, $BF, $D6, $98, $55, $40, $AF, $BC, $D8, $17, $13, $FF, $86, $CE, $8B, $5F, $5F, $8D, $02 ), {05}
-    ( $21, $D1, $B5, $D8, $B8, $85, $30, $EC, $CB, $40, $39, $76, $08, $51, $37, $9D, $1E, $32, $04, $F8, $88, $9D, $9C, $C7, $3C, $E6, $23, $13, $F7, $D7, $37, $54, $DF, $98, $F3, $EE, $F2, $6E, $C5, $37, $D8, $41, $55, $B8, $91, $15, $22, $29 ), {06}
-    ( $EC, $18, $E2, $AF, $4A, $C0, $D8, $62, $6A, $E5, $16, $59, $93, $DE, $29, $DB, $B2, $01, $30, $D1, $CE, $5B, $70, $A5, $52, $DA, $EC, $D7, $97, $E1, $5D, $9B, $B5, $41, $1B, $4A, $64, $C7, $8E, $1F, $0C, $6E, $EB, $56, $7A, $56, $0D, $85 ), {07}
-    ( $11, $5C, $21, $BE, $85, $D7, $86, $D5, $39, $3B, $63, $5C, $3B, $B5, $35, $7A, $64, $CA, $DD, $58, $9A, $C8, $3F, $44, $F8, $51, $39, $D0, $A5, $72, $F0, $A1, $F6, $A9, $54, $47, $14, $12, $D9, $67, $F0, $9C, $5D, $EF, $C5, $00, $1A, $A2 ), {08}
-    ( $B4, $65, $C4, $CA, $4E, $13, $93, $92, $1E, $51, $A6, $E4, $4F, $94, $BA, $5E, $F3, $41, $AA, $19, $57, $0B, $BD, $93, $DB, $DA, $66, $E5, $1E, $9A, $F0, $79, $50, $1B, $D6, $77, $17, $35, $44, $F4, $E6, $51, $BC, $75, $D3, $9E, $62, $27 ), {09}
-    ( $3E, $9C, $8A, $AC, $E6, $82, $E2, $BC, $B3, $1A, $F7, $26, $F6, $18, $17, $DB, $DB, $1F, $BB, $61, $C8, $3D, $36, $94, $9E, $B8, $CF, $BF, $0F, $4C, $C8, $68, $D2, $0F, $43, $5C, $69, $26, $AA, $F8, $AB, $96, $2E, $BC, $7D, $DC, $02, $05 ), {0A}
-    ( $AA, $7B, $C9, $28, $2A, $D0, $5D, $B2, $3D, $0C, $3C, $B5, $E7, $1E, $EF, $26, $2F, $D5, $9A, $EC, $23, $23, $F3, $A4, $B2, $AA, $52, $C9, $D3, $B1, $23, $D3, $5E, $1A, $D1, $20, $30, $E4, $4A, $CF, $7E, $53, $2F, $2D, $E9, $22, $D7, $8A ), {0B}
-    ( $66, $67, $B6, $8B, $44, $B0, $E4, $B0, $C2, $34, $C9, $45, $08, $5E, $79, $24, $3F, $A0, $59, $20, $39, $E4, $77, $C2, $A2, $73, $A6, $76, $70, $3C, $6F, $3D, $F8, $51, $CD, $7C, $EB, $4F, $7F, $3B, $33, $D8, $94, $4C, $76, $3D, $C5, $AF ), {0C}
-    ( $A1, $E3, $B0, $B2, $0B, $57, $32, $BD, $BC, $8B, $C7, $90, $7D, $58, $14, $A4, $4F, $76, $D0, $C2, $5D, $3A, $63, $4D, $12, $9F, $56, $18, $C4, $B7, $17, $4B, $C8, $FA, $20, $27, $85, $67, $78, $A8, $48, $B2, $79, $52, $5A, $D1, $0C, $00 ), {0D}
-    ( $46, $73, $F5, $55, $3F, $56, $F0, $7E, $7C, $1D, $C1, $29, $D7, $95, $8E, $F2, $D2, $EF, $62, $6B, $5E, $26, $49, $1E, $DB, $64, $BE, $D9, $C2, $DF, $80, $FC, $2E, $AA, $A1, $2B, $A6, $27, $DA, $8C, $E2, $50, $39, $28, $1D, $04, $BE, $E3 ), {0E}
-    ( $34, $D4, $0F, $D3, $95, $49, $87, $77, $C2, $0C, $7A, $8E, $A5, $EB, $ED, $11, $5A, $1C, $B7, $7C, $74, $68, $98, $22, $9B, $96, $90, $6D, $A6, $B7, $39, $B6, $91, $C4, $73, $89, $7A, $FB, $80, $16, $40, $A5, $19, $E2, $A9, $03, $C3, $E0 )  {0F}
+    ( $4A, $07, $8B, $E6, $56, $B2, $94, $64, $38, $9C, $71, $09, $F0, $F4, $08, $B0, $AD, $9C, $92, $BD, $B4, $36, $03, $63, $73, $AC, $50, $BC, $99, $3C, $21, $F7, $34, $8B, $9E, $E2, $09, $80, $F7, $7F, $4D, $2B, $ED, $49, $0E, $BC, $9D, $2E ), {00}
+    ( $F8, $41, $FD, $28, $F9, $75, $A8, $27, $ED, $57, $55, $CD, $BA, $E2, $A0, $F0, $FB, $4D, $D8, $A0, $2C, $84, $10, $04, $0F, $EC, $8B, $42, $59, $0E, $EF, $70, $FF, $0F, $50, $4A, $E4, $4F, $38, $1B, $AF, $99, $59, $96, $03, $76, $C9, $E9 ), {01}
+    ( $60, $1F, $8D, $7E, $31, $94, $48, $A6, $3E, $32, $86, $00, $64, $91, $2F, $34, $4D, $D7, $15, $52, $AC, $70, $61, $31, $19, $39, $6E, $B4, $BB, $CB, $AC, $95, $95, $E6, $F1, $80, $6C, $12, $7F, $83, $B0, $7A, $7D, $44, $9A, $FA, $83, $71 ), {02}
+    ( $EF, $AC, $BD, $E1, $8D, $6A, $B7, $29, $45, $74, $D2, $F7, $68, $86, $49, $D9, $6D, $74, $AE, $A6, $85, $F6, $D4, $34, $38, $76, $BB, $9C, $25, $7C, $ED, $B5, $A4, $E6, $0F, $8E, $01, $42, $96, $FB, $5E, $46, $C1, $7A, $C6, $79, $E7, $A8 ), {03}
+    ( $DA, $23, $8B, $FF, $84, $2B, $DA, $78, $D3, $0F, $1F, $A2, $A1, $2D, $FA, $7D, $6A, $C5, $F1, $B0, $28, $BB, $41, $FB, $1F, $FA, $85, $D3, $63, $21, $FE, $08, $A6, $00, $64, $CD, $28, $CB, $B0, $F5, $73, $EA, $61, $6B, $FE, $08, $C2, $72 ), {04}
+    ( $92, $39, $31, $81, $E1, $41, $3D, $83, $DB, $9B, $83, $52, $20, $83, $FC, $6A, $EE, $CE, $E2, $78, $AA, $CF, $53, $E1, $F2, $4F, $7A, $39, $36, $05, $75, $14, $1F, $71, $1E, $76, $2C, $D1, $BB, $43, $96, $38, $F7, $11, $EC, $D9, $1C, $15 ), {05}
+    ( $0B, $99, $27, $1A, $6F, $34, $40, $52, $FF, $38, $01, $36, $F5, $28, $BC, $F3, $60, $2A, $AB, $73, $3D, $59, $86, $B2, $57, $EC, $91, $65, $AA, $61, $50, $A1, $79, $25, $54, $B1, $9E, $7E, $D9, $11, $BE, $B6, $48, $6D, $C0, $9D, $85, $A2 ), {06}
+    ( $4C, $A3, $1A, $25, $69, $2C, $FC, $7C, $71, $8A, $9D, $D1, $E0, $5D, $F8, $BE, $AA, $E5, $38, $66, $9F, $E7, $11, $0F, $72, $63, $EF, $C0, $E3, $CE, $10, $8E, $CD, $A0, $C3, $D9, $85, $46, $42, $AA, $C7, $56, $DF, $C4, $C6, $D4, $22, $8E ), {07}
+    ( $9B, $F9, $38, $C8, $33, $E2, $58, $44, $3E, $DE, $FD, $51, $0A, $62, $2D, $ED, $ED, $72, $1C, $01, $45, $D5, $C9, $D0, $F9, $88, $15, $74, $0A, $23, $9D, $D8, $50, $5B, $FF, $7B, $2D, $0E, $6A, $1B, $0A, $4D, $F2, $C5, $F6, $7B, $41, $28 ), {08}
+    ( $87, $37, $44, $97, $9E, $FA, $03, $2F, $78, $D0, $66, $97, $30, $13, $FD, $44, $2F, $91, $97, $E7, $D4, $12, $B9, $AA, $EF, $E5, $CB, $B1, $74, $BE, $63, $C0, $CC, $02, $A6, $E0, $30, $E6, $14, $75, $EB, $89, $4A, $E1, $2D, $16, $57, $51 ), {09}
+    ( $56, $7F, $32, $54, $FD, $4F, $58, $C9, $66, $F5, $11, $99, $27, $F1, $2F, $0B, $59, $3E, $5A, $CF, $90, $02, $88, $F1, $C5, $9D, $CC, $C0, $E4, $77, $C3, $4A, $00, $F4, $BF, $6B, $71, $F2, $F9, $08, $FD, $1A, $F2, $9C, $27, $88, $87, $97 ), {0A}
+    ( $0E, $73, $2B, $B3, $8D, $C5, $35, $9D, $A7, $C9, $7B, $63, $D5, $2C, $5E, $E1, $20, $73, $33, $7D, $E7, $4E, $16, $95, $48, $40, $D6, $E3, $63, $0E, $C3, $5B, $D2, $FF, $EA, $D6, $5D, $FD, $11, $5C, $1B, $58, $1E, $EF, $1B, $32, $DD, $2A ), {0B}
+    ( $8E, $7E, $C7, $36, $DF, $F6, $C7, $9C, $55, $AE, $12, $99, $05, $5D, $9D, $61, $D3, $26, $2E, $84, $EE, $CC, $56, $33, $47, $29, $6B, $89, $BF, $81, $2F, $DC, $C6, $30, $D2, $62, $CE, $AC, $4C, $BE, $21, $1F, $57, $9E, $B6, $EC, $1C, $B2 ), {0C}
+    ( $34, $DE, $19, $51, $1B, $E9, $A2, $84, $D8, $B9, $B4, $C7, $6D, $D6, $93, $4F, $C0, $B5, $EB, $C2, $0D, $6E, $B7, $E3, $9B, $54, $13, $B3, $39, $8D, $34, $9F, $80, $6B, $13, $36, $7A, $11, $F4, $B5, $D4, $C3, $D0, $CE, $6F, $8E, $A3, $A7 ), {0D}
+    ( $0F, $F2, $A2, $F0, $AC, $6F, $43, $AF, $48, $CE, $8A, $38, $0B, $1A, $B1, $34, $CE, $6A, $31, $76, $CE, $C8, $13, $B2, $AE, $6C, $3B, $7A, $B6, $DA, $EF, $D1, $BE, $99, $E7, $F3, $C9, $E6, $1A, $1B, $3E, $63, $1D, $07, $7C, $27, $35, $13 ), {0E}
+    ( $09, $19, $F0, $2A, $72, $1C, $4A, $DA, $98, $79, $C3, $BE, $6C, $EC, $98, $FB, $6E, $A0, $D4, $53, $C2, $0D, $B4, $BD, $9B, $28, $7E, $D6, $25, $2B, $98, $25, $CF, $66, $A0, $65, $A2, $09, $AF, $C8, $D5, $A2, $2A, $DF, $2E, $45, $7C, $6E )  {0F}
   );
 var
   Digest: TMHash384;
   i, j: Cardinal;
   Hash: TByteArray;
 begin
-  for i := 0 to Length(TEST_VECTOR)-1 do
+  for i := 0 to High(TEST_VECTOR) do
   begin
     Digest := TMHash384.Create();
     for j := 0 to TEST_VECTOR[i].iterations-1 do
     begin
-      if (@callback <> nil) then
+      if (@callback <> nil) and (j and $7FFF = 0) then
       begin
         callback(Length(TEST_VECTOR), i + 1, GetProgress(TEST_VECTOR[i].iterations, j));
       end;