| =pod |
| |
| =head1 NAME |
| |
| RAND_set_rand_method, RAND_get_rand_method, RAND_SSLeay - select RAND method |
| |
| =head1 SYNOPSIS |
| |
| #include <openssl/rand.h> |
| |
| void RAND_set_rand_method(RAND_METHOD *meth); |
| |
| RAND_METHOD *RAND_get_rand_method(void); |
| |
| RAND_METHOD *RAND_SSLeay(void); |
| |
| =head1 DESCRIPTION |
| |
| A B<RAND_METHOD> specifies the functions that OpenSSL uses for random |
| number generation. By modifying the method, alternative |
| implementations such as hardware RNGs may be used. Initially, the |
| default is to use the OpenSSL internal implementation. RAND_SSLeay() |
| returns a pointer to that method. |
| |
| RAND_set_rand_method() sets the RAND method to B<meth>. |
| RAND_get_rand_method() returns a pointer to the current method. |
| |
| =head1 THE RAND_METHOD STRUCTURE |
| |
| typedef struct rand_meth_st |
| { |
| void (*seed)(const void *buf, int num); |
| int (*bytes)(unsigned char *buf, int num); |
| void (*cleanup)(void); |
| void (*add)(const void *buf, int num, int entropy); |
| int (*pseudorand)(unsigned char *buf, int num); |
| int (*status)(void); |
| } RAND_METHOD; |
| |
| The components point to the implementation of RAND_seed(), |
| RAND_bytes(), RAND_cleanup(), RAND_add(), RAND_pseudo_rand() |
| and RAND_status(). |
| Each component may be NULL if the function is not implemented. |
| |
| =head1 RETURN VALUES |
| |
| RAND_set_rand_method() returns no value. RAND_get_rand_method() and |
| RAND_SSLeay() return pointers to the respective methods. |
| |
| =head1 SEE ALSO |
| |
| L<rand(3)|rand(3)> |
| |
| =head1 HISTORY |
| |
| RAND_set_rand_method(), RAND_get_rand_method() and RAND_SSLeay() are |
| available in all versions of OpenSSL. |
| |
| =cut |