Commit 1aa6418a authored by Dan Fandrich's avatar Dan Fandrich
Browse files

cyassl: use RNG_GenerateBlock to generate a good random number

parent 524bb823
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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
+4 −3
Original line number Diff line number Diff line
@@ -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 */