aboutsummaryrefslogtreecommitdiffstats
path: root/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/fuzz/cert.cc
diff options
context:
space:
mode:
Diffstat (limited to 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/fuzz/cert.cc')
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/fuzz/cert.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/fuzz/cert.cc b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/fuzz/cert.cc
new file mode 100644
index 000000000..b27237b8d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/fuzz/cert.cc
@@ -0,0 +1,33 @@
+/* Copyright (c) 2016, Google Inc.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
+
+#include <openssl/err.h>
+#include <openssl/mem.h>
+#include <openssl/x509.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len) {
+ X509 *x509 = d2i_X509(NULL, &buf, 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);
+ ERR_clear_error();
+ return 0;
+}