CCF
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
ccf::pal::snp Namespace Reference

Namespaces

namespace  ioctl6
 

Classes

struct  ACIReportEndorsements
 
struct  Attestation
 
class  AttestationInterface
 
struct  CPUID
 
struct  EndorsementEndpointsConfiguration
 
struct  EndorsementsServer
 
struct  Flags
 
struct  GuestPolicy
 
struct  HostPort
 
struct  PlatformInfo
 
struct  Signature
 
struct  TcbVersionMilanGenoa
 
struct  TcbVersionPolicy
 
struct  TcbVersionRaw
 
struct  TcbVersionTurin
 

Typedefs

using EndorsementsServers = std::vector< EndorsementsServer >
 
using AMDFamily = uint8_t
 
using AMDModel = uint8_t
 

Enumerations

enum class  SignatureAlgorithm : uint32_t { invalid = 0 , ecdsa_p384_sha384 = 1 }
 
enum  EndorsementsEndpointType { Azure = 0 , AMD = 1 , THIM = 2 }
 
enum class  ProductName { Milan , Genoa , Turin }
 

Functions

 DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS (TcbVersionPolicy)
 
 DECLARE_JSON_REQUIRED_FIELDS (TcbVersionPolicy)
 
 DECLARE_JSON_OPTIONAL_FIELDS (TcbVersionPolicy, fmc, boot_loader, tee, snp, microcode, hexstring)
 
void to_json (nlohmann::json &j, const TcbVersionRaw &tcb_version)
 
void from_json (const nlohmann::json &j, TcbVersionRaw &tcb_version_raw)
 
std::string schema_name (const TcbVersionRaw &tcb_version)
 
 DECLARE_JSON_TYPE (ACIReportEndorsements)
 
 DECLARE_JSON_REQUIRED_FIELDS_WITH_RENAMES (ACIReportEndorsements, cache_control, "cacheControl", vcek_cert, "vcekCert", certificate_chain, "certificateChain", tcbm, "tcbm")
 
 DECLARE_JSON_ENUM (EndorsementsEndpointType, {{EndorsementsEndpointType::Azure, "Azure"}, {EndorsementsEndpointType::AMD, "AMD"}, {EndorsementsEndpointType::THIM, "THIM"}})
 
 DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS (EndorsementsServer)
 
 DECLARE_JSON_REQUIRED_FIELDS (EndorsementsServer)
 
 DECLARE_JSON_OPTIONAL_FIELDS (EndorsementsServer, type, url, max_retries_count, max_client_response_size)
 
 DECLARE_JSON_TYPE (CPUID)
 
 DECLARE_JSON_REQUIRED_FIELDS (CPUID, stepping, base_model, base_family, extended_model, extended_family)
 
std::string to_string (ProductName product)
 
 DECLARE_JSON_ENUM (ProductName, { {ProductName::Milan, "Milan"}, {ProductName::Genoa, "Genoa"}, {ProductName::Turin, "Turin"}, })
 
ProductName get_sev_snp_product (AMDFamily family, AMDModel model)
 
ProductName get_sev_snp_product (const CPUID &cpuid)
 
std::string get_cpuid_of_snp_sev_product (ProductName product)
 

Variables

constexpr auto amd_milan_root_signing_public_key
 
constexpr auto amd_genoa_root_signing_public_key
 
constexpr auto amd_turin_root_signing_public_key
 
const std::map< ProductName, const char * > amd_root_signing_keys
 
constexpr size_t snp_tcb_version_size = 8
 

Typedef Documentation

◆ AMDFamily

using ccf::pal::snp::AMDFamily = typedef uint8_t

◆ AMDModel

using ccf::pal::snp::AMDModel = typedef uint8_t

◆ EndorsementsServers

Enumeration Type Documentation

◆ EndorsementsEndpointType

Enumerator
Azure 
AMD 
THIM 

◆ ProductName

enum class ccf::pal::snp::ProductName
strong
Enumerator
Milan 
Genoa 
Turin 

◆ SignatureAlgorithm

enum class ccf::pal::snp::SignatureAlgorithm : uint32_t
strong
Enumerator
invalid 
ecdsa_p384_sha384 

Function Documentation

◆ DECLARE_JSON_ENUM() [1/2]

ccf::pal::snp::DECLARE_JSON_ENUM ( EndorsementsEndpointType  ,
{{EndorsementsEndpointType::Azure, "Azure"}, {EndorsementsEndpointType::AMD, "AMD"}, {EndorsementsEndpointType::THIM, "THIM"}}   
)

◆ DECLARE_JSON_ENUM() [2/2]

ccf::pal::snp::DECLARE_JSON_ENUM ( ProductName  ,
{ {ProductName::Milan, "Milan"}, {ProductName::Genoa, "Genoa"}, {ProductName::Turin, "Turin"}, }   
)

◆ DECLARE_JSON_OPTIONAL_FIELDS() [1/2]

ccf::pal::snp::DECLARE_JSON_OPTIONAL_FIELDS ( EndorsementsServer  ,
type  ,
url  ,
max_retries_count  ,
max_client_response_size   
)

◆ DECLARE_JSON_OPTIONAL_FIELDS() [2/2]

ccf::pal::snp::DECLARE_JSON_OPTIONAL_FIELDS ( TcbVersionPolicy  ,
fmc  ,
boot_loader  ,
tee  ,
snp  ,
microcode  ,
hexstring   
)

◆ DECLARE_JSON_REQUIRED_FIELDS() [1/3]

ccf::pal::snp::DECLARE_JSON_REQUIRED_FIELDS ( CPUID  ,
stepping  ,
base_model  ,
base_family  ,
extended_model  ,
extended_family   
)

◆ DECLARE_JSON_REQUIRED_FIELDS() [2/3]

ccf::pal::snp::DECLARE_JSON_REQUIRED_FIELDS ( EndorsementsServer  )

◆ DECLARE_JSON_REQUIRED_FIELDS() [3/3]

ccf::pal::snp::DECLARE_JSON_REQUIRED_FIELDS ( TcbVersionPolicy  )

◆ DECLARE_JSON_REQUIRED_FIELDS_WITH_RENAMES()

ccf::pal::snp::DECLARE_JSON_REQUIRED_FIELDS_WITH_RENAMES ( ACIReportEndorsements  ,
cache_control  ,
"cacheControl"  ,
vcek_cert  ,
"vcekCert"  ,
certificate_chain  ,
"certificateChain"  ,
tcbm  ,
"tcbm"   
)

◆ DECLARE_JSON_TYPE() [1/2]

ccf::pal::snp::DECLARE_JSON_TYPE ( ACIReportEndorsements  )

◆ DECLARE_JSON_TYPE() [2/2]

ccf::pal::snp::DECLARE_JSON_TYPE ( CPUID  )

◆ DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS() [1/2]

ccf::pal::snp::DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS ( EndorsementsServer  )

◆ DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS() [2/2]

ccf::pal::snp::DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS ( TcbVersionPolicy  )

◆ from_json()

void ccf::pal::snp::from_json ( const nlohmann::json &  j,
TcbVersionRaw tcb_version_raw 
)
inline

◆ get_cpuid_of_snp_sev_product()

std::string ccf::pal::snp::get_cpuid_of_snp_sev_product ( ProductName  product)
inline

◆ get_sev_snp_product() [1/2]

ProductName ccf::pal::snp::get_sev_snp_product ( AMDFamily  family,
AMDModel  model 
)
inline

◆ get_sev_snp_product() [2/2]

ProductName ccf::pal::snp::get_sev_snp_product ( const CPUID cpuid)
inline

◆ schema_name()

std::string ccf::pal::snp::schema_name ( const TcbVersionRaw tcb_version)
inline

◆ to_json()

void ccf::pal::snp::to_json ( nlohmann::json &  j,
const TcbVersionRaw tcb_version 
)
inline

◆ to_string()

std::string ccf::pal::snp::to_string ( ProductName  product)
inline

Variable Documentation

◆ amd_genoa_root_signing_public_key

constexpr auto ccf::pal::snp::amd_genoa_root_signing_public_key
constexpr
Initial value:
=
R"(-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3Cd95S/uFOuRIskW9vz9
VDBF69NDQF79oRhL/L2PVQGhK3YdfEBgpF/JiwWFBsT/fXDhzA01p3LkcT/7Ldjc
RfKXjHl+0Qq/M4dZkh6QDoUeKzNBLDcBKDDGWo3v35NyrxbA1DnkYwUKU5AAk4P9
4tKXLp80oxt84ahyHoLmc/LqsGsp+oq1Bz4PPsYLwTG4iMKVaaT90/oZ4I8oibSr
u92vJhlqWO27d/Rxc3iUMyhNeGToOvgx/iUo4gGpG61NDpkEUvIzuKcaMx8IdTpW
g2DF6SwF0IgVMffnvtJmA68BwJNWo1E4PLJdaPfBifcJpuBFwNVQIPQEVX3aP89H
JSp8YbY9lySS6PlVEqTBBtaQmi4ATGmMR+n2K/e+JAhU2Gj7jIpJhOkdH9firQDn
mlA2SFfJ/Cc0mGNzW9RmIhyOUnNFoclmkRhl3/AQU5Ys9Qsan1jT/EiyT+pCpmnA
+y9edvhDCbOG8F2oxHGRdTBkylungrkXJGYiwGrR8kaiqv7NN8QhOBMqYjcbrkEr
0f8QMKklIS5ruOfqlLMCBw8JLB3LkjpWgtD7OpxkzSsohN47Uom86RY6lp72g8eX
HP1qYrnvhzaG1S70vw6OkbaaC9EjiH/uHgAJQGxon7u0Q7xgoREWA/e7JcBQwLg8
0Hq/sbRuqesxz7wBWSY254cCAwEAAQ==
-----END PUBLIC KEY-----
)"

◆ amd_milan_root_signing_public_key

constexpr auto ccf::pal::snp::amd_milan_root_signing_public_key
constexpr
Initial value:
=
R"(-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0Ld52RJOdeiJlqK2JdsV
mD7FktuotWwX1fNgW41XY9Xz1HEhSUmhLz9Cu9DHRlvgJSNxbeYYsnJfvyjx1MfU
0V5tkKiU1EesNFta1kTA0szNisdYc9isqk7mXT5+KfGRbfc4V/9zRIcE8jlHN61S
1ju8X93+6dxDUrG2SzxqJ4BhqyYmUDruPXJSX4vUc01P7j98MpqOS95rORdGHeI5
2Naz5m2B+O+vjsC060d37jY9LFeuOP4Meri8qgfi2S5kKqg/aF6aPtuAZQVR7u3K
FYXP59XmJgtcog05gmI0T/OitLhuzVvpZcLph0odh/1IPXqx3+MnjD97A7fXpqGd
/y8KxX7jksTEzAOgbKAeam3lm+3yKIcTYMlsRMXPcjNbIvmsBykD//xSniusuHBk
gnlENEWx1UcbQQrs+gVDkuVPhsnzIRNgYvM48Y+7LGiJYnrmE8xcrexekBxrva2V
9TJQqnN3Q53kt5viQi3+gCfmkwC0F0tirIZbLkXPrPwzZ0M9eNxhIySb2npJfgnq
z55I0u33wh4r0ZNQeTGfw03MBUtyuzGesGkcw+loqMaq1qR4tjGbPYxCvpCq7+Og
pCCoMNit2uLo9M18fHz10lOMT8nWAUvRZFzteXCm+7PHdYPlmQwUw3LvenJ/ILXo
QPHfbkH0CyPfhl1jWhJFZasCAwEAAQ==
-----END PUBLIC KEY-----
)"

◆ amd_root_signing_keys

const std::map<ProductName, const char*> ccf::pal::snp::amd_root_signing_keys
inline
Initial value:
{
{ProductName::Milan, amd_milan_root_signing_public_key},
{ProductName::Genoa, amd_genoa_root_signing_public_key},
}
constexpr auto amd_genoa_root_signing_public_key
Definition attestation_sev_snp.h:47
constexpr auto amd_milan_root_signing_public_key
Definition attestation_sev_snp.h:31

◆ amd_turin_root_signing_public_key

constexpr auto ccf::pal::snp::amd_turin_root_signing_public_key
constexpr
Initial value:
=
R"(-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwaAriB7EIuVc4ZB1wD3Y
fDxL+9eyS7+izm0Jj3W772NINCWl8Bj3w/JD2ZjmbRxWdIq/4d9iarCKorXloJUB
1jRdgxqccTx1aOoig4+2w1XhVVJT7K457wT5ZLNJgQaxqa9Etkwjd6+9sOhlCDE9
l43kQ0R2BikVJa/uyyVOSwEk5w5tXKOuG9jvq6QtAMJasW38wlqRDaKEGtZ9VUgG
on27ZuL4sTJuC/azz9/iQBw8kEilzOl95AiTkeY5jSEBDWbAqnZk5qlM7kISKG20
kgQm14mhNKDI2p2oua+zuAG7i52epoRF2GfU0TYk/yf+vCNB2tnechFQuP2e8bLk
95ZdqPi9/UWw4JXjtdEA4u2JYplSSUPQVAXKt6LVqujtJcM59JKr2u0XQ75KwxcM
p15gSXhBfInvPAwuAY4dEwwGqT8oIg4esPHwEsmChhYeDIxPG9R4fx9O0q6p8Gb+
HXlTiS47P9YNeOpidOUKzDl/S1OvyhDtSL8LJc24QATFydo/iD/KUdvFTRlD0crk
AMkZLoWQ8hLDGc6BZJXsdd7Zf2e4UW3tI/1oh/2t23Ot3zyhTcv5gDbABu0LjVe9
8uRnS15SMwK//lJt9e5BqKvgABkSoABf+B4VFtPVEX0ygrYaFaI9i5ABrxnVBmzX
pRb21iI1NlNCfOGUPIhVpWECAwEAAQ==
-----END PUBLIC KEY-----
)"

◆ snp_tcb_version_size

constexpr size_t ccf::pal::snp::snp_tcb_version_size = 8
constexpr