--- uuid.pod 2005/01/22 18:55:57 1.24
+++ uuid.pod 2005/01/23 11:28:51 1.25
@@ -43,7 +43,8 @@
and corresponding command line interface (CLI) for the generation of DCE
1.1 and ISO/IEC 11578:1996 compliant I<Universally Unique Identifier>
(UUID). It supports DCE 1.1 variant UUIDs of version 1 (time and node
-based), version 3 (name based) and version 4 (random number based).
+based), version 3 (name based, MD5), version 4 (random number based) and
+version 5 (name based, SHA-1).
UUIDs are 128 bit numbers which are intended to have a high likelihood
of uniqueness over space and time and are computationally difficult
@@ -125,7 +126,7 @@
(NIC) or a random multi-cast MAC address. Version 1 UUIDs are usually
used as one-time global unique identifiers.
-=item B<Version 3> (name based)
+=item B<Version 3> (name based, MD5)
These are UUIDs which are based on the 128-bit MD5 message digest of the
concatenation of a 128-bit namespace UUID and a name string of arbitrary
@@ -137,6 +138,13 @@
These are UUIDs which are based on just 128-bit of random data. Version
4 UUIDs are usually used as one-time local unique identifiers.
+=item B<Version 5> (name based, SHA-1)
+
+These are UUIDs which are based on the 160-bit SHA-1 message digest of the
+concatenation of a 128-bit namespace UUID and a name string of arbitrary
+length. Version 5 UUIDs are usually used for non-unique but repeatable
+message digest identifiers.
+
=back
=head2 UUID Uniqueness
@@ -154,8 +162,9 @@
backward), there is a random clock sequence component placed into the
UUID as a "catch-all" for uniqueness.
-Version 3 UUIDs are guaranteed to be inherently globally unique if the
-combination of namespace and name used to generate them is unique.
+Version 3 and version 5 UUIDs are guaranteed to be inherently globally
+unique if the combination of namespace and name used to generate them is
+unique.
Version 4 UUIDs are not guaranteed to be globally unique, because they
are generated out of locally gathered pseudo-random numbers only.
@@ -197,7 +206,7 @@
Notice that the lengths of the string representation does I<not> include
the necessary C<NUL> termination character.
-=item B<UUID_MAKE_V1>, B<UUID_MAKE_V3>, B<UUID_MAKE_V4>, B<UUID_MAKE_MC>
+=item B<UUID_MAKE_V1>, B<UUID_MAKE_V3>, B<UUID_MAKE_V4>, B<UUID_MAKE_V5>, B<UUID_MAKE_MC>
The I<mode> bits for use with B<uuid_make>(). The B<UUID_MAKE_V>I<N>
specify which UUID version to generate. The B<UUID_MAKE_MC> forces the
@@ -297,7 +306,7 @@
=back
The "C<ns:>I<XXX>" are names of pre-defined name-space UUIDs for use in
-the generation of DCE 1.1 version 3 UUIDs.
+the generation of DCE 1.1 version 3 and version 5 UUIDs.
=item uuid_rc_t B<uuid_make>(uuid_t *I<uuid>, unsigned int I<mode>, ...);
@@ -310,14 +319,14 @@
MAC address (the default). The UUID is generated out of the 60-bit current
system time, a 12-bit clock sequence and the 48-bit MAC address.
-If I<mode> contains the C<UUID_MAKE_V3> bit, a DCE 1.1 variant UUID
-of version 3 is generated and two additional C<NUL>-terminated string
-arguments of type "C<const char *>" are expected: first a namespace,
-given as an internally pre-defined id (currently known are ids "C<DNS>",
-"C<URL>", "C<OID>", and "C<X500>") or a UUID in string representation.
-Second, a name string of arbitrary length. The UUID is generated out of
-the 128-bit MD5 from the concatenated octet stream of namespace UUID and name
-string.
+If I<mode> contains the C<UUID_MAKE_V3> or C<UUID_MAKE_V5> bit, a DCE
+1.1 variant UUID of version 3 or 5 is generated and two additional
+C<NUL>-terminated string arguments of type "C<const char *>" are
+expected: first a namespace, given as an internally pre-defined id
+(currently known are ids "C<DNS>", "C<URL>", "C<OID>", and "C<X500>")
+or a UUID in string representation. Second, a name string of arbitrary
+length. The UUID is generated out of the 128-bit MD5 or 160-bit SHA-1
+from the concatenated octet stream of namespace UUID and name string.
If I<mode> contains the C<UUID_MAKE_V4> bit, a DCE 1.1 variant UUID
of version 4 is generated. The UUID is generated out of 128-bit random
|