uuid_generate(3) uuid_generate_time,

SYNOPSIS

#include <uuid.h>


void uuid_generate(uuid_t out);
void uuid_generate_random(uuid_t out);
void uuid_generate_time(uuid_t out);
int uuid_generate_time_safe(uuid_t out);

DESCRIPTION

La fonction uuid_generate crée un nouvel identifiant unique universel (UUID). L'uuid sera généré en se basant sur la haute qualité aléatoire de /dev/urandom, s'il est disponible. S'il ne l'est pas, alors uuid_generate utilisera un autre algorithme qui utilise l'heure actuelle, l'adresse MAC Ethernet locale (si disponible) et une donnée aléatoire générée par un générateur pseudoaléatoire.

La fonction uuid_generate_random impose l'utilisation d'UUID totalement aléatoires, même si le générateur haute qualité de nombres aléatoires (c'est-à-dire, /dev/urandom) n'est pas disponible, auquel cas un générateur pseudoaléatoire lui sera substitué. À noter que l'utilisation du générateur pseudoaléatoire peut compromettre l'unicité des UUID générés de cette façon.

La fonction uuid_generate_time impose l'utilisation de l'algorithme alternatif qui utilise l'heure actuelle et l'adresse MAC Ethernet locale (si disponible). Cet algorithme était celui utilisé par défaut pour générer les UUID, mais à cause de l'utilisation de l'adresse MAC Ethernet, il peut divulguer des informations sur quand et où l'UUID a été créé. Cela peut poser des problèmes de confidentialité dans certaines applications, donc la fonction uuid_generate utilise cet algorithme seulement si aucune source de génération aléatoire et de haute qualité n'est disponible. Pour garantir l'unicité des UUID générés par les processus exécutés en même temps, la bibliothèque uuid utilise un compteur d'état d'horloge (si le processus est autorisé à obtenir un accès exclusif à ce fichier) ou le démon uuidd, s'il est déjà en cours d'exécution ou peut être engendré par le processus (s'il est installé et que le processus est autorisé à l'exécuter). Si aucun de ces deux mécanismes de synchronisation ne peut être utilisé, il est théoriquement possible que deux processus exécutés en même temps obtiennent les mêmes UUID. Pour savoir si l'UUID a été généré de façon sûre, utilisez uuid_generate_time_safe.

uuid_generate_time_safe est similaire à uuid_generate_time si ce n'est qu'elle renvoie une valeur qui indique si un des mécanismes de synchronisation (voir ci-dessus) a été utilisé.

L'UUID est long de 16 octets (128 bits), ce qui donne environ 3,4x10^38 valeurs uniques (il y a environ 10^80 particules élémentaires dans l'univers d'après le Cosmos de Carl Sagan). Le nouvel UUID peut être raisonnablement considéré comme unique parmi tous les UUID créés localement sur le système, ainsi que parmi les UUID créés sur d'autres systèmes par le passé et dans le futur.

VALEUR DE RETOUR

Le nouveau UUID créé est renvoyé dans l'emplacement mémoire pointé par out. uuid_generate_time_safe renvoie zéro si l'UUID a été généré de façon sûre, -1 sinon.

CONFORMITÉ

OSF DCE 1.1

AUTEUR

Theodore Y. Ts'o

DISPONIBILITÉ

libuuid fait partie du paquet util-linux depuis la version 2.15.1, elle est disponible sur <ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/>.

TRADUCTION

La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.