mirror of
https://github.com/openssl/openssl.git
synced 2025-04-12 20:30:52 +08:00
Add a test for public variants of bn2bin()
We test with binary input of length 1, length 0, and NULL input with length 0 Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20033)
This commit is contained in:
parent
1b24b5a1b4
commit
15192335c8
@ -2219,6 +2219,36 @@ static int test_mpi(int i)
|
||||
return st;
|
||||
}
|
||||
|
||||
static int test_bin2zero(void)
|
||||
{
|
||||
unsigned char input[] = { 0 };
|
||||
BIGNUM *zbn = NULL;
|
||||
int ret = 0;
|
||||
|
||||
if (!TEST_ptr(zbn = BN_new()))
|
||||
goto err;
|
||||
|
||||
#define zerotest(fn) \
|
||||
if (!TEST_ptr(fn(input, 1, zbn)) \
|
||||
|| !TEST_true(BN_is_zero(zbn)) \
|
||||
|| !TEST_ptr(fn(input, 0, zbn)) \
|
||||
|| !TEST_true(BN_is_zero(zbn)) \
|
||||
|| !TEST_ptr(fn(NULL, 0, zbn)) \
|
||||
|| !TEST_true(BN_is_zero(zbn))) \
|
||||
goto err
|
||||
|
||||
zerotest(BN_bin2bn);
|
||||
zerotest(BN_signed_bin2bn);
|
||||
zerotest(BN_lebin2bn);
|
||||
zerotest(BN_signed_lebin2bn);
|
||||
#undef zerotest
|
||||
|
||||
ret = 1;
|
||||
err:
|
||||
BN_free(zbn);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int test_rand(void)
|
||||
{
|
||||
BIGNUM *bn = NULL;
|
||||
@ -3213,6 +3243,7 @@ int setup_tests(void)
|
||||
ADD_TEST(test_dec2bn);
|
||||
ADD_TEST(test_hex2bn);
|
||||
ADD_TEST(test_asc2bn);
|
||||
ADD_TEST(test_bin2zero);
|
||||
ADD_ALL_TESTS(test_mpi, (int)OSSL_NELEM(kMPITests));
|
||||
ADD_ALL_TESTS(test_bn2signed, (int)OSSL_NELEM(kSignedTests_BE));
|
||||
ADD_TEST(test_negzero);
|
||||
|
Loading…
x
Reference in New Issue
Block a user