summaryrefslogtreecommitdiff
path: root/fuzz/mpi_sqr_target.cc
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz/mpi_sqr_target.cc')
-rw-r--r--fuzz/mpi_sqr_target.cc25
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
}