SYNOPSIS

        #include <openssl/rand.h>

        void RAND_set_rand_method(const RAND_METHOD *meth);

        const RAND_METHOD *RAND_get_rand_method(void);

        RAND_METHOD *RAND_SSLeay(void);


DESCRIPTION

       A RAND_METHOD specifies the functions that OpenSSL uses for random num-
       ber generation. By modifying the method, alternative implementations
       such as hardware RNGs may be used. IMPORTANT: See the NOTES section for
       important information about how these RAND API functions are affected
       by the use of ENGINE API calls.

       Initially, the default RAND_METHOD is the OpenSSL internal implementa-
       tion, as returned by RAND_SSLeay().

       RAND_set_default_method() makes meth the method for PRNG use. NB: This
       is true only whilst no ENGINE has been set as a default for RAND, so
       this function is no longer recommended.

       RAND_get_default_method() returns a pointer to the current RAND_METHOD.
       However, the meaningfulness of this result is dependant on whether the
       ENGINE API is being used, so this function is no longer recommended.


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.


RETURN VALUES

       RAND_set_rand_method() returns no value. RAND_get_rand_method() and
       RAND_SSLeay() return pointers to the respective methods.


NOTES

       As of version 0.9.7, RAND_METHOD implementations are grouped together
       with other algorithmic APIs (eg. RSA_METHOD, EVP_CIPHER, etc) in ENGINE
       modules. If a default ENGINE is specified for RAND functionality using
       that has been reverted as the ENGINE API transparently overrides RAND
       defaults if used, otherwise RAND API functions work as before.
       RAND_set_rand_engine() was also introduced in version 0.9.7.



0.9.8d                            2002-08-05           RAND_set_rand_method(3)

Man(1) output converted with man2html