aboutsummaryrefslogtreecommitdiff
path: root/fuzz/verify_name_match_fuzzer.cc
diff options
context:
space:
mode:
authorBob Beck <bbe@google.com>2023-07-25 10:07:38 -0700
committerBoringssl LUCI CQ <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-08-17 16:12:42 +0000
commit257bfaa3294d2a7aa01ebdbd3e0f9eeea0071e01 (patch)
tree300d858dc6bfddcb9b88b733d9b990d89aa31ea0 /fuzz/verify_name_match_fuzzer.cc
parent9f4cad2208b703350fe11d9469125dad55c34d30 (diff)
downloadboringssl-257bfaa3294d2a7aa01ebdbd3e0f9eeea0071e01.zip
boringssl-257bfaa3294d2a7aa01ebdbd3e0f9eeea0071e01.tar.gz
boringssl-257bfaa3294d2a7aa01ebdbd3e0f9eeea0071e01.tar.bz2
Move the fuzzers into the fuzz directory and make them build.
Change-Id: I9346a4bf48d756da254dc27842cd645a3a69f847 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/62045 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: David Benjamin <davidben@google.com>
Diffstat (limited to 'fuzz/verify_name_match_fuzzer.cc')
-rw-r--r--fuzz/verify_name_match_fuzzer.cc37
1 files changed, 37 insertions, 0 deletions
diff --git a/fuzz/verify_name_match_fuzzer.cc b/fuzz/verify_name_match_fuzzer.cc
new file mode 100644
index 0000000..e5e2c21
--- /dev/null
+++ b/fuzz/verify_name_match_fuzzer.cc
@@ -0,0 +1,37 @@
+// Copyright 2016 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "../pki/verify_name_match.h"
+
+#include <stddef.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <fuzzer/FuzzedDataProvider.h>
+
+#include <vector>
+
+#include "../pki/input.h"
+
+// Entry point for LibFuzzer.
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+
+ // Intentionally using uint16_t here to avoid empty |second_part|.
+ size_t first_part_size = fuzzed_data.ConsumeIntegral<uint16_t>();
+ std::vector<uint8_t> first_part =
+ fuzzed_data.ConsumeBytes<uint8_t>(first_part_size);
+ std::vector<uint8_t> second_part =
+ fuzzed_data.ConsumeRemainingBytes<uint8_t>();
+
+ bssl::der::Input in1(first_part);
+ bssl::der::Input in2(second_part);
+ bool match = bssl::VerifyNameMatch(in1, in2);
+ bool reverse_order_match = bssl::VerifyNameMatch(in2, in1);
+ // Result should be the same regardless of argument order.
+ if (match != reverse_order_match) {
+ abort();
+ }
+ return 0;
+}