mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 23:21:57 +02:00
* fixed for 64 bit targets
git-svn-id: trunk@11597 -
This commit is contained in:
parent
7b467fa2a0
commit
e67c03d30a
@ -234,19 +234,19 @@ procedure MD4Transform(var Context: TMDContext; Buffer: Pointer);
|
||||
procedure R1(var a: Cardinal; b,c,d,x: Cardinal; s: Byte);
|
||||
// F(x,y,z) = (x and y) or ((not x) and z)
|
||||
begin
|
||||
a := rol(a + {F(b,c,d)}((b and c) or ((not b) and d)) + x, s);
|
||||
a := rol(dword(a + {F(b,c,d)}((b and c) or ((not b) and d)) + x), s);
|
||||
end;
|
||||
|
||||
procedure R2(var a: Cardinal; b,c,d,x: Cardinal; s: Byte);
|
||||
// G(x,y,z) = (x and y) or (x and z) or (y and z);
|
||||
begin
|
||||
a := rol(a + {G(b,c,d)}((b and c) or (b and d) or (c and d)) + x + $5A827999, s);
|
||||
a := rol(dword(a + {G(b,c,d)}((b and c) or (b and d) or (c and d)) + x + $5A827999), s);
|
||||
end;
|
||||
|
||||
procedure R3(var a: Cardinal; b,c,d,x: Cardinal; s: Byte);
|
||||
// H(x,y,z) = x xor y xor z
|
||||
begin
|
||||
a := rol(a + {H(b,c,d)}(b xor c xor d) + x + $6ED9EBA1, s);
|
||||
a := rol(dword(a + {H(b,c,d)}(b xor c xor d) + x + $6ED9EBA1), s);
|
||||
end;
|
||||
|
||||
var
|
||||
@ -290,25 +290,25 @@ procedure MD5Transform(var Context: TMDContext; Buffer: Pointer);
|
||||
procedure R1(var a: Cardinal; b,c,d,x: Cardinal; s: Byte; ac: Cardinal);
|
||||
// F(x,y,z) = (x and y) or ((not x) and z)
|
||||
begin
|
||||
a := b + rol(a + {F(b,c,d)}((b and c) or ((not b) and d)) + x + ac, s);
|
||||
a := b + rol(dword(a + {F(b,c,d)}((b and c) or ((not b) and d)) + x + ac), s);
|
||||
end;
|
||||
|
||||
procedure R2(var a: Cardinal; b,c,d,x: Cardinal; s: Byte; ac: Cardinal);
|
||||
// G(x,y,z) = (x and z) or (y and (not z))
|
||||
begin
|
||||
a := b + rol(a + {G(b,c,d)}((b and d) or (c and (not d))) + x + ac, s);
|
||||
a := b + rol(dword(a + {G(b,c,d)}((b and d) or (c and (not d))) + x + ac), s);
|
||||
end;
|
||||
|
||||
procedure R3(var a: Cardinal; b,c,d,x: Cardinal; s: Byte; ac: Cardinal);
|
||||
// H(x,y,z) = x xor y xor z;
|
||||
begin
|
||||
a := b + rol(a + {H(b,c,d)}(b xor c xor d) + x + ac, s);
|
||||
a := b + rol(dword(a + {H(b,c,d)}(b xor c xor d) + x + ac), s);
|
||||
end;
|
||||
|
||||
procedure R4(var a: Cardinal; b,c,d,x: Cardinal; s: Byte; ac: Cardinal);
|
||||
// I(x,y,z) = y xor (x or (not z));
|
||||
begin
|
||||
a := b + rol(a + {I(b,c,d)}(c xor (b or (not d))) + x + ac, s);
|
||||
a := b + rol(dword(a + {I(b,c,d)}(c xor (b or (not d))) + x + ac), s);
|
||||
end;
|
||||
|
||||
var
|
||||
|
Loading…
Reference in New Issue
Block a user