.\" Copyright 1999 Andreas Dilger (adilger@enel.ucalgary.ca)
.\"
.\" %Begin-Header%
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, and the entire permission notice in its entirety,
.\"    including the disclaimer of warranties.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote
.\"    products derived from this software without specific prior
.\"    written permission.
.\" 
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
.\" WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
.\" WHICH ARE HEREBY DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE
.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
.\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
.\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
.\" USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\" %End-Header%
.\" 
.\" Created  Wed Mar 10 17:42:12 1999, Andreas Dilger
.TH UUID_GENERATE 3 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
uuid_generate, uuid_generate_random, uuid_generate_time \- create a new unique UUID value
.SH SYNOPSIS
.nf
.B #include <uuid/uuid.h>
.sp
.BI "void uuid_generate(uuid_t " out );
.BI "void uuid_generate_random(uuid_t " out );
.BI "void uuid_generate_time(uuid_t " out );
.fi
.SH DESCRIPTION
The
.B uuid_generate
function creates a new universally unique identifier (UUID).  The uuid will
be generated based on high-quality randomness from
.IR /dev/urandom ,
if available.  If it is not available, then
.B uuid_generate
will use an alternative algorithm which uses the current time, the
local ethernet MAC address (if available), and random data generated
using a pseudo-random generator.
.sp
The
.B uuid_generate_random
function forces the use of the all-random UUID format, even if
a high-quality random number generator (i.e.,
.IR /dev/urandom )
is not available, in which case a pseudo-random
generator will be substituted.  Note that the use of a pseudo-random
generator may compromise the uniqueness of UUID's
generated in this fashion.
.sp
The
.B uuid_generate_time
function forces the use of the alternative algorithm which uses the
current time and the local ethernet MAC address (if available).
This algorithm used to be the default one used to generate UUID, but
because of the use of the ethernet MAC address, it can leak
information about when and where the UUID was generated.  This can cause
privacy problems in some applications, so the
.B uuid_generate
function only uses this algorithm if a high-quality source of
randomness is not available.
.sp
The UUID is 16 bytes (128 bits) long, which gives approximately 3.4x10^38
unique values (there are approximately 10^80 elementary particles in
the universe according to Carl Sagan's
.IR Cosmos ).
The new UUID can reasonably be considered unique among all UUIDs created
on the local system, and among UUIDs created on other systems in the past
and in the future.
.SH RETURN VALUE
The newly created UUID is returned in the memory location pointed to by
.IR out .
.SH "CONFORMING TO"
OSF DCE 1.1
.SH AUTHOR
Theodore Y. Ts'o
.SH AVAILABILITY
.UR http://e2fsprogs.sourceforge.net/
http://e2fsprogs.sourceforge.net/
.UE
.SH "SEE ALSO"
.BR uuid (3),
.BR uuidgen (1),
.BR uuid_clear (3),
.BR uuid_compare (3),
.BR uuid_copy (3),
.BR uuid_is_null (3),
.BR uuid_parse (3),
.BR uuid_time (3),
.BR uuid_unparse (3)
