blob: 29ea12427797263227e8883f2a48215f1984acc9 [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 <string>
#include <base/at_exit.h>
#include <base/logging.h>
#include <brillo/flag_helper.h>
#include <brillo/syslog_logging.h>
#include "cryptohome/encrypted_reboot_vault/encrypted_reboot_vault.h"
int main(int argc, char* argv[]) {
DEFINE_string(action, "",
"Select action from {create, unlock, validate, "
"purge}");
base::AtExitManager at_exit;
brillo::FlagHelper::Init(argc, argv, "Chromium OS Reboot Vault Utility");
brillo::InitLog(brillo::kLogToStderr);
EncryptedRebootVault vault;
bool result = false;
if (FLAGS_action == "create")
result = vault.CreateVault();
else if (FLAGS_action == "unlock")
result = vault.UnlockVault();
else if (FLAGS_action == "validate")
result = vault.Validate();
else if (FLAGS_action == "purge")
result = vault.PurgeVault();
else
LOG(ERROR) << "Invalid action";
return result ? EXIT_SUCCESS : EXIT_FAILURE;
}