Skip to content
Syscall BSD#500

svc · unix #500

getentropy

Remplit un buffer (jusqu'à 256 octets) de données aléatoires de qualité depuis le CSPRNG noyau.

Prototype

int getentropy(void *buffer, size_t size);

Retour: int

Arguments

NameTypeDirDescription
buffervoid-
sizesize_t-

Historique des versions

XNU tagmacOS#
xnu-3789.1.32macOS 10.12 Sierra500
xnu-4570.1.46macOS 10.13 High Sierra500
xnu-4903.221.2macOS 10.14 Mojave500
xnu-6153.11.26macOS 10.15 Catalina500
xnu-7195.50.7.100.1macOS 11.0 Big Sur500
xnu-8019.41.5macOS 12.0 Monterey500
xnu-8792.41.9macOS 13.0 Ventura500
xnu-10002.1.13macOS 14.0 Sonoma500
xnu-11215.1.10macOS 15.0 Sequoia500
xnu-11417.101.15macOS 15.4 Sequoia500
xnu-12377.1.9macOS 26.0 Tahoe500
xnu-10002.41.9500
xnu-10002.61.3500
xnu-10002.81.5500
xnu-10063.101.15500
xnu-10063.121.3500
xnu-10063.141.1500
xnu-11215.41.3500
xnu-11215.61.5500
xnu-11215.81.4500
xnu-11417.121.6500
xnu-11417.140.69500
xnu-12377.101.15500
xnu-12377.41.6500
xnu-12377.61.12500
xnu-12377.81.4500
xnu-3789.21.4500
xnu-3789.31.2500
xnu-3789.41.3500
xnu-3789.51.2500
xnu-3789.60.24500
xnu-3789.70.16500
xnu-4570.20.62500
xnu-4570.31.3500
xnu-4570.41.2500
xnu-4570.51.1500
xnu-4570.61.1500
xnu-4570.71.2500
xnu-4903.231.4500
xnu-4903.241.1500
xnu-4903.270.47500
xnu-6153.101.6500
xnu-6153.121.1500
xnu-6153.141.1500
xnu-6153.41.3500
xnu-6153.61.1500
xnu-6153.81.5500
xnu-7195.101.1500
xnu-7195.121.3500
xnu-7195.141.2500
xnu-7195.60.75500
xnu-7195.81.3500
xnu-8019.61.5500
xnu-8019.80.24500
xnu-8020.101.4500
xnu-8020.121.3500
xnu-8020.140.41500
xnu-8792.61.2500
xnu-8792.81.2500
xnu-8796.101.5500
xnu-8796.121.2500
xnu-8796.141.3500

Exemples

Generate a 32-byte key

#include <sys/random.h>

unsigned char key[32];
if (getentropy(key, sizeof key) != 0) {
    perror("getentropy");
}

Notes

Repose sur le RNG noyau macOS (style Fortuna) alimenté par des sources matérielles (SEP sur Apple Silicon, RDRAND ou entropie de boot sur Intel). Ne peut pas échouer en conditions normales et ne bloque jamais ; les seuls EFAULT/EINVAL viennent d'un mauvais pointeur ou d'une taille >256. Primitive recommandée pour clés, nonces et tokens — à préférer à /dev/random.

API associées

gethostuuidgettimeofdaygetpid