| #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; | |
| } |