|
@@ -448,7 +448,11 @@ end;
|
|
|
|
|
|
procedure MDFinal(var Context: TMDContext; var Digest: TMDDigest);
|
|
procedure MDFinal(var Context: TMDContext; var Digest: TMDDigest);
|
|
const
|
|
const
|
|
|
|
+{$ifdef FPC_BIG_ENDIAN}
|
|
|
|
+ PADDING_MD45: array[0..15] of Cardinal = ($80000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
|
|
|
|
+{$else FPC_BIG_ENDIAN}
|
|
PADDING_MD45: array[0..15] of Cardinal = ($80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
|
|
PADDING_MD45: array[0..15] of Cardinal = ($80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
|
|
|
|
+{$endif FPC_BIG_ENDIAN}
|
|
var
|
|
var
|
|
Length: QWord;
|
|
Length: QWord;
|
|
Pads: Cardinal;
|
|
Pads: Cardinal;
|
|
@@ -468,7 +472,7 @@ begin
|
|
MDUpdate(Context, PADDING_MD45, Pads);
|
|
MDUpdate(Context, PADDING_MD45, Pads);
|
|
|
|
|
|
// 3. Append length of the stream
|
|
// 3. Append length of the stream
|
|
- Invert(@Length, @Length, 8);
|
|
|
|
|
|
+ Length := NtoLE(Length);
|
|
MDUpdate(Context, Length, 8);
|
|
MDUpdate(Context, Length, 8);
|
|
|
|
|
|
// 4. Invert state to digest
|
|
// 4. Invert state to digest
|
|
@@ -478,7 +482,7 @@ begin
|
|
MD_VERSION_2:
|
|
MD_VERSION_2:
|
|
begin
|
|
begin
|
|
Pads := 16 - Context.BufCnt;
|
|
Pads := 16 - Context.BufCnt;
|
|
- Length := Pads;
|
|
|
|
|
|
+ Length := NtoLE(QWord(Pads));
|
|
while Pads > 0 do
|
|
while Pads > 0 do
|
|
begin
|
|
begin
|
|
MDUpdate(Context, Length, 1);
|
|
MDUpdate(Context, Length, 1);
|