@@ -59,7 +59,6 @@ int fuzz_recv(void *ctx, unsigned char *buf, size_t len)
5959int dummy_random (void * p_rng , unsigned char * output , size_t output_len )
6060{
6161 int ret ;
62- size_t i ;
6362
6463#if defined(MBEDTLS_CTR_DRBG_C )
6564 //mbedtls_ctr_drbg_random requires a valid mbedtls_ctr_drbg_context in p_rng
@@ -74,24 +73,35 @@ int dummy_random(void *p_rng, unsigned char *output, size_t output_len)
7473 (void ) p_rng ;
7574 ret = 0 ;
7675#endif
77- for (i = 0 ; i < output_len ; i ++ ) {
78- //replace result with pseudo random
79- output [i ] = (unsigned char ) rand ();
76+ //replace result with pseudo random
77+ while (output_len > 0 ) {
78+ #if (RAND_MAX >= 0x00FFFFFF )
79+ * output = (unsigned char ) (rand () >> 16 );
80+ #else
81+ * output = (unsigned char ) rand () ; /* e. g. Visual C */
82+ #endif
83+ output += 1 ;
84+ output_len -= 1 ;
8085 }
8186 return ret ;
8287}
8388
8489int dummy_entropy (void * data , unsigned char * output , size_t len )
8590{
86- size_t i ;
8791 (void ) data ;
8892
8993 //use mbedtls_entropy_func to find bugs in it
9094 //test performance impact of entropy
9195 //ret = mbedtls_entropy_func(data, output, len);
92- for (i = 0 ; i < len ; i ++ ) {
93- //replace result with pseudo random
94- output [i ] = (unsigned char ) rand ();
96+ //replace result with pseudo random
97+ while (len > 0 ) {
98+ #if (RAND_MAX >= 0x00FFFFFF )
99+ * output = (unsigned char ) (rand () >> 16 );
100+ #else
101+ * output = (unsigned char ) rand () ; /* e. g. Visual C */
102+ #endif
103+ output += 1 ;
104+ len -= 1 ;
95105 }
96106 return 0 ;
97107}
0 commit comments