RAND_bytes(3)
RAND_bytes, RAND_pseudo_bytes - generate random data
#include <openssl/rand.h>
int RAND_bytes(unsigned char *buf, int num);
int RAND_pseudo_bytes(unsigned char *buf, int num);
RAND_bytes() puts num cryptographically strong pseudo-random bytes into buf. An error occurs if the PRNG has not been seeded with enough randomness to
ensure an unpredictable byte sequence.
RAND_pseudo_bytes() puts num pseudo-random bytes into buf. 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 be used for
non-cryptographic purposes and for certain purposes in cryptographic
protocols, but usually not for key generation etc.
The contents of buf is mixed into the entropy pool before retrieving the new pseudo-random
bytes unless disabled at compile time (see FAQ).
RAND_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.
rand(3), ERR_get_error(3),
RAND_add(3)
RAND_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.
|