diff --git a/crypto/engine/eng_rdrand.c b/crypto/engine/eng_rdrand.c index 26507c56a6c302a7ca787152454cdb1e44034be5..266e1a192d81e2074e1d7f684128345e5e43b230 100644 --- a/crypto/engine/eng_rdrand.c +++ b/crypto/engine/eng_rdrand.c @@ -52,6 +52,8 @@ #include #include #include +#include +#include #if (defined(__i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(__x86_64__) || \ @@ -59,11 +61,11 @@ size_t OPENSSL_ia32_rdrand(void); -static int get_random_bytes (unsigned char *buf, size_t num) +static int get_random_bytes (unsigned char *buf, int num) { size_t rnd; - while (num>=sizeof(size_t)) { + while (num>=(int)sizeof(size_t)) { if ((rnd = OPENSSL_ia32_rdrand()) == 0) return 0; *((size_t *)buf) = rnd; @@ -124,7 +126,7 @@ static ENGINE *ENGINE_rdrand(void) void ENGINE_load_rdrand (void) { - extern OPENSSL_ia32cap_P[]; + extern unsigned int OPENSSL_ia32cap_P[]; if (OPENSSL_ia32cap_P[1] & (1<<(62-32))) {