1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
// Providing docstrings for each constant would be a lot of work, so
// allow missing docs. Each type-level doc links to the relevant spec to
// provide more info.
//
// Setting this at the module level so that we don't have to write it
// above each constant. That's also why these enums are in a separate
// module instead of `super`, since we don't want to allow missing docs
// too broadly.
#![allow(missing_docs)]
newtype_enum! {
/// Algorithm identifiers.
///
/// These values are defined in the [TCG Algorithm Registry].
///
/// [TCG Algorithm Registry]: https://trustedcomputinggroup.org/resource/tcg-algorithm-registry/
pub enum AlgorithmId: u16 => {
ERROR = 0x0000,
RSA = 0x0001,
TDES = 0x0003,
SHA1 = 0x0004,
HMAC = 0x0005,
AES = 0x0006,
MGF1 = 0x0007,
KEYED_HASH = 0x0008,
XOR = 0x000a,
SHA256 = 0x000b,
SHA384 = 0x000c,
SHA512 = 0x000d,
NULL = 0x0010,
SM3_256 = 0x0012,
SM4 = 0x0013,
// TODO: there are a bunch more, but the above list is probably
// more than sufficient for real devices.
}
}
newtype_enum! {
/// Event types stored in the TPM event log. The event type defines
/// which structure type is stored in the event data.
///
/// For details of each variant, see the [TCG PC Client Platform
/// Firmware Protocol Specification][spec], in particular the Events
/// table in the Event Logging chapter.
///
/// [spec]: https://trustedcomputinggroup.org/resource/pc-client-specific-platform-firmware-profile-specification/
pub enum EventType: u32 => {
PREBOOT_CERT = 0x0000_0000,
POST_CODE = 0x0000_0001,
UNUSED = 0x0000_0002,
NO_ACTION = 0x0000_0003,
SEPARATOR = 0x0000_0004,
ACTION = 0x0000_0005,
EVENT_TAG = 0x0000_0006,
CRTM_CONTENTS = 0x0000_0007,
CRTM_VERSION = 0x0000_0008,
CPU_MICROCODE = 0x0000_0009,
PLATFORM_CONFIG_FLAGS = 0x0000_000a,
TABLE_OF_DEVICES = 0x0000_000b,
COMPACT_HASH = 0x0000_000c,
IPL = 0x0000_000d,
IPL_PARTITION_DATA = 0x0000_000e,
NONHOST_CODE = 0x0000_000f,
NONHOST_CONFIG = 0x0000_0010,
NONHOST_INFO = 0x0000_0011,
OMIT_BOOT_DEVICE_EVENTS = 0x0000_0012,
EFI_EVENT_BASE = 0x8000_0000,
EFI_VARIABLE_DRIVER_CONFIG = 0x8000_0001,
EFI_VARIABLE_BOOT = 0x8000_0002,
EFI_BOOT_SERVICES_APPLICATION = 0x8000_0003,
EFI_BOOT_SERVICES_DRIVER = 0x8000_0004,
EFI_RUNTIME_SERVICES_DRIVER = 0x8000_0005,
EFI_GPT_EVENT = 0x8000_0006,
EFI_ACTION = 0x8000_0007,
EFI_PLATFORM_FIRMWARE_BLOB = 0x8000_0008,
EFI_HANDOFF_TABLES = 0x8000_0009,
EFI_PLATFORM_FIRMWARE_BLOB2 = 0x8000_000a,
EFI_HANDOFF_TABLES2 = 0x8000_000b,
EFI_VARIABLE_BOOT2 = 0x8000_000c,
EFI_HCRTM_EVENT = 0x8000_0010,
EFI_VARIABLE_AUTHORITY = 0x8000_00e0,
EFI_SPDM_FIRMWARE_BLOB = 0x8000_00e1,
EFI_SPDM_FIRMWARE_CONFIG = 0x8000_00e2,
}
}