mirror of
https://github.com/openssl/openssl.git
synced 2025-02-17 14:32:04 +08:00
Make the bignum fuzzer reproducible
Reviewed-by: Rich Salz <rsalz@openssl.org> GH: #2182
This commit is contained in:
parent
f8d4b3beda
commit
13799455cb
@ -15,23 +15,14 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/err.h>
|
||||
#include "fuzzer.h"
|
||||
|
||||
static BN_CTX *ctx;
|
||||
static BIGNUM *b1;
|
||||
static BIGNUM *b2;
|
||||
static BIGNUM *b3;
|
||||
static BIGNUM *b4;
|
||||
static BIGNUM *b5;
|
||||
|
||||
int FuzzerInitialize(int *argc, char ***argv)
|
||||
{
|
||||
b1 = BN_new();
|
||||
b2 = BN_new();
|
||||
b3 = BN_new();
|
||||
b4 = BN_new();
|
||||
b5 = BN_new();
|
||||
ctx = BN_CTX_new();
|
||||
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
|
||||
ERR_get_state();
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -41,6 +32,19 @@ int FuzzerTestOneInput(const uint8_t *buf, size_t len)
|
||||
int success = 0;
|
||||
size_t l1 = 0, l2 = 0, l3 = 0;
|
||||
int s1 = 0, s2 = 0, s3 = 0;
|
||||
BN_CTX *ctx;
|
||||
BIGNUM *b1;
|
||||
BIGNUM *b2;
|
||||
BIGNUM *b3;
|
||||
BIGNUM *b4;
|
||||
BIGNUM *b5;
|
||||
|
||||
b1 = BN_new();
|
||||
b2 = BN_new();
|
||||
b3 = BN_new();
|
||||
b4 = BN_new();
|
||||
b5 = BN_new();
|
||||
ctx = BN_CTX_new();
|
||||
|
||||
/* Divide the input into three parts, using the values of the first two
|
||||
* bytes to choose lengths, which generate b1, b2 and b3. Use three bits
|
||||
@ -91,16 +95,17 @@ int FuzzerTestOneInput(const uint8_t *buf, size_t len)
|
||||
|
||||
done:
|
||||
OPENSSL_assert(success);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void FuzzerCleanup(void)
|
||||
{
|
||||
BN_free(b1);
|
||||
BN_free(b2);
|
||||
BN_free(b3);
|
||||
BN_free(b4);
|
||||
BN_free(b5);
|
||||
BN_CTX_free(ctx);
|
||||
ERR_clear_error();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void FuzzerCleanup(void)
|
||||
{
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user