// Copyright 2019 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.
//
// Fuzzer for PasswordAuthorizationDelegate.

#include <base/logging.h>
#include <fuzzer/FuzzedDataProvider.h>

#include "trunks/password_authorization_delegate.h"

struct Environment {
  Environment() {
    logging::SetMinLogLevel(logging::LOG_FATAL);  // Disable logging.
  }
};

extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
  static Environment env;

  FuzzedDataProvider data_provider(data, size);
  trunks::PasswordAuthorizationDelegate delegate(
      data_provider.ConsumeRandomLengthString(
          sizeof(trunks::TPM2B_DIGEST().buffer)));
  std::string auth;
  constexpr int kMaxRandomAuthLength = 1024;
  // All the input params here are ignored, only the password in the constructor
  // actually matters.
  delegate.GetCommandAuthorization("", false, false, &auth);

  // The first parameter is ignored.
  delegate.CheckResponseAuthorization(
      "", data_provider.ConsumeRandomLengthString(kMaxRandomAuthLength));
  return 0;
}
