2000-01-22 01:50:27 +08:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2000-02-24 19:55:57 +08:00
|
|
|
RAND_set_rand_method, RAND_get_rand_method, RAND_SSLeay - select RAND method
|
2000-01-22 01:50:27 +08:00
|
|
|
|
|
|
|
=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.
|
|
|
|
|
2000-01-27 09:50:42 +08:00
|
|
|
=head1 THE RAND_METHOD STRUCTURE
|
2000-01-22 01:50:27 +08:00
|
|
|
|
|
|
|
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);
|
2000-03-04 08:22:04 +08:00
|
|
|
int (*status)(void);
|
2000-01-22 01:50:27 +08:00
|
|
|
} RAND_METHOD;
|
|
|
|
|
|
|
|
The components point to the implementation of RAND_seed(),
|
2000-03-04 08:22:04 +08:00
|
|
|
RAND_bytes(), RAND_cleanup(), RAND_add(), RAND_pseudo_rand()
|
|
|
|
and RAND_status().
|
2000-01-22 01:50:27 +08:00
|
|
|
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
|
|
|
|
|
2000-01-27 09:25:31 +08:00
|
|
|
L<rand(3)|rand(3)>
|
2000-01-22 01:50:27 +08:00
|
|
|
|
|
|
|
=head1 HISTORY
|
|
|
|
|
|
|
|
RAND_set_rand_method(), RAND_get_rand_method() and RAND_SSLeay() are
|
|
|
|
available in all versions of OpenSSL.
|
|
|
|
|
|
|
|
=cut
|