Skip to content

Commit

Permalink
cyassl: use RNG_GenerateBlock to generate a good random number
Browse files Browse the repository at this point in the history
  • Loading branch information
dfandrich committed Jul 30, 2014
1 parent 524bb82 commit 1aa6418
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
14 changes: 14 additions & 0 deletions lib/vtls/cyassl.c
Expand Up @@ -54,6 +54,7 @@
#else
#include <cyassl/error.h>
#endif
#include <cyassl/ctaocrypt/random.h>

/* The last #include file should be: */
#include "memdebug.h"
Expand Down Expand Up @@ -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
7 changes: 4 additions & 3 deletions lib/vtls/cyassl.h
Expand Up @@ -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
Expand All @@ -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 */

0 comments on commit 1aa6418

Please sign in to comment.