GETENTROPY(3) Manuel du programmeur Linux GETENTROPY(3)

getentropy - Remplir un tampon avec des octets aléatoires

#include <unistd.h>
int getentropy(void *tampon, size_t longueur);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

getentropy() :


_DEFAULT_SOURCE

La fonction getentropy() écrit longueur octets de données à caractère aléatoire de haute qualité dans le tampon débutant à la position mémoire pointée par tampon. L'argument longueur ne doit pas dépasser 256.

En cas de succès, getentropy() génère toujours le nombre d'octets d'entropie demandé.

En cas de succès, cette fonction renvoie zéro. En cas d'erreur, elle renvoie -1 et errno est définie de façon à indiquer la nature de l'erreur.

Tout ou partie du tampon spécifié par tampon et longueur n'est pas dans une zone de mémoire adressable valable.
longueur est supérieure à 256.
Une erreur inconnue est survenue en tentant d'écraser tampon avec des données aléatoires.
Cette version du noyau ne prend pas en charge l'appel système getrandom(2) nécessaire à l'implémentation de cette fonction.

La fonction getentropy() a été introduite dans la version 2.25 de la glibc.

Cette fonction n'est pas normalisée. Elle est aussi présente dans OpenBSD.

La fonction getentropy() est implémentée en utilisant getrandom(2).

Alors que l'interface de la glibc fait de getrandom(2) un point d'annulation (cancellation point), getentropy() n'en est pas un.

getentropy() est aussi déclarée dans <sys/random.h> (il n'est pas nécessaire de définir une macro de test de fonctionnalité pour obtenir la déclaration à partir de ce fichier d'en-têtes).

Un appel à getentropy() peut se bloquer si le système vient juste de démarrer et si le noyau n'a pas encore collecté assez de données aléatoires pour initialiser la réserve d'entropie. Dans ce cas, getentropy() restera bloqué même si un signal est envoyé, et ne rendra la main que lorsque le jeu d'entropie aura été initialisé.

getrandom(2), urandom(4), random(7)

Cette page fait partie de la publication 5.13 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

La traduction française de cette page de manuel a été créée par Christophe Blaess https://www.blaess.fr/christophe/, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Lucien Gentis <lucien.gentis@waika9.com>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

22 mars 2021 Linux