1
0
mirror of https://github.com/moparisthebest/Simba synced 2024-12-22 15:28:50 -05:00
Simba/Units/MMLAddon/PSInc/Wrappers/crypto.inc
2010-12-26 14:52:20 +01:00

201 lines
4.0 KiB
PHP

function ps_haval(Data: string): string; extdecl;
var
HASH: TDCP_haval;
Digest: array[0..31] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_haval.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 31 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_md4(Data: string): string; extdecl;
var
HASH: TDCP_md4;
Digest: array[0..15] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_md4.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 15 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_md5(Data: string): string; extdecl;
var
HASH: TDCP_md5;
Digest: array[0..15] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_md5.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 15 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_ripemd128(Data: string): string; extdecl;
var
HASH: TDCP_ripemd128;
Digest: array[0..15] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_ripemd128.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 15 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_ripemd160(Data: string): string; extdecl;
var
HASH: TDCP_ripemd160;
Digest: array[0..19] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_ripemd160.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 19 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_sha1(Data: string): string; extdecl;
var
HASH: TDCP_sha1;
Digest: array[0..19] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_sha1.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 19 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_sha256(Data: string): string; extdecl;
var
HASH: TDCP_sha256;
Digest: array[0..31] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_sha256.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 31 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_sha384(Data: string): string; extdecl;
var
HASH: TDCP_sha384;
Digest: array[0..47] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_sha384.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 47 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_sha512(Data: string): string; extdecl;
var
HASH: TDCP_sha512;
Digest: array[0..63] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_sha512.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 63 do
Result := Result + IntToHex(Digest[I], 2);
finally
Hash.Free;
end;
end;
function ps_tiger(Data: string): string; extdecl;
var
HASH: TDCP_tiger;
Digest: array[0..23] of byte;
I: integer;
begin
dcpFillChar(Digest, SizeOf(Digest), 0);
Hash := TDCP_tiger.Create(nil);
try
Hash.Init;
Hash.UpdateStr(Data);
Hash.Final(Digest);
Result := '';
for I := 0 to 23 do
Result := Result + string(IntToHex(Digest[I], 2));
finally
Hash.Free;
end;
end;