Manual Page Result
0
Command: BN_rand | Section: 3 | Source: OpenBSD | File: BN_rand.3
BN_RAND(3) FreeBSD 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
BN_new(3)
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.
FreeBSD 14.1-RELEASE-p8 November 30, 2021 FreeBSD 14.1-RELEASE-p8