cyassl: use RNG_GenerateBlock to generate a good random number

This commit is contained in:
Dan Fandrich 2014-07-31 00:09:13 +02:00
parent 524bb823c9
commit 1aa6418af9
2 changed files with 18 additions and 3 deletions

View File

@ -54,6 +54,7 @@
#else
#include <cyassl/error.h>
#endif
#include <cyassl/ctaocrypt/random.h>
/* The last #include file should be: */
#include "memdebug.h"
@ -638,4 +639,17 @@ Curl_cyassl_connect(struct connectdata *conn,
return CURLE_OK;
}
int Curl_cyassl_random(struct SessionHandle *data,
unsigned char *entropy,
size_t length)
{
RNG rng;
(void)data;
if(InitRng(&rng))
return 1;
if(RNG_GenerateBlock(&rng, entropy, length))
return 1;
return 0;
}
#endif

View File

@ -43,6 +43,9 @@ int Curl_cyassl_init(void);
CURLcode Curl_cyassl_connect_nonblocking(struct connectdata *conn,
int sockindex,
bool *done);
int Curl_cyassl_random(struct SessionHandle *data,
unsigned char *entropy,
size_t length);
/* API setup for CyaSSL */
#define curlssl_init Curl_cyassl_init
@ -59,9 +62,7 @@ CURLcode Curl_cyassl_connect_nonblocking(struct connectdata *conn,
#define curlssl_version Curl_cyassl_version
#define curlssl_check_cxn(x) (x=x, -1)
#define curlssl_data_pending(x,y) Curl_cyassl_data_pending(x,y)
/* this might cause libcurl to use a weeker random! */
#define curlssl_random(x,y,z) (x=x, y=y, z=z, CURLE_NOT_BUILT_IN)
#define curlssl_random(x,y,z) Curl_cyassl_random(x,y,z)
#endif /* USE_CYASSL */
#endif /* HEADER_CURL_CYASSL_H */