diff options
author | Bob Beck <bbe@google.com> | 2023-07-25 10:07:38 -0700 |
---|---|---|
committer | Boringssl LUCI CQ <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-08-17 16:12:42 +0000 |
commit | 257bfaa3294d2a7aa01ebdbd3e0f9eeea0071e01 (patch) | |
tree | 300d858dc6bfddcb9b88b733d9b990d89aa31ea0 /fuzz/verify_name_match_fuzzer.cc | |
parent | 9f4cad2208b703350fe11d9469125dad55c34d30 (diff) | |
download | boringssl-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.cc | 37 |
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; +} |