Random Number Generators

Index

rng/add-entropy rng/get rng/get-with-input rng/new rng/new-drbg rng/reseed rng/reseed-from-rng

Reference

(rng/add-entropy rng-obj seed)

Adds the provided `seed` array or tuple to the `rng`. Returns `rng-obj`.

rng/getcfunction
(rng/get rng-obj len)

Returns random bytes of length `len` from a random number generator `rng-obj`.

(rng/get-with-input rng-obj len addl-input)

Returns `len` random bytes from `rng-obj`. For a DRBG, the additional input is mixed in before generating. Other RNG types (e.g. system RNG, RDRAND) ignore `addl-input`.

rng/newcfunction
(rng/new &opt type)

Initialize a random number generator from the given `type`:

  • :system - System-RNG (defaulting to :system type rng)
  • :user - AutoSeeded-RNG
  • :user-threadsafe - serialized AutoSeeded-RNG
  • :null - Null-RNG (always fails)
  • :hwrng or :rdrand - Processor-RNG (if available)
  • Returns `rng-obj`.

    rng/new-drbgcfunction
    (rng/new-drbg name seed)

    Initialize a deterministic random bit generator (DRBG) of the given `name` (e.g. "HMAC_DRBG(SHA-256)") seeded with `seed`. The seed is interpreted as `entropy || nonce || personalization_string`. Returns `rng-obj`.

    rng/reseedcfunction
    (rng/reseed rng-obj bits)

    Reseeds the random number generator `rng` with bits number of `bits` from the System-RNG. Returns `rng-obj`.

    (rng/reseed-from-rng rng-obj src bits)

    Reseeds the random number generator `rng` with bits number of `bits` taken from given the source rng `src`. Returns `rng-obj`.