1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace component_integrity 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class ComponentIntegrityType{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous SPDM, 13853c0dc5SEd Tanous TPM, 14dd5c81e9SGunnar Mills TCM, 15dd5c81e9SGunnar Mills TPCM, 16853c0dc5SEd Tanous OEM, 17853c0dc5SEd Tanous }; 18853c0dc5SEd Tanous 19853c0dc5SEd Tanous enum class MeasurementSpecification{ 20853c0dc5SEd Tanous Invalid, 21853c0dc5SEd Tanous DMTF, 22853c0dc5SEd Tanous }; 23853c0dc5SEd Tanous 24853c0dc5SEd Tanous enum class SPDMmeasurementSummaryType{ 25853c0dc5SEd Tanous Invalid, 26853c0dc5SEd Tanous TCB, 27853c0dc5SEd Tanous All, 28853c0dc5SEd Tanous }; 29853c0dc5SEd Tanous 30853c0dc5SEd Tanous enum class DMTFmeasurementTypes{ 31853c0dc5SEd Tanous Invalid, 32853c0dc5SEd Tanous ImmutableROM, 33853c0dc5SEd Tanous MutableFirmware, 34853c0dc5SEd Tanous HardwareConfiguration, 35853c0dc5SEd Tanous FirmwareConfiguration, 36853c0dc5SEd Tanous MutableFirmwareVersion, 37853c0dc5SEd Tanous MutableFirmwareSecurityVersionNumber, 38853c0dc5SEd Tanous MeasurementManifest, 39853c0dc5SEd Tanous }; 40853c0dc5SEd Tanous 41853c0dc5SEd Tanous enum class VerificationStatus{ 42853c0dc5SEd Tanous Invalid, 43853c0dc5SEd Tanous Success, 44853c0dc5SEd Tanous Failed, 45853c0dc5SEd Tanous }; 46853c0dc5SEd Tanous 47853c0dc5SEd Tanous enum class SecureSessionType{ 48853c0dc5SEd Tanous Invalid, 49853c0dc5SEd Tanous Plain, 50853c0dc5SEd Tanous EncryptedAuthenticated, 51853c0dc5SEd Tanous AuthenticatedOnly, 52853c0dc5SEd Tanous }; 53853c0dc5SEd Tanous 54853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ComponentIntegrityType, { 55853c0dc5SEd Tanous {ComponentIntegrityType::Invalid, "Invalid"}, 56853c0dc5SEd Tanous {ComponentIntegrityType::SPDM, "SPDM"}, 57853c0dc5SEd Tanous {ComponentIntegrityType::TPM, "TPM"}, 58dd5c81e9SGunnar Mills {ComponentIntegrityType::TCM, "TCM"}, 59dd5c81e9SGunnar Mills {ComponentIntegrityType::TPCM, "TPCM"}, 60853c0dc5SEd Tanous {ComponentIntegrityType::OEM, "OEM"}, 61853c0dc5SEd Tanous }); 62853c0dc5SEd Tanous 63853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MeasurementSpecification, { 64853c0dc5SEd Tanous {MeasurementSpecification::Invalid, "Invalid"}, 65853c0dc5SEd Tanous {MeasurementSpecification::DMTF, "DMTF"}, 66853c0dc5SEd Tanous }); 67853c0dc5SEd Tanous 68853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SPDMmeasurementSummaryType, { 69853c0dc5SEd Tanous {SPDMmeasurementSummaryType::Invalid, "Invalid"}, 70853c0dc5SEd Tanous {SPDMmeasurementSummaryType::TCB, "TCB"}, 71853c0dc5SEd Tanous {SPDMmeasurementSummaryType::All, "All"}, 72853c0dc5SEd Tanous }); 73853c0dc5SEd Tanous 74853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DMTFmeasurementTypes, { 75853c0dc5SEd Tanous {DMTFmeasurementTypes::Invalid, "Invalid"}, 76853c0dc5SEd Tanous {DMTFmeasurementTypes::ImmutableROM, "ImmutableROM"}, 77853c0dc5SEd Tanous {DMTFmeasurementTypes::MutableFirmware, "MutableFirmware"}, 78853c0dc5SEd Tanous {DMTFmeasurementTypes::HardwareConfiguration, "HardwareConfiguration"}, 79853c0dc5SEd Tanous {DMTFmeasurementTypes::FirmwareConfiguration, "FirmwareConfiguration"}, 80853c0dc5SEd Tanous {DMTFmeasurementTypes::MutableFirmwareVersion, "MutableFirmwareVersion"}, 81853c0dc5SEd Tanous {DMTFmeasurementTypes::MutableFirmwareSecurityVersionNumber, "MutableFirmwareSecurityVersionNumber"}, 82853c0dc5SEd Tanous {DMTFmeasurementTypes::MeasurementManifest, "MeasurementManifest"}, 83853c0dc5SEd Tanous }); 84853c0dc5SEd Tanous 85853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(VerificationStatus, { 86853c0dc5SEd Tanous {VerificationStatus::Invalid, "Invalid"}, 87853c0dc5SEd Tanous {VerificationStatus::Success, "Success"}, 88853c0dc5SEd Tanous {VerificationStatus::Failed, "Failed"}, 89853c0dc5SEd Tanous }); 90853c0dc5SEd Tanous 91853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SecureSessionType, { 92853c0dc5SEd Tanous {SecureSessionType::Invalid, "Invalid"}, 93853c0dc5SEd Tanous {SecureSessionType::Plain, "Plain"}, 94853c0dc5SEd Tanous {SecureSessionType::EncryptedAuthenticated, "EncryptedAuthenticated"}, 95853c0dc5SEd Tanous {SecureSessionType::AuthenticatedOnly, "AuthenticatedOnly"}, 96853c0dc5SEd Tanous }); 97853c0dc5SEd Tanous 98853c0dc5SEd Tanous } 99853c0dc5SEd Tanous // clang-format on 100