RAND_BYTES(3ssl) OpenSSL RAND_BYTES(3ssl) NUME RAND_bytes, RAND_priv_bytes, RAND_bytes_ex, RAND_priv_bytes_ex, RAND_pseudo_bytes, RAND_set1_random_provider - genereaza date aleatorii SINOPSIS #include int RAND_bytes(unsigned char *buf, int num); int RAND_priv_bytes(unsigned char *buf, int num); int RAND_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, unsigned int strength); int RAND_priv_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, unsigned int strength); int RAND_set1_random_provider(OSSL_LIB_CTX *ctx, OSSL_PROVIDER *p); Urmatoarea funcie a fost depreciata de la OpenSSL 1.1.0 i poate fi ascunsa complet prin definirea OPENSSL_API_COMPAT cu o valoare de versiune adecvata, a se vedea openssl_user_macros(7): int RAND_pseudo_bytes(unsigned char *buf, int num); DESCRIERE RAND_bytes() genereaza num octei aleatori utilizand un generator pseudoaleatoriu criptografic securizat (CSPRNG) i ii stocheaza in buf. buf NU TREBUIE sa fie NULL. RAND_priv_bytes() are aceeai semantica ca RAND_bytes(). Este destinata utilizarii pentru generarea de valori care trebuie sa ramana private. Daca se utilizeaza metoda RAND_METHOD implicita, aceasta funcie utilizeaza o instana PRNG ,,privata" separata, astfel incat compromiterea instanei PRNG ,,publice" sa nu afecteze confidenialitatea acestor valori private, aa cum este descris in RAND(7) i EVP_RAND(7). RAND_bytes_ex() i RAND_priv_bytes_ex() sunt identice cu RAND_bytes() i RAND_priv_bytes(), cu excepia faptului ca ambele accepta parametrii suplimentari strength i ctx. Octeii generai vor avea o putere de securitate de cel puin strength bii. DRBG utilizat pentru operaie este DRBG public sau privat asociat cu ctx specificat. Parametrul poate fi NULL, caz in care se utilizeaza contextul implicit al bibliotecii (vezi OSSL_LIB_CTX(3). Daca metoda RAND_METHOD implicita a fost modificata, atunci, din motive de compatibilitate, se va utiliza metoda RAND_METHOD, iar DRBG-ul contextului bibliotecii va fi ignorat. RAND_set1_random_provider() specifica un furnizor, prov, care va fi utilizat de contextul bibliotecii ctx pentru toate apelurile generate de mai sus, in locul sursei DRBG i entropie incorporate. Trecei NULL pentru furnizor pentru a dezactiva funcionalitatea furnizorului aleatoriu. In acest caz, vor fi utilizate DRBG-urile incorporate i sursa de entropie. Aceasta apelare nu trebuie considerata sigura pentru fire de execuie. NOTE In mod implicit, OpenSSL CSPRNG accepta un nivel de securitate de 256 bii, cu condiia sa se poata autoalimenta dintr-o sursa de entropie de incredere. Pe toate platformele principale acceptate de OpenSSL (inclusiv platformele de tip Unix i Windows), OpenSSL este configurat sa alimenteze automat CSPRNG la prima utilizare, folosind generatorul aleatoriu al sistemului de operare. Daca sursa de entropie eueaza sau nu este disponibila, CSPRNG va intra intr-o stare de eroare i va refuza sa genereze octei aleatori. Din acest motiv, este important sa verificai intotdeauna valoarea de returnare a erorii pentru RAND_bytes() i RAND_priv_bytes() i sa nu considerai caracterul aleatoriu ca fiind ceva de la sine ineles. Pe alte platforme, este posibil sa nu existe o sursa de entropie de incredere disponibila sau OpenSSL sa fi fost configurat in mod explicit pentru a utiliza surse de entropie diferite. Daca avei indoieli cu privire la calitatea sursei de entropie, nu ezitai sa intrebai furnizorul sistemului de operare sau sa postai o intrebare pe GitHub sau pe lista de discuii openssl-users. VALORI RETURNATE RAND_bytes() i RAND_priv_bytes() returneaza 1 in caz de succes, -1 daca nu sunt acceptate de metoda RAND curenta sau 0 in cazul altor erori. Codul de eroare poate fi obinut prin ERR_get_error(3). RAND_set1_random_provider() returneaza 1 in caz de succes i 0 in caz de eec. CONSULTAI I RAND_add(3), RAND_bytes(3), RAND_priv_bytes(3), ERR_get_error(3), RAND(7), EVP_RAND(7) ISTORIC o RAND_pseudo_bytes() a fost depreciata in OpenSSL 1.1.0; utilizai in schimb RAND_bytes(). o Funcia RAND_priv_bytes() a fost adaugata in OpenSSL 1.1.1. o Funciile RAND_bytes_ex() i RAND_priv_bytes_ex() au fost adaugate in OpenSSL 3.0. o Funcia RAND_set1_random_provider() a fost adaugata in OpenSSL 3.5. DREPTURI DE AUTOR Drepturi de autor 2000-2025 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.5.2 5 august 2025 RAND_BYTES(3ssl)