IDGEN32(9)

NAME
idgen32, idgen32_init - non-repeating ID generation

SYNOPSIS
#include <crypto/idgen.h>
void
idgen32_init(struct idgen32_ctx *ctx);
uint32_t
idgen32(struct idgen32_ctx *ctx);

DESCRIPTION
The idgen32() functions provide a facility to generate a stream of 32-bit numbers that are strongly unpredictable and have a repetition cycle close to 2^32. Such numbers are useful as protocol identifiers where there are negative consequences to reusing an ID within a short time period, as may happen if they are simply assigned at random.

The idgen32_init() function prepares a context structure for use.

The idgen32() function returns a new ID in host byte order. Note that this function will never return 0 as it often has a special meaning in network protocols.

SEE ALSO
arc4random(9)

HISTORY
The idgen32 functions were added in OpenBSD 4.4.