IDGEN32(9) | Kernel Developer's Manual | 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.

November 23, 2015 | Debian