xref: /freebsd/crypto/openssl/doc/man3/RAND_bytes.pod (revision e71b7053)
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