blob: 5e524f9720ffdc907edaae89750a46b4b3a93731 [file] [log] [blame]
// Copyright 2020 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.
#include <base/command_line.h>
#include <base/files/file_path.h>
#include <base/logging.h>
#include <base/optional.h>
#include <brillo/file_utils.h>
#include <brillo/syslog_logging.h>
#include "hwsec-test-utils/attestation_injected_keys/utility.h"
namespace {
constexpr char kLogToStderrSwitch[] = "log-to-stderr";
constexpr char kOutputFilePathSwitch[] = "output";
constexpr char kDefaultKeyDataPath[] = "/run/attestation/google_keys.data";
} // namespace
int main(int argc, char* argv[]) {
base::CommandLine::Init(argc, argv);
base::CommandLine* cl = base::CommandLine::ForCurrentProcess();
int flags = brillo::kLogToSyslog;
if (cl->HasSwitch(kLogToStderrSwitch)) {
flags |= brillo::kLogToStderr;
}
brillo::InitLog(flags);
std::string output_path = kDefaultKeyDataPath;
if (cl->HasSwitch(kOutputFilePathSwitch))
output_path = cl->GetSwitchValueASCII(kDefaultKeyDataPath);
std::string serialized;
if (!hwsec_test_utils::GenerateAttestationGoogleKeySet().SerializeToString(
&serialized)) {
LOG(ERROR) << ": Failed to generate the Google key file content.";
return 1;
}
// Write to file.
if (!brillo::WriteStringToFile(base::FilePath(output_path), serialized)) {
LOG(ERROR) << ": Failed to write Google key data.";
return 1;
}
return 0;
}