1*e71b7053SJung-uk Kim=pod 2*e71b7053SJung-uk Kim 3*e71b7053SJung-uk Kim=head1 NAME 4*e71b7053SJung-uk Kim 5*e71b7053SJung-uk KimRAND_bytes, RAND_priv_bytes, RAND_pseudo_bytes - generate random data 6*e71b7053SJung-uk Kim 7*e71b7053SJung-uk Kim=head1 SYNOPSIS 8*e71b7053SJung-uk Kim 9*e71b7053SJung-uk Kim #include <openssl/rand.h> 10*e71b7053SJung-uk Kim 11*e71b7053SJung-uk Kim int RAND_bytes(unsigned char *buf, int num); 12*e71b7053SJung-uk Kim int RAND_priv_bytes(unsigned char *buf, int num); 13*e71b7053SJung-uk Kim 14*e71b7053SJung-uk KimDeprecated: 15*e71b7053SJung-uk Kim 16*e71b7053SJung-uk Kim #if OPENSSL_API_COMPAT < 0x10100000L 17*e71b7053SJung-uk Kim int RAND_pseudo_bytes(unsigned char *buf, int num); 18*e71b7053SJung-uk Kim #endif 19*e71b7053SJung-uk Kim 20*e71b7053SJung-uk Kim=head1 DESCRIPTION 21*e71b7053SJung-uk Kim 22*e71b7053SJung-uk KimRAND_bytes() puts B<num> cryptographically strong pseudo-random bytes 23*e71b7053SJung-uk Kiminto B<buf>. 24*e71b7053SJung-uk Kim 25*e71b7053SJung-uk KimRAND_priv_bytes() has the same semantics as RAND_bytes(). It is intended to 26*e71b7053SJung-uk Kimbe used for generating values that should remain private. If using the 27*e71b7053SJung-uk Kimdefault RAND_METHOD, this function uses a separate "private" PRNG 28*e71b7053SJung-uk Kiminstance so that a compromise of the "public" PRNG instance will not 29*e71b7053SJung-uk Kimaffect the secrecy of these private values, as described in L<RAND(7)> 30*e71b7053SJung-uk Kimand L<RAND_DRBG(7)>. 31*e71b7053SJung-uk Kim 32*e71b7053SJung-uk Kim=head1 NOTES 33*e71b7053SJung-uk Kim 34*e71b7053SJung-uk KimAlways check the error return value of RAND_bytes() and 35*e71b7053SJung-uk KimRAND_priv_bytes() and do not take randomness for granted: an error occurs 36*e71b7053SJung-uk Kimif the CSPRNG has not been seeded with enough randomness to ensure an 37*e71b7053SJung-uk Kimunpredictable byte sequence. 38*e71b7053SJung-uk Kim 39*e71b7053SJung-uk Kim=head1 RETURN VALUES 40*e71b7053SJung-uk Kim 41*e71b7053SJung-uk KimRAND_bytes() and RAND_priv_bytes() 42*e71b7053SJung-uk Kimreturn 1 on success, -1 if not supported by the current 43*e71b7053SJung-uk KimRAND method, or 0 on other failure. The error code can be 44*e71b7053SJung-uk Kimobtained by L<ERR_get_error(3)>. 45*e71b7053SJung-uk Kim 46*e71b7053SJung-uk Kim=head1 HISTORY 47*e71b7053SJung-uk Kim 48*e71b7053SJung-uk Kim=over 2 49*e71b7053SJung-uk Kim 50*e71b7053SJung-uk Kim=item * 51*e71b7053SJung-uk Kim 52*e71b7053SJung-uk KimRAND_pseudo_bytes() was deprecated in OpenSSL 1.1.0; use RAND_bytes() instead. 53*e71b7053SJung-uk Kim 54*e71b7053SJung-uk Kim=item * 55*e71b7053SJung-uk Kim 56*e71b7053SJung-uk KimRAND_priv_bytes() was added in OpenSSL 1.1.1. 57*e71b7053SJung-uk Kim 58*e71b7053SJung-uk Kim=back 59*e71b7053SJung-uk Kim 60*e71b7053SJung-uk Kim=head1 SEE ALSO 61*e71b7053SJung-uk Kim 62*e71b7053SJung-uk KimL<RAND_add(3)>, 63*e71b7053SJung-uk KimL<RAND_bytes(3)>, 64*e71b7053SJung-uk KimL<RAND_priv_bytes(3)>, 65*e71b7053SJung-uk KimL<ERR_get_error(3)>, 66*e71b7053SJung-uk KimL<RAND(7)>, 67*e71b7053SJung-uk KimL<RAND_DRBG(7)> 68*e71b7053SJung-uk Kim 69*e71b7053SJung-uk Kim=head1 COPYRIGHT 70*e71b7053SJung-uk Kim 71*e71b7053SJung-uk KimCopyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. 72*e71b7053SJung-uk Kim 73*e71b7053SJung-uk KimLicensed under the OpenSSL license (the "License"). You may not use 74*e71b7053SJung-uk Kimthis file except in compliance with the License. You can obtain a copy 75*e71b7053SJung-uk Kimin the file LICENSE in the source distribution or at 76*e71b7053SJung-uk KimL<https://www.openssl.org/source/license.html>. 77*e71b7053SJung-uk Kim 78*e71b7053SJung-uk Kim=cut 79