Other Alias
BN_rand, BN_pseudo_rand, BN_rand_rangeSYNOPSIS
#include <openssl/bn.h>
int BN_rand(BIGNUM *rnd, int bits, int top, int bottom);
int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom);
int BN_rand_range(BIGNUM *rnd, BIGNUM *range);
int BN_pseudo_rand_range(BIGNUM *rnd, BIGNUM *range);
DESCRIPTION
BN_rand() produit un nombre pseudoaléatoire cryptographiquement fort de taille bits bits et le stocke dans rnd. Si top est -1, le bit de poids fort du nombre aléatoire peut être zéro. Si top est 0, il est défini à 1 et si top est 1, les deux bits de poids fort du nombre seront définis à 1, de telle sorte que le produit de ces deux nombres aura toujours une taille de 2*bits. Si bottom est vrai, le nombre sera impair. La valeur de bits doit être au moins nulle. Si bits est 1, alors top ne peut pas être aussi 1.BN_pseudo_rand() fait la même chose, sauf que les nombres pseudoaléatoires produits par cette fonction ne sont pas nécessairement imprévisibles. Ils peuvent servir à des utilisations non cryptographiques et à certaines utilisations dans des protocoles cryptographiques, mais normalement pas à la génération de clef, etc.
BN_rand_range() produit un nombre pseudoaléatoire cryptographiquement fort rnd dans l'intervalle 0 <= rnd < range. BN_pseudo_rand_range() fait la même chose, mais est basée sur BN_pseudo_rand(), donc les nombres pseudoaléatoires produits par cette fonction ne sont pas nécessairement imprévisibles.
Le générateur de nombres aléatoires doit être initialisé avant d'appeler BN_rand() ou BN_rand_range().
