X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=crypto%2Frand%2Frand.h;h=ac6c0217636f14d0af801360ae7b0b7ac46fb571;hb=29dc3508138b2bbb1103b50408eb41e22806638f;hp=fd8ee38366f0b9df32b2c543ebe0d3023acb3c40;hpb=a9be3af5ad4836f7e50f0546311ca90c717b861e;p=openssl.git diff --git a/crypto/rand/rand.h b/crypto/rand/rand.h index fd8ee38366..ac6c021763 100644 --- a/crypto/rand/rand.h +++ b/crypto/rand/rand.h @@ -59,31 +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 { void (*seed)(const void *buf, int num); - void (*bytes)(unsigned char *buf, int num); + int (*bytes)(unsigned char *buf, int num); void (*cleanup)(void); - } RAND_METHOD; + 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 -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); +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); -char *RAND_file_name(char *file,int num); -#ifdef WINDOWS +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 + +/* 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