blob: d5595e6daef5aec13cb87f1024b72376f40aeb7c [file] [log] [blame]
// Copyright 2021 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef U2FD_FUZZERS_FUZZED_ALLOWLISTING_UTIL_FACTORY_H_
#define U2FD_FUZZERS_FUZZED_ALLOWLISTING_UTIL_FACTORY_H_
#include <memory>
#include <attestation/proto_bindings/interface.pb.h>
#include <base/optional.h>
#include <fuzzer/FuzzedDataProvider.h>
#include "u2fd/allowlisting_util.h"
namespace u2f {
// The |FuzzedDataProvider| and this class must outlive the created
// |AllowlistingUtil|.
class FuzzedAllowlistingUtilFactory {
public:
explicit FuzzedAllowlistingUtilFactory(FuzzedDataProvider* data_provider)
: data_provider_(data_provider) {}
std::unique_ptr<u2f::AllowlistingUtil> CreateAllowlistingUtil();
private:
base::Optional<attestation::GetCertifiedNvIndexReply> GetCertifiedG2fCert(
int g2f_cert_size);
FuzzedDataProvider* const data_provider_;
};
} // namespace u2f
#endif // U2FD_FUZZERS_FUZZED_ALLOWLISTING_UTIL_FACTORY_H_