]>
Commit | Line | Data |
---|---|---|
60b52453 UM |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
4d524e10 | 5 | RAND_bytes, RAND_pseudo_bytes - generate random data |
60b52453 UM |
6 | |
7 | =head1 SYNOPSIS | |
8 | ||
9 | #include <openssl/rand.h> | |
10 | ||
11 | int RAND_bytes(unsigned char *buf, int num); | |
12 | ||
13 | int RAND_pseudo_bytes(unsigned char *buf, int num); | |
14 | ||
15 | =head1 DESCRIPTION | |
16 | ||
720b3598 BM |
17 | RAND_bytes() puts B<num> cryptographically strong pseudo-random bytes |
18 | into B<buf>. An error occurs if the PRNG has not been seeded with | |
19 | enough randomness to ensure an unpredictable byte sequence. | |
20 | ||
21 | RAND_pseudo_bytes() puts B<num> pseudo-random bytes into B<buf>. | |
22 | Pseudo-random byte sequences generated by RAND_pseudo_bytes() will be | |
23 | unique if they are of sufficient length, but are not necessarily | |
24 | unpredictable. They can be used for non-cryptographic purposes and for | |
25 | certain purposes in cryptographic protocols, but usually not for key | |
26 | generation etc. | |
60b52453 UM |
27 | |
28 | =head1 RETURN VALUES | |
29 | ||
30 | RAND_bytes() returns 1 on success, 0 otherwise. The error code can be | |
bb075f88 | 31 | obtained by L<ERR_get_error(3)|ERR_get_error(3)>. RAND_pseudo_bytes() returns 1 if the |
60b52453 UM |
32 | bytes generated are cryptographically strong, 0 otherwise. Both |
33 | functions return -1 if they are not supported by the current RAND | |
34 | method. | |
35 | ||
36 | =head1 SEE ALSO | |
37 | ||
bb075f88 | 38 | L<rand(3)|rand(3)>, L<err(3)|err(3)>, L<RAND_add(3)|RAND_add(3)> |
60b52453 UM |
39 | |
40 | =head1 HISTORY | |
41 | ||
42 | RAND_bytes() is available in all versions of SSLeay and OpenSSL. It | |
43 | has a return value since OpenSSL 0.9.5. RAND_pseudo_bytes() was added | |
44 | in OpenSSL 0.9.5. | |
45 | ||
46 | =cut |