Make x509 and asn1 fuzzer reproducible
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> GH: #2683
This commit is contained in:
parent
644fb113a0
commit
b534df96c9
2 changed files with 24 additions and 0 deletions
12
fuzz/asn1.c
12
fuzz/asn1.c
|
@ -28,8 +28,14 @@
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
#include <openssl/cms.h>
|
#include <openssl/cms.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
|
#include <openssl/rand.h>
|
||||||
#include "fuzzer.h"
|
#include "fuzzer.h"
|
||||||
|
|
||||||
|
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
||||||
|
extern int rand_predictable;
|
||||||
|
#endif
|
||||||
|
#define ENTROPY_NEEDED 32
|
||||||
|
|
||||||
static ASN1_ITEM_EXP *item_type[] = {
|
static ASN1_ITEM_EXP *item_type[] = {
|
||||||
ASN1_ITEM_ref(ACCESS_DESCRIPTION),
|
ASN1_ITEM_ref(ACCESS_DESCRIPTION),
|
||||||
#ifndef OPENSSL_NO_RFC3779
|
#ifndef OPENSSL_NO_RFC3779
|
||||||
|
@ -210,6 +216,12 @@ int FuzzerInitialize(int *argc, char ***argv)
|
||||||
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
|
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
|
||||||
ERR_get_state();
|
ERR_get_state();
|
||||||
CRYPTO_free_ex_index(0, -1);
|
CRYPTO_free_ex_index(0, -1);
|
||||||
|
RAND_add("", 1, ENTROPY_NEEDED);
|
||||||
|
RAND_status();
|
||||||
|
|
||||||
|
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
||||||
|
rand_predictable = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
12
fuzz/x509.c
12
fuzz/x509.c
|
@ -11,13 +11,25 @@
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/bio.h>
|
#include <openssl/bio.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
|
#include <openssl/rand.h>
|
||||||
#include "fuzzer.h"
|
#include "fuzzer.h"
|
||||||
|
|
||||||
|
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
||||||
|
extern int rand_predictable;
|
||||||
|
#endif
|
||||||
|
#define ENTROPY_NEEDED 32
|
||||||
|
|
||||||
int FuzzerInitialize(int *argc, char ***argv)
|
int FuzzerInitialize(int *argc, char ***argv)
|
||||||
{
|
{
|
||||||
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
|
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
|
||||||
ERR_get_state();
|
ERR_get_state();
|
||||||
CRYPTO_free_ex_index(0, -1);
|
CRYPTO_free_ex_index(0, -1);
|
||||||
|
RAND_add("", 1, ENTROPY_NEEDED);
|
||||||
|
RAND_status();
|
||||||
|
|
||||||
|
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
||||||
|
rand_predictable = 1;
|
||||||
|
#endif
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue