| // Copyright 2022 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef LIBHWSEC_STRUCTURES_PERMISSION_H_ | |
| #define LIBHWSEC_STRUCTURES_PERMISSION_H_ | |
| #include <optional> | |
| #include <brillo/secure_blob.h> | |
| #include "libhwsec/structures/device_config.h" | |
| namespace hwsec { | |
| // The way to provide the permission inside the command. | |
| // For TPM1.2, we only support auth value. | |
| // For TPM2.0, we supported both methods, but some commands may not work with | |
| // the auth value mode. (e.g. KeyManagement::GetPolicyEndorsementKey) | |
| enum class PermissionType { | |
| kAuthValue, | |
| kPolicyOR, | |
| }; | |
| struct Permission { | |
| // The default permission mode is "auth value" | |
| PermissionType type = PermissionType::kAuthValue; | |
| std::optional<brillo::SecureBlob> auth_value; | |
| }; | |
| } // namespace hwsec | |
| #endif // LIBHWSEC_STRUCTURES_PERMISSION_H_ |