BN_RAND(3ssl) OpenSSL BN_RAND(3ssl) NUME 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 - generate pseudo-random number SINOPSIS #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); Urmatoarele funcii au fost depreciate de la OpenSSL 3.0 i pot fi ascunse complet prin definirea OPENSSL_API_COMPAT cu o valoare de versiune adecvata, a se vedea 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); DESCRIERE BN_rand_ex() genereaza un numar pseudoaleatoriu puternic din punct de vedere criptografic, cu lungimea bits i o putere de securitate de cel puin strength bii, utilizand generatorul de numere aleatorii pentru contextul bibliotecii asociat cu ctx. Funcia stocheaza datele generate in rnd. Parametrul ctx poate fi NULL, caz in care se utilizeaza contextul bibliotecii implicite. Daca bits este mai mic decat zero sau prea mic pentru a satisface cerinele specificate de parametrii top i bottom, se returneaza o eroare. Parametrul top specifica cerinele privind cel mai semnificativ bit al numarului generat. Daca este BN_RAND_TOP_ANY, nu exista nicio constrangere. Daca este BN_RAND_TOP_ONE, bitul superior trebuie sa fie unu. Daca este BN_RAND_TOP_TWO, cei doi bii cei mai semnificativi ai numarului vor fi setai la 1, astfel incat produsul a doua astfel de numere aleatorii sa aiba intotdeauna lungimea 2*bits. Daca bottom este BN_RAND_BOTTOM_ODD, numarul va fi impar; daca este BN_RAND_BOTTOM_ANY, poate fi impar sau par. Daca bits este 1, atunci top nu poate fi de asemenea BN_RAND_TOP_TWO. BN_rand() este identic cu BN_rand_ex(), cu excepia faptului ca se utilizeaza intotdeauna contextul bibliotecii implicite. BN_rand_range_ex() genereaza un numar pseudoaleatoriu puternic din punct de vedere criptografic rnd, cu un nivel de securitate de cel puin strength bii, in intervalul 0 <= rnd < range, utilizand generatorul de numere aleatorii pentru contextul bibliotecii asociat cu ctx. Parametrul ctx poate fi NULL, caz in care se utilizeaza contextul bibliotecii implicite. BN_rand_range() este identic cu BN_rand_range_ex(), cu excepia faptului ca se utilizeaza intotdeauna contextul bibliotecii implicite. BN_priv_rand_ex(), BN_priv_rand(), BN_priv_rand_rand_ex() i BN_priv_rand_range() au aceeai semantica ca BN_rand_ex(), BN_rand(), BN_rand_range_ex() i BN_rand_range(), respectiv. Acestea sunt destinate utilizarii pentru generarea de valori care trebuie sa ramana private i reflecta aceeai diferena dintre RAND_bytes(3) i RAND_priv_bytes(3). NOTE Verificai intotdeauna valoarea de returnare a erorii acestor funcii i nu considerai randomizarea ca fiind ceva de la sine ineles: apare o eroare daca CSPRNG nu a fost iniializat cu un suficient nivel aleatoriu pentru a asigura o secvena de octei imprevizibila. VALORI RETURNATE Funciile returneaza 1 in caz de succes, 0 in caz de eroare. Codurile de eroare pot fi obinute prin ERR_get_error(3). CONSULTAI I ERR_get_error(3), RAND_add(3), RAND_bytes(3), RAND_priv_bytes(3), RAND(7), EVP_RAND(7) ISTORIC o Incepand cu versiunea 1.1.0 a OpenSSL, BN_pseudo_rand() este identica cu BN_rand(), iar BN_pseudo_rand_range() este identica cu BN_rand_range(). Funciile BN_pseudo_rand() i BN_pseudo_rand_range() au fost definite ca invechite in OpenSSL 3.0. o Funciile BN_priv_rand() i BN_priv_rand_range() au fost adaugate in OpenSSL 1.1.1. o Funciile BN_rand_ex(), BN_priv_rand_ex(), BN_rand_range_ex() i BN_priv_rand_range_ex() au fost adaugate in OpenSSL 3.0. DREPTURI DE AUTOR Drepturi de autor 2000-2022 The OpenSSL Project Authors. Toate drepturile rezervate. Liceniat sub Licena Apache 2.0 (,,License"). Nu avei voie sa utilizai acest fiier decat in conformitate cu licena. Putei obine o copie din fiierul LICENSE din distribuia sursei sau de la . TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . 3.6.2 7 aprilie 2026 BN_RAND(3ssl)