diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c index 247ae9cf9..00824a449 100644 --- a/wolfcrypt/src/random.c +++ b/wolfcrypt/src/random.c @@ -22,7 +22,7 @@ #ifdef HAVE_CONFIG_H #include #endif - + #include /* on HPUX 11 you may need to install /dev/random see @@ -122,7 +122,7 @@ int wc_RNG_GenerateByte(WC_RNG* rng, byte* b) #ifdef HAVE_INTEL_RDGEN static int wc_InitRng_IntelRD(void) ; #if defined(HAVE_HASHDRBG) || defined(NO_RC4) - static int wc_GenerateSeed_IntelRD(OS_Seed* os, byte* output, word32 sz) ; + static int wc_GenerateSeed_IntelRD(OS_Seed* os, byte* output, word32 sz) ; #else static int wc_GenerateRand_IntelRD(OS_Seed* os, byte* output, word32 sz) ; #endif @@ -843,20 +843,20 @@ static void CaviumRNG_GenerateBlock(WC_RNG* rng, byte* output, word32 sz) #define EAX 0 #define EBX 1 -#define ECX 2 +#define ECX 2 #define EDX 3 static word32 cpuid_flag(word32 leaf, word32 sub, word32 num, word32 bit) { int got_intel_cpu=0; - unsigned int reg[5]; - + unsigned int reg[5]; + reg[4] = '\0' ; - cpuid(reg, 0, 0); - if(memcmp((char *)&(reg[EBX]), "Genu", 4) == 0 && - memcmp((char *)&(reg[EDX]), "ineI", 4) == 0 && - memcmp((char *)&(reg[ECX]), "ntel", 4) == 0) { - got_intel_cpu = 1; - } + cpuid(reg, 0, 0); + if(memcmp((char *)&(reg[EBX]), "Genu", 4) == 0 && + memcmp((char *)&(reg[EDX]), "ineI", 4) == 0 && + memcmp((char *)&(reg[ECX]), "ntel", 4) == 0) { + got_intel_cpu = 1; + } if (got_intel_cpu) { cpuid(reg, leaf, sub); return((reg[num]>>bit)&0x1) ; @@ -867,7 +867,7 @@ static word32 cpuid_flag(word32 leaf, word32 sub, word32 num, word32 bit) { static int wc_InitRng_IntelRD() { if(cpuid_check==0) { - if(cpuid_flag(1, 0, ECX, 30)){ cpuid_flags |= CPUID_RDRAND ;} + if(cpuid_flag(1, 0, ECX, 30)){ cpuid_flags |= CPUID_RDRAND ;} if(cpuid_flag(7, 0, EBX, 18)){ cpuid_flags |= CPUID_RDSEED ;} cpuid_check = 1 ; } @@ -879,11 +879,11 @@ static int wc_InitRng_IntelRD() #if defined(HAVE_HASHDRBG) || defined(NO_RC4) /* return 0 on success */ -static INLINE int IntelRDseed32(unsigned int *seed) -{ +static INLINE int IntelRDseed32(unsigned int *seed) +{ int rdseed; unsigned char ok ; - __asm__ volatile("rdseed %0; setc %1":"=r"(rdseed), "=qm"(ok)); + __asm__ volatile("rdseed %0; setc %1":"=r"(rdseed), "=qm"(ok)); if(ok){ *seed = rdseed ; return 0 ; @@ -892,8 +892,8 @@ static INLINE int IntelRDseed32(unsigned int *seed) } /* return 0 on success */ -static INLINE int IntelRDseed32_r(unsigned int *rnd) -{ +static INLINE int IntelRDseed32_r(unsigned int *rnd) +{ int i ; for(i=0; i sz || + if( (i + sizeof(CUSTOM_RAND_TYPE)) > sz || ((wolfssl_word)&output[i] % sizeof(CUSTOM_RAND_TYPE)) != 0 ) { /* Single byte at a time */