mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 07:28:26 +02:00
39 lines
653 B
PHP
39 lines
653 B
PHP
Const
|
|
RandomDevice = '/dev/urandom';
|
|
|
|
|
|
Function GetURandomBytes(Var Buf; NBytes : Integer) : Boolean;
|
|
|
|
Var
|
|
fd,I : Integer;
|
|
P : PByte;
|
|
|
|
begin
|
|
P:=@Buf;
|
|
fd:=FileOpen(RandomDevice,fmOpenRead);
|
|
Result:=(fd>=0);
|
|
if Result then
|
|
Try
|
|
While (NBytes>0) do
|
|
begin
|
|
I:=FileRead(fd,P^,nbytes);
|
|
If I>0 then
|
|
begin
|
|
Inc(P,I);
|
|
Dec(NBytes,I);
|
|
end;
|
|
end;
|
|
Finally
|
|
FileClose(Fd);
|
|
end;
|
|
end;
|
|
|
|
|
|
Function SysCreateGUID(out GUID : TGUID) : Integer;
|
|
|
|
begin
|
|
if not GetUrandomBytes(Guid,SizeOf(GUID)) then
|
|
GetRandomBytes(GUID,SizeOf(Guid));
|
|
Result:=0;
|
|
end;
|