table of contents
| BN_RAND(3) | Library Functions Manual | BN_RAND(3) |
NAME¶
BN_rand,
BN_rand_range,
BN_pseudo_rand,
BN_pseudo_rand_range —
generate pseudo-random number
SYNOPSIS¶
#include
<openssl/bn.h>
int
BN_rand(BIGNUM *rnd,
int bits, int top,
int bottom);
int
BN_rand_range(BIGNUM *rnd,
const BIGNUM *range);
DESCRIPTION¶
BN_rand()
generates a cryptographically strong pseudo-random number of
bits in length and stores it in
rnd. If top is
BN_RAND_TOP_ANY, the most significant bit of the
random number can be zero. If top is
BN_RAND_TOP_ONE, the most significant bit is set to
1, and if top is
BN_RAND_TOP_TWO, the two most significant bits of
the number will be set to 1, so that the product of two such random numbers
will always have 2*bits length. If
bottom is BN_RAND_BOTTOM_ODD,
the number will be odd; if it is BN_RAND_BOTTOM_ANY,
it can be odd or even. The value of bits must be zero
or greater. If bits is +1 then
top cannot be
BN_RAND_TOP_TWO.
BN_rand_range()
generates a cryptographically strong pseudo-random number
rnd in the range 0 <= rnd
< range.
BN_pseudo_rand()
is a deprecated alias for BN_rand(), and
BN_pseudo_rand_range()
for BN_rand_range().
RETURN VALUES¶
The functions return 1 on success, 0 on error. The error codes can be obtained by ERR_get_error(3).
SEE ALSO¶
HISTORY¶
BN_rand() first appeared in SSLeay 0.5.1
and has been available since OpenBSD 2.4.
The top == -1 case and the function
BN_rand_range() first appeared in OpenSSL 0.9.6a and
have been available since OpenBSD 3.0.
| November 30, 2021 | Linux 6.14.1-1-default |