]>
Commit | Line | Data |
---|---|---|
60b52453 UM |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | RAND_set_rand_method, RAND_get_rand_method, RAND_SSLeay - Select RAND method | |
6 | ||
7 | =head1 SYNOPSIS | |
8 | ||
9 | #include <openssl/rand.h> | |
10 | ||
11 | void RAND_set_rand_method(RAND_METHOD *meth); | |
12 | ||
13 | RAND_METHOD *RAND_get_rand_method(void); | |
14 | ||
15 | RAND_METHOD *RAND_SSLeay(void); | |
16 | ||
17 | =head1 DESCRIPTION | |
18 | ||
19 | A B<RAND_METHOD> specifies the functions that OpenSSL uses for random | |
20 | number generation. By modifying the method, alternative | |
21 | implementations such as hardware RNGs may be used. Initially, the | |
22 | default is to use the OpenSSL internal implementation. RAND_SSLeay() | |
23 | returns a pointer to that method. | |
24 | ||
25 | RAND_set_rand_method() sets the RAND method to B<meth>. | |
26 | RAND_get_rand_method() returns a pointer to the current method. | |
27 | ||
28 | =head1 THE RAND_METHOD STUCTURE | |
29 | ||
30 | typedef struct rand_meth_st | |
31 | { | |
32 | void (*seed)(const void *buf, int num); | |
33 | int (*bytes)(unsigned char *buf, int num); | |
34 | void (*cleanup)(void); | |
35 | void (*add)(const void *buf, int num, int entropy); | |
36 | int (*pseudorand)(unsigned char *buf, int num); | |
37 | } RAND_METHOD; | |
38 | ||
39 | The components point to the implementation of RAND_seed(), | |
40 | RAND_bytes(), RAND_cleanup(), RAND_add() and RAND_pseudo_rand(). | |
41 | Each component may be NULL if the function is not implemented. | |
42 | ||
43 | =head1 RETURN VALUES | |
44 | ||
45 | RAND_set_rand_method() returns no value. RAND_get_rand_method() and | |
46 | RAND_SSLeay() return pointers to the respective methods. | |
47 | ||
48 | =head1 SEE ALSO | |
49 | ||
50 | rand(3) | |
51 | ||
52 | =head1 HISTORY | |
53 | ||
54 | RAND_set_rand_method(), RAND_get_rand_method() and RAND_SSLeay() are | |
55 | available in all versions of OpenSSL. | |
56 | ||
57 | =cut |