mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Added unit tests for wolfmath.c
This commit is contained in:
226
tests/api.c
226
tests/api.c
@ -33597,8 +33597,226 @@ static int test_wc_RNG_GenerateBlock(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* Testing wc_InitRngNonce
|
* Testing get_rand_digit
|
||||||
*/
|
*/
|
||||||
|
static int test_get_rand_digit (void)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
#if !defined(WC_NO_RNG) && defined(WOLFSSL_PUBLIC_MP)
|
||||||
|
|
||||||
|
WC_RNG rng;
|
||||||
|
mp_digit d;
|
||||||
|
|
||||||
|
printf(testingFmt, "get_rand_digit()");
|
||||||
|
|
||||||
|
ret = wc_InitRng(&rng);
|
||||||
|
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = get_rand_digit(&rng, &d);
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = wc_FreeRng(&rng);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(resultFmt, ret == 0 ? passed : failed);
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
}/* End test_get_rand_digit*/
|
||||||
|
/*
|
||||||
|
* Testing get_digit_count
|
||||||
|
*/
|
||||||
|
static int test_get_digit_count (void)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
#if !defined(WOLFSSL_SP_MATH) && defined(WOLFSSL_PUBLIC_MP)
|
||||||
|
mp_int a;
|
||||||
|
|
||||||
|
printf(testingFmt, "get_digit_count()");
|
||||||
|
|
||||||
|
if (mp_init(&a) != MP_OKAY) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = get_digit_count(NULL);
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = get_digit_count(&a);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(resultFmt, ret == 0 ? passed : failed);
|
||||||
|
mp_clear(&a);
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
}/* End test_get_digit_count*/
|
||||||
|
/*
|
||||||
|
* Testing mp_cond_copy
|
||||||
|
*/
|
||||||
|
static int test_mp_cond_copy (void)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
#if defined(WOLFSSL_PUBLIC_MP)
|
||||||
|
mp_int a;
|
||||||
|
mp_int b;
|
||||||
|
int copy = 0;
|
||||||
|
|
||||||
|
printf(testingFmt, "mp_cond_copy()");
|
||||||
|
|
||||||
|
if (mp_init(&a) != MP_OKAY) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
if (mp_init(&b) != MP_OKAY) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = mp_cond_copy(NULL, copy, NULL);
|
||||||
|
if (ret == BAD_FUNC_ARG) {
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = mp_cond_copy(NULL, copy, &b);
|
||||||
|
if (ret == BAD_FUNC_ARG) {
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = mp_cond_copy(&a, copy, NULL);
|
||||||
|
if (ret == BAD_FUNC_ARG) {
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = mp_cond_copy(&a, copy, &b);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(resultFmt, ret == 0 ? passed : failed);
|
||||||
|
mp_clear(&a);
|
||||||
|
mp_clear(&b);
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
}/* End test_mp_cond_copy*/
|
||||||
|
/*
|
||||||
|
* Testing mp_rand
|
||||||
|
*/
|
||||||
|
static int test_mp_rand (void)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
#if defined(WC_RSA_BLINDING) && defined(WOLFSSL_PUBLIC_MP)
|
||||||
|
mp_int a;
|
||||||
|
int digits = 1; /*Setting equal to 0 causes a segmentation fault, line 183*/
|
||||||
|
WC_RNG rng;
|
||||||
|
|
||||||
|
printf(testingFmt, "mp_rand()");
|
||||||
|
|
||||||
|
if (mp_init(&a) != MP_OKAY) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = wc_InitRng(&rng);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = mp_rand(&a, digits, NULL);
|
||||||
|
if (ret == MISSING_RNG_E) {
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = mp_rand(NULL, digits, &rng);
|
||||||
|
if (ret == BAD_FUNC_ARG) {
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = mp_rand(&a, digits, &rng);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(resultFmt, ret == 0 ? passed : failed);
|
||||||
|
mp_clear(&a);
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
}/* End test_mp_rand*/
|
||||||
|
/*
|
||||||
|
* Testing mp_rand
|
||||||
|
*/
|
||||||
|
static int test_get_digit (void)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
#if defined(WOLFSSL_PUBLIC_MP)
|
||||||
|
mp_int a;
|
||||||
|
int n = 0;
|
||||||
|
|
||||||
|
printf(testingFmt, "get_digit()");
|
||||||
|
|
||||||
|
if (mp_init(&a) != MP_OKAY) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = get_digit(NULL, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = get_digit(&a, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
printf(resultFmt, ret == 0 ? passed : failed);
|
||||||
|
mp_clear(&a);
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
}/* End test_get_digit*/
|
||||||
|
/*
|
||||||
|
* Testing wc_export_int
|
||||||
|
*/
|
||||||
|
static int test_wc_export_int (void)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
#if defined(WOLFSSL_PUBLIC_MP)
|
||||||
|
mp_int mp;
|
||||||
|
byte buf[256];
|
||||||
|
word32 keySz = (word32)sizeof(buf);
|
||||||
|
word32 len = (word32)sizeof(buf);
|
||||||
|
|
||||||
|
|
||||||
|
int encType = WC_TYPE_UNSIGNED_BIN;
|
||||||
|
|
||||||
|
printf(testingFmt, "wc_export_int()");
|
||||||
|
|
||||||
|
if (mp_init(&mp) != MP_OKAY) {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = wc_export_int(NULL, buf, &len, keySz, encType);
|
||||||
|
if (ret == BAD_FUNC_ARG) {
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
len = 255;
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = wc_export_int(&mp, buf, &len, keySz, encType);
|
||||||
|
if (ret == BUFFER_E) {
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
len = 256;
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = wc_export_int(&mp, buf, &len, keySz, WC_TYPE_HEX_STR);
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = wc_export_int(&mp, buf, &len, keySz, encType);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(resultFmt, ret == 0 ? passed : failed);
|
||||||
|
mp_clear(&mp);
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
}/* End test_wc_export_int*/
|
||||||
static int test_wc_InitRngNonce(void)
|
static int test_wc_InitRngNonce(void)
|
||||||
{
|
{
|
||||||
int ret=0;
|
int ret=0;
|
||||||
@ -35524,6 +35742,12 @@ void ApiTest(void)
|
|||||||
AssertIntEQ(test_wc_RNG_GenerateBlock(), 0);
|
AssertIntEQ(test_wc_RNG_GenerateBlock(), 0);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
AssertIntEQ(test_get_rand_digit(), 0);
|
||||||
|
AssertIntEQ(test_get_digit_count(), 0);
|
||||||
|
AssertIntEQ(test_mp_cond_copy(), 0);
|
||||||
|
AssertIntEQ(test_mp_rand(), 0);
|
||||||
|
AssertIntEQ(test_get_digit(), 0);
|
||||||
|
AssertIntEQ(test_wc_export_int(), 0);
|
||||||
AssertIntEQ(test_wc_InitRngNonce(), 0);
|
AssertIntEQ(test_wc_InitRngNonce(), 0);
|
||||||
AssertIntEQ(test_wc_InitRngNonce_ex(), 0);
|
AssertIntEQ(test_wc_InitRngNonce_ex(), 0);
|
||||||
AssertIntEQ(test_wc_ed25519_make_key(), 0);
|
AssertIntEQ(test_wc_ed25519_make_key(), 0);
|
||||||
|
Reference in New Issue
Block a user