blob: ae8cb911a315242de4fe5e3faa69461e8161fe2d [file] [log] [blame]
// Copyright 2022 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 CRYPTOHOME_ERROR_ACTION_H_
#define CRYPTOHOME_ERROR_ACTION_H_
#include <set>
namespace cryptohome {
namespace error {
// Note that entries in ErrorAction may be logged in Cryptohome*Error classes,
// and as such should not be changed without removing the logging mentioned
// above.
enum class ErrorAction {
// This entry is not used.
kNull = 0,
// The entries below are specific actions on the Chromium side. See
// PrimaryAction enum in system_api/dbus/cryptohome/UserDataAuth.proto for
// documentation on each of the enums below.
kCreateRequired = 301,
kNotifyOldEncryption,
kResumePreviousMigration,
kTpmUpdateRequired,
kTpmNeedsReboot,
kTpmLockout,
kIncorrectAuth,
// The entries below are generic possible resolution to an issue. See
// PossibleAction enum in system_api/dbus/cryptohome/UserDataAuth.proto for
// documentation on each of the enums below.
kRetry = 501,
kReboot,
kAuth,
kDeleteVault,
kPowerwash,
kDevCheckUnexpectedState,
kFatal
};
using ErrorActionSet = std::set<ErrorAction>;
inline ErrorActionSet NoErrorAction() {
return {};
}
} // namespace error
} // namespace cryptohome
#endif // CRYPTOHOME_ERROR_ACTION_H_