Tutorial: Full platform with traits¶
This walkthrough moves beyond a single component and uses the v2.x trait model to describe both platform facts and component details.
Canonical JSON¶
{
"PLATFORM": {
"TRAITS": [
{
"traitCategory": "2.23.133.19.2.1",
"traitRegistry": "2.23.133.18.3.3",
"utf8": "ASUSTeK COMPUTER INC."
},
{
"traitCategory": "2.23.133.19.2.2",
"traitRegistry": "2.23.133.18.3.3",
"utf8": "Zenbook UP6502ZA_Q529ZA"
},
{
"traitCategory": "2.23.133.19.2.4",
"traitRegistry": "2.23.133.18.3.3",
"utf8": "A3A2PI88M1789543"
}
]
},
"COMPONENTS": [
{
"COMPONENTCLASS": {
"COMPONENTCLASSREGISTRY": "2.23.133.18.3.3",
"COMPONENTCLASSVALUE": "0000810D"
},
"MANUFACTURER": "American Megatrends International, LLC.",
"MODEL": "UP6502ZA.305",
"REVISION": "0519"
},
{
"TRAITS": [
{
"TRAITREGISTRY": "2.23.133.18.3.5",
"COMPONENTCLASS": "02010400"
},
{
"traitCategory": "2.23.133.19.2.8",
"traitRegistry": "2.23.133.18.3.5",
"utf8": "1C5C:1C5C:ACE42E"
},
{
"traitCategory": "2.23.133.19.2.9",
"traitRegistry": "2.23.133.18.3.5",
"utf8": "HFM512GD3JX013N"
}
]
}
],
"PROPERTIES": []
}
Representative ASN.1¶
PlatformConfigurationV3 ::= SEQUENCE {
platformComponents SEQUENCE OF TraitMap,
platformProperties SEQUENCE OF PlatformPropertyV2 OPTIONAL
}
CLI¶
Use [componentswithtraits.json][res-test4-components-with-traits], [localhost-policyreference.json][res-different-policy], and [extentions.json][res-different-extensions]. Download them into your working directory, or substitute your own local paths.
bin/paccor certgen \
--serial 1891 \
--not-before 20240101 \
--not-after 20300101 \
--issuer-cert TestCA.cert.example.pem \
--holder-cert TCG_EK_ecc_p384_P-384_Test.pem \
--attributes-json localhost-policyreference.json \
--components-json componentswithtraits.json \
--extensions-json extentions.json \
--sig-profile rsa-sha256 \
--finalize \
--out full-platform-envelope.json
Notes¶
Keep the Traits page close by, and use the generated Hardware Manifest Fields and Component Fields pages when reviewing these manifests.