BN_RAND(3ssl) OpenSSL BN_RAND(3ssl) BN_rand_ex, BN_rand, BN_priv_rand_ex, BN_priv_rand, BN_pseudo_rand, BN_rand_range_ex, BN_rand_range, BN_priv_rand_range_ex, BN_priv_rand_range, BN_pseudo_rand_range - #include int BN_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, unsigned int strength, BN_CTX *ctx); int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); int BN_priv_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, unsigned int strength, BN_CTX *ctx); int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); int BN_rand_range_ex(BIGNUM *rnd, const BIGNUM *range, unsigned int strength, BN_CTX *ctx); int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); int BN_priv_rand_range_ex(BIGNUM *rnd, const BIGNUM *range, unsigned int strength, BN_CTX *ctx); int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); OpenSSL 3.0 OPENSSL_API_COMPAT openssl_user_macros(7): int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); BN_rand_ex() bits strength ctx. rnd. ctx NULL . bits top bottom . top . BN_RAND_TOP_ANY . BN_RAND_TOP_ONE . BN_RAND_TOP_TWO 1 2*bits. bottom BN_RAND_BOTTOM_ODD BN_RAND_BOTTOM_ANY . bits 1 top BN_RAND_TOP_TWO. BN_rand() BN_rand_ex() . BN_rand_range_ex() rnd strength 0 <= rnd < range ctx. ctx NULL . BN_rand_range() BN_rand_range_ex() . BN_priv_rand_ex(), BN_priv_rand(), BN_priv_rand_rand_ex() BN_priv_rand_range() BN_rand_ex(), BN_rand(), BN_rand_range_ex() BN_rand_range() . RAND_bytes(3) RAND_priv_bytes(3). : CSPRNG . 1 0 . ERR_get_error(3). ERR_get_error(3), RAND_add(3), RAND_bytes(3), RAND_priv_bytes(3), RAND(7), EVP_RAND(7) o OpenSSL 1.1.0 BN_pseudo_rand() BN_rand() BN_pseudo_rand_range() BN_rand_range(). BN_pseudo_rand() BN_pseudo_rand_range() OpenSSL 3.0. o BN_priv_rand() BN_priv_rand_range() OpenSSL 1.1.1. o BN_rand_ex(), BN_priv_rand_ex(), BN_rand_range_ex() BN_priv_rand_range_ex() OpenSSL 3.0. 2000-2022 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 BN_RAND(3ssl)