OpenSSL RAND_bytes(3openssl)
NNNNAAAAMMMMEEEERAND_bytes, RAND_pseudo_bytes - generate random data
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS#include
int RAND_bytes(unsigned char *buf, int num);
int RAND_pseudo_bytes(unsigned char *buf, int num);
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNRAND_bytes() puts nnnnuuuummmm cryptographically strong pseudo-random
bytes into bbbbuuuuffff. An error occurs if the PRNG has not been seeded with enough randomness to ensure an unpredictable byte sequence.RAND_pseudo_bytes() puts nnnnuuuummmm pseudo-random bytes into bbbbuuuuffff.
Pseudo-random byte sequences generated by
RAND_pseudo_bytes() will be unique if they are of sufficient
length, but are not necessarily unpredictable. They can beused for non-cryptographic purposes and for certain purposes
in cryptographic protocols, but usually not for key generation etc. The contents of bbbbuuuuffff is mixed into the entropy pool beforeretrieving the new pseudo-random bytes unless disabled at
compile time (see FAQ). RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEESSSSRAND_bytes() returns 1 on success, 0 otherwise. The error
code can be obtained by ERR_get_error(3).
RAND_pseudo_bytes() returns 1 if the bytes generated are
cryptographically strong, 0 otherwise. Both functions return-1 if they are not supported by the current RAND method.
SSSSEEEEEEEE AAAALLLLSSSSOOOOrand(3), ERR_get_error(3), RAND_add(3)
HHHHIIIISSSSTTTTOOOORRRRYYYYRAND_bytes() is available in all versions of SSLeay and
OpenSSL. It has a return value since OpenSSL 0.9.5.RAND_pseudo_bytes() was added in OpenSSL 0.9.5.
21/Sep/2007 Last change: 0.9.8o 1