RAND_poll

This commit is contained in:
Go Hosohara
2018-05-03 15:52:42 +09:00
parent cc58d3160f
commit 24ff55b085
5 changed files with 28 additions and 0 deletions

View File

@ -21564,6 +21564,27 @@ int wolfSSL_RAND_bytes(unsigned char* buf, int num)
return ret;
}
#define RAND_ENTROPY_SZ (256/16)
int wolfSSL_RAND_poll()
{
WOLFSSL_ENTER("wolfSSL_RAND_poll");
byte entropy[RAND_ENTROPY_SZ];
int ret = 0;
if (initGlobalRNG == 0){
WOLFSSL_MSG("Global RNG no Init");
return WOLFSSL_FAILURE;
}
ret = wc_GenerateSeed(&globalRNG.seed, entropy, RAND_ENTROPY_SZ);
if (ret != 0){
WOLFSSL_MSG("Bad wc_RNG_GenerateBlock");
ret = WOLFSSL_FAILURE;
}else
ret = WOLFSSL_SUCCESS;
return ret;
}
WOLFSSL_BN_CTX* wolfSSL_BN_CTX_new(void)
{
static int ctx; /* wolfcrypt doesn't now need ctx */

View File

@ -17216,6 +17216,7 @@ static void test_wolfSSL_RAND(void)
printf(testingFmt, "wolfSSL_RAND()");
RAND_seed(seed, sizeof(seed));
AssertIntEQ(RAND_poll(), 1);
RAND_cleanup();
AssertIntEQ(RAND_egd(NULL), -1);

View File

@ -564,6 +564,10 @@ typedef WOLFSSL_EVP_CIPHER_CTX EVP_CIPHER_CTX;
WOLFSSL_API void printPKEY(WOLFSSL_EVP_PKEY *k);
WOLFSSL_API void wolfSSL_OPENSSL_add_all_algorithms_noconf(void);
#define OPENSSL_add_all_algorithms_noconf wolfSSL_OPENSSL_add_all_algorithms_noconf
#ifdef __cplusplus
} /* extern "C" */
#endif

View File

@ -297,6 +297,7 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX;
#define RAND_seed wolfSSL_RAND_seed
#define RAND_cleanup wolfSSL_RAND_Cleanup
#define RAND_add wolfSSL_RAND_add
#define RAND_poll wolfSSL_RAND_poll
#define COMP_zlib wolfSSL_COMP_zlib
#define COMP_rle wolfSSL_COMP_rle

View File

@ -837,6 +837,7 @@ WOLFSSL_API int wolfSSL_RAND_egd(const char*);
WOLFSSL_API int wolfSSL_RAND_seed(const void*, int);
WOLFSSL_API void wolfSSL_RAND_Cleanup(void);
WOLFSSL_API void wolfSSL_RAND_add(const void*, int, double);
WOLFSSL_API int wolfSSL_RAND_poll(void);
WOLFSSL_API WOLFSSL_COMP_METHOD* wolfSSL_COMP_zlib(void);
WOLFSSL_API WOLFSSL_COMP_METHOD* wolfSSL_COMP_rle(void);