#include <openssl/mem.h> | |
#include <openssl/x509.h> | |
extern "C" int LLVMFuzzerTestOneInput(uint8_t *buf, size_t len) { | |
const uint8_t *bufp = buf; | |
X509 *x509 = d2i_X509(NULL, &bufp, len); | |
if (x509 != NULL) { | |
/* Extract the public key. */ | |
EVP_PKEY_free(X509_get_pubkey(x509)); | |
/* Reserialize the structure. */ | |
uint8_t *der = NULL; | |
i2d_X509(x509, &der); | |
OPENSSL_free(der); | |
} | |
X509_free(x509); | |
return 0; | |
} |