diff options
Diffstat (limited to 'fuzz/mpi_sqr_target.cc')
-rw-r--r-- | fuzz/mpi_sqr_target.cc | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/fuzz/mpi_sqr_target.cc b/fuzz/mpi_sqr_target.cc index 1b8504085..b404d624c 100644 --- a/fuzz/mpi_sqr_target.cc +++ b/fuzz/mpi_sqr_target.cc @@ -14,16 +14,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { if (size < 2) { return 0; } - mp_int a, c, r; - BN_CTX *ctx = BN_CTX_new(); - BN_CTX_start(ctx); - BIGNUM *A = BN_CTX_get(ctx); - BIGNUM *C = BN_CTX_get(ctx); - assert(mp_init(&a) == MP_OKAY); - assert(mp_init(&c) == MP_OKAY); - assert(mp_init(&r) == MP_OKAY); - size_t max_size = 4 * size + 1; - parse_input(data, size, A, &a); + + INIT_THREE_NUMBERS // Compare with OpenSSL sqr assert(mp_sqr(&a, &c) == MP_OKAY); @@ -31,11 +23,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { check_equal(C, &c, max_size); // Check a * a == a**2 - assert(mp_mul(&a, &a, &r) == MP_OKAY); - bool eq = mp_cmp(&r, &c) == 0; + assert(mp_mul(&a, &a, &b) == MP_OKAY); + bool eq = mp_cmp(&b, &c) == 0; if (!eq) { char rC[max_size], cC[max_size], aC[max_size]; - mp_tohex(&r, rC); + mp_tohex(&b, rC); mp_tohex(&c, cC); mp_tohex(&a, aC); std::cout << "a = " << std::hex << aC << std::endl; @@ -43,11 +35,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { std::cout << "a ** 2 = " << std::hex << rC << std::endl; } assert(eq); - mp_clear(&a); - mp_clear(&c); - mp_clear(&r); - BN_CTX_end(ctx); - BN_CTX_free(ctx); - return 0; + CLEANUP_AND_RETURN_THREE } |