X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=crypto%2Frand%2Frand.h;h=ac6c0217636f14d0af801360ae7b0b7ac46fb571;hb=6343829a391df59e46e513c84b6264ee71ad9518;hp=f5edcb9a547a80a873c913307ee2dd7da33b0956;hpb=31b8d8684441e6cd5138832bb1b2ddb10acd6ba6;p=openssl.git diff --git a/crypto/rand/rand.h b/crypto/rand/rand.h index f5edcb9a54..ac6c021763 100644 --- a/crypto/rand/rand.h +++ b/crypto/rand/rand.h @@ -59,53 +59,82 @@ #ifndef HEADER_RAND_H #define HEADER_RAND_H +#include +#include +#include + +#if defined(OPENSSL_SYS_WINDOWS) +#include +#endif + #ifdef __cplusplus extern "C" { #endif -typedef struct rand_meth_st +#if defined(OPENSSL_FIPS) +#define FIPS_RAND_SIZE_T size_t +#endif + +/* Already defined in ossl_typ.h */ +/* typedef struct rand_meth_st RAND_METHOD; */ + +struct rand_meth_st { -#ifndef NOPROTO - void (*seed)(unsigned char *buf, int num); - void (*bytes)(unsigned char *buf, int num); + void (*seed)(const void *buf, int num); + int (*bytes)(unsigned char *buf, int num); void (*cleanup)(void); -#else - void (*seed)(); - void (*bytes)(); - void (*cleanup)(); + void (*add)(const void *buf, int num, double entropy); + int (*pseudorand)(unsigned char *buf, int num); + int (*status)(void); + }; + +#ifdef BN_DEBUG +extern int rand_predictable; #endif - } RAND_METHOD; -#ifndef NOPROTO -void RAND_set_rand_method(RAND_METHOD *meth); -RAND_METHOD *RAND_get_rand_method(void ); +int RAND_set_rand_method(const RAND_METHOD *meth); +const RAND_METHOD *RAND_get_rand_method(void); +#ifndef OPENSSL_NO_ENGINE +int RAND_set_rand_engine(ENGINE *engine); +#endif RAND_METHOD *RAND_SSLeay(void); void RAND_cleanup(void ); -void RAND_bytes( unsigned char *buf,int num); -void RAND_seed( unsigned char *buf,int num); -int RAND_load_file(char *file,long max_bytes); -int RAND_write_file(char *file); -char *RAND_file_name(char *file,int num); -#ifdef WINDOWS +int RAND_bytes(unsigned char *buf,int num); +int RAND_pseudo_bytes(unsigned char *buf,int num); +void RAND_seed(const void *buf,int num); +void RAND_add(const void *buf,int num,double entropy); +int RAND_load_file(const char *file,long max_bytes); +int RAND_write_file(const char *file); +const char *RAND_file_name(char *file,size_t num); +int RAND_status(void); +int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); +int RAND_egd(const char *path); +int RAND_egd_bytes(const char *path,int bytes); +int RAND_poll(void); + +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) + void RAND_screen(void); +int RAND_event(UINT, WPARAM, LPARAM); + #endif -#else -void RAND_set_rand_method(); -RAND_METHOD *RAND_get_rand_method(); -RAND_METHOD *RAND_SSLeay(); -void RAND_cleanup(); -void RAND_bytes(); -void RAND_seed(); -int RAND_load_file(); -int RAND_write_file(); -char *RAND_file_name(); -#ifdef WINDOWS -void RAND_screen(); -#endif -#endif + +/* BEGIN ERROR CODES */ +/* The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_RAND_strings(void); + +/* Error codes for the RAND functions. */ + +/* Function codes. */ +#define RAND_F_RAND_GET_RAND_METHOD 101 +#define RAND_F_SSLEAY_RAND_BYTES 100 + +/* Reason codes. */ +#define RAND_R_PRNG_NOT_SEEDED 100 #ifdef __cplusplus } #endif - #endif