Browse Source

* implemented uuid_create_sha1_from_name
* changed some var to out parameters (so that there's no not initialized warning)

git-svn-id: trunk@15153 -

ivost 15 years ago
parent
commit
c9e3480f44
4 changed files with 117 additions and 92 deletions
  1. 87 62
      packages/hash/Makefile
  2. 1 1
      packages/hash/Makefile.fpc
  3. 4 4
      packages/hash/src/sha1.pp
  4. 25 25
      packages/hash/src/uuid.pas

+ 87 - 62
packages/hash/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/12/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2010/04/16]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx haiku
 LIMIT83fs = go32v2 os2 emx watcom
@@ -267,184 +267,187 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
 override PACKAGE_NAME=hash
 override PACKAGE_VERSION=2.5.1
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=md5 crc ntlm uuid sha1  unixcrypt
+override TARGET_UNITS+=md5 crc ntlm sha1 uuid  unixcrypt
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=examples
@@ -506,6 +509,9 @@ endif
 ifeq ($(FULL_TARGET),i386-symbian)
 override TARGET_EXAMPLEDIRS+=examples
 endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_EXAMPLEDIRS+=examples
+endif
 ifeq ($(FULL_TARGET),m68k-linux)
 override TARGET_EXAMPLEDIRS+=examples
 endif
@@ -687,6 +693,9 @@ endif
 ifeq ($(FULL_TARGET),i386-symbian)
 override COMPILER_SOURCEDIR+=src
 endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_SOURCEDIR+=src
+endif
 ifeq ($(FULL_TARGET),m68k-linux)
 override COMPILER_SOURCEDIR+=src
 endif
@@ -1149,6 +1158,10 @@ ifeq ($(OS_TARGET),symbian)
 SHAREDLIBEXT=.dll
 SHORTSUFFIX=symbian
 endif
+ifeq ($(OS_TARGET),NativeNT)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=nativent
+endif
 else
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
@@ -1634,6 +1647,9 @@ endif
 ifeq ($(FULL_TARGET),i386-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),i386-nativent)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),m68k-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -2198,6 +2214,9 @@ fpc_zipdistinstall:
 ifdef EXEFILES
 override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
 endif
+ifdef CLEAN_PROGRAMS
+override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
+endif
 ifdef CLEAN_UNITS
 override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
 endif
@@ -2244,6 +2263,9 @@ endif
 ifdef CLEANRSTFILES
 	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
 endif
+endif
+ifdef CLEAN_FILES
+	-$(DEL) $(CLEAN_FILES)
 endif
 	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
@@ -2427,6 +2449,9 @@ endif
 ifeq ($(FULL_TARGET),i386-symbian)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
+ifeq ($(FULL_TARGET),i386-nativent)
+TARGET_EXAMPLEDIRS_EXAMPLES=1
+endif
 ifeq ($(FULL_TARGET),m68k-linux)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif

+ 1 - 1
packages/hash/Makefile.fpc

@@ -7,7 +7,7 @@ name=hash
 version=2.5.1
 
 [target]
-units=md5 crc ntlm uuid sha1
+units=md5 crc ntlm sha1 uuid
 units_linux=unixcrypt
 exampledirs=examples
 

+ 4 - 4
packages/hash/src/sha1.pp

@@ -29,9 +29,9 @@ type
   end;
 
 { core }  
-procedure SHA1Init(var ctx: TSHA1Context);
+procedure SHA1Init(out ctx: TSHA1Context);
 procedure SHA1Update(var ctx: TSHA1Context; const Buf; BufLen: PtrUInt);
-procedure SHA1Final(var ctx: TSHA1Context; var Digest: TSHA1Digest);
+procedure SHA1Final(var ctx: TSHA1Context; out Digest: TSHA1Digest);
 
 { auxiliary }
 function SHA1String(const S: String): TSHA1Digest;
@@ -61,7 +61,7 @@ begin
   end;
 end;
 
-procedure SHA1Init(var ctx: TSHA1Context);
+procedure SHA1Init(out ctx: TSHA1Context);
 begin
   FillChar(ctx, sizeof(TSHA1Context), 0);
   ctx.State[0] := $67452301;
@@ -201,7 +201,7 @@ const
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
     );
 
-procedure SHA1Final(var ctx: TSHA1Context; var Digest: TSHA1Digest);
+procedure SHA1Final(var ctx: TSHA1Context; out Digest: TSHA1Digest);
 var
   Length: QWord;
   Pads: Cardinal;

+ 25 - 25
packages/hash/src/uuid.pas

@@ -21,7 +21,7 @@ interface
 {$h+}
 
 uses
-  SysUtils, DateUtils, md5;
+  SysUtils, DateUtils, md5, sha1;
 
 
 
@@ -87,16 +87,16 @@ const
 procedure uuid_initialize(const state: uuid_state);
 
 { uuid_create -- generator a UUID }
-function uuid_create(var uuid: uuid_t): boolean;
+function uuid_create(out uuid: uuid_t): boolean;
 
 { uuid_finalize -- returns the current state }
-procedure uuid_finalize(var state: uuid_state);
+procedure uuid_finalize(out state: uuid_state);
 
 { uuid_create_md5_from_name -- create a version 3 (MD5) UUID using a "name" from a "name space" }
-procedure uuid_create_md5_from_name(var uuid: uuid_t; const nsid: uuid_t; const name: string);
+procedure uuid_create_md5_from_name(out uuid: uuid_t; const nsid: uuid_t; const name: string);
 
 { uuid_create_sha1_from_name -- create a version 5 (SHA-1) UUID using a "name" from a "name space" }
-procedure uuid_create_sha1_from_name(var uuid: uuid_t; const nsid: uuid_t; const name: string);
+procedure uuid_create_sha1_from_name(out uuid: uuid_t; const nsid: uuid_t; const name: string);
 
 { uuid_compare --  Compare two UUID's "lexically" }
 function uuid_compare(const u1, u2: uuid_t): integer;
@@ -108,19 +108,19 @@ function uuid_compare(const u1, u2: uuid_t): integer;
  ******************************************************************************)
 
 { read_state -- read UUID generator state from non-volatile store }
-function read_state(var clockseq: unsigned16; var timestamp: uuid_time_t; var node: uuid_node_t): boolean;
+function read_state(out clockseq: unsigned16; out timestamp: uuid_time_t; out node: uuid_node_t): boolean;
 
 { write_state -- save UUID generator state back to non-volatile storage }
 procedure write_state(var clockseq: unsigned16; const timestamp: uuid_time_t; const node: uuid_node_t);
 
 { format_uuid_v1 -- make a UUID from the timestamp, clockseq, and node ID }
-procedure format_uuid_v1(var uuid: uuid_t; const clockseq: unsigned16; const timestamp: uuid_time_t; const node: uuid_node_t);
+procedure format_uuid_v1(out uuid: uuid_t; const clockseq: unsigned16; const timestamp: uuid_time_t; const node: uuid_node_t);
 
 { format_uuid_v3or5 -- make a UUID from a (pseudo)random 128-bit number }
-procedure format_uuid_v3or5(var uuid: uuid_t; const hash: pointer; const v: integer);
+procedure format_uuid_v3or5(out uuid: uuid_t; const hash: pointer; const v: integer);
 
 { get_current_time -- get time as 60-bit 100ns ticks since UUID epoch. Compensate for the fact that real clock resolution is less than 100ns. }
-procedure get_current_time(var timestamp: uuid_time_t);
+procedure get_current_time(out timestamp: uuid_time_t);
 
 
 
@@ -129,7 +129,7 @@ procedure get_current_time(var timestamp: uuid_time_t);
  ******************************************************************************)
 
 { get_system_time -- system dependent call to get the current system time. Returned as 100ns ticks since UUID epoch, but resolution may be less than 100ns. }
-procedure get_system_time(var timestamp: uuid_time_t);
+procedure get_system_time(out timestamp: uuid_time_t);
 
 { true_random -- generate a crypto-quality random number. }
 function true_random: unsigned16;
@@ -158,7 +158,7 @@ end;
 
 { uuid_finalize }
 
-procedure uuid_finalize(var state: uuid_state);
+procedure uuid_finalize(out state: uuid_state);
 begin
   state := current_state;
 end;
@@ -166,7 +166,7 @@ end;
 
 { uuid_create }
 
-function uuid_create(var uuid: uuid_t): boolean;
+function uuid_create(out uuid: uuid_t): boolean;
 var
   timestamp: uuid_time_t;
   last_time: uuid_time_t;
@@ -202,7 +202,7 @@ end;
 
 { uuid_create_md5_from_name }
 
-procedure uuid_create_md5_from_name(var uuid: uuid_t; const nsid: uuid_t; const name: string);
+procedure uuid_create_md5_from_name(out uuid: uuid_t; const nsid: uuid_t; const name: string);
 var
   net_nsid: uuid_t;
   c: TMDContext;
@@ -227,11 +227,11 @@ end;
 
 { uuid_create_sha1_from_name }
 
-procedure uuid_create_sha1_from_name(var uuid: uuid_t; const nsid: uuid_t; const name: string);
+procedure uuid_create_sha1_from_name(out uuid: uuid_t; const nsid: uuid_t; const name: string);
 var
   net_nsid: uuid_t;
-{  c: TMDContext;
-  hash: TMDDigest;}
+  c: TSHA1Context;
+  hash: TSHA1Digest;
 begin
   (* put name space ID in network byte order so it hashes the same
      no matter what endian machine we're on *)
@@ -240,10 +240,10 @@ begin
   net_nsid.time_mid := ntobe(net_nsid.time_mid);
   net_nsid.time_hi_and_version := ntobe(net_nsid.time_hi_and_version);
 
-  {SHAInit(c, SHA_VERSION_1);
-  SHAUpdate(c, net_nsid, sizeof(net_nsid));
-  SHAUpdate(c, pchar(name)^, Length(name));
-  SHAFinal(c, hash);}
+  SHA1Init(c);
+  SHA1Update(c, net_nsid, sizeof(net_nsid));
+  SHA1Update(c, pchar(name)^, Length(name));
+  SHA1Final(c, hash);
 
   (* the hash is in network byte order at this point *)
   format_uuid_v3or5(uuid, @hash, UUID_VERSION_5);
@@ -266,7 +266,7 @@ end;
 
 { read_state }
 
-function read_state(var clockseq: unsigned16; var timestamp: uuid_time_t; var node: uuid_node_t): boolean;
+function read_state(out clockseq: unsigned16; out timestamp: uuid_time_t; out node: uuid_node_t): boolean;
 begin
   clockseq := current_state.cs;
   timestamp := current_state.ts;
@@ -288,7 +288,7 @@ end;
 
 { format_uuid_v1 }
 
-procedure format_uuid_v1(var uuid: uuid_t; const clockseq: unsigned16; const timestamp: uuid_time_t; const node: uuid_node_t);
+procedure format_uuid_v1(out uuid: uuid_t; const clockseq: unsigned16; const timestamp: uuid_time_t; const node: uuid_node_t);
 begin
   uuid.time_low := timestamp and $FFFFFFFF;
   uuid.time_mid := (timestamp shr 32) and $FFFF;
@@ -303,7 +303,7 @@ end;
 
 { format_uuid_v3or5 }
 
-procedure format_uuid_v3or5(var uuid: uuid_t; const hash: pointer; const v: integer);
+procedure format_uuid_v3or5(out uuid: uuid_t; const hash: pointer; const v: integer);
 begin
   (* convert UUID to local byte order *)
   move(hash^, uuid, sizeof(uuid));
@@ -325,7 +325,7 @@ var
   time_last: uuid_time_t;
   uuids_this_tick: unsigned16 = UUIDS_PER_TICK;
 
-procedure get_current_time(var timestamp: uuid_time_t);
+procedure get_current_time(out timestamp: uuid_time_t);
 var
   time_now: uuid_time_t;
 begin
@@ -358,7 +358,7 @@ end;
 
 { get_system_time }
 
-procedure get_system_time(var timestamp: uuid_time_t);
+procedure get_system_time(out timestamp: uuid_time_t);
 var
   Epoch:TDateTime;
 begin