Skip to content

Commit 7fa7912

Browse files
committed
[docs] Middleware editorial updates and remove RSA from SPDM.
Updates to the middleware section to make the document more consistent. Removed RSA algos from SPDM. Signed-off-by: Miguel Osorio <miguelosorio@google.com>
1 parent 581a180 commit 7fa7912

File tree

3 files changed

+161
-149
lines changed

3 files changed

+161
-149
lines changed

docs/src/specification/middleware/mctp.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ The *minimum required* MCTP version is 1.3.1 (DSP0236.) Support for MCTP 2.0.0
1111
## Required Bindings
1212

1313
Currently only one binding is *mandatory* in the OpenPRoT specification, though
14-
this will change in future versions. 1. . MCTP over SMBus (DSP0237, 1.2.0)
14+
this will change in future versions.
15+
16+
1. MCTP over SMBus (DSP0237, 1.2.0)
1517

1618
## Recommended Bindings
1719

Lines changed: 49 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,72 @@
1-
## PLDM
1+
# PLDM
22

3-
PLDM OpenPRoT devices will support Platform Level Data Model as a responder for
4-
FW updates and platform monitoring. This means that OpenPRoT will respond to
5-
Type 0, Type 2 and Type 5 as listed in Table 1\.
3+
OpenPRoT devices support the Platform Level Data Model (PLDM) as a responder for
4+
firmware updates and platform monitoring. This entails responding to messages of
5+
Type 0 (Base), Type 2 (Platform Monitoring and Control), and Type 5 (Firmware
6+
Update).
67

7-
## PLDM Base Specifications for Supported Types {#pldm-base-specifications-for-supported-types}
8+
## PLDM Base Specifications
89

910
### Type 0 - Base Specification
1011

11-
* Purpose: Base Specification and Initialization
12-
* Version: 1.2.0
13-
* [Platform Level Data Model (PLDM) Base Specification](https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1.2.0.pdf)
12+
- **Purpose**: Base Specification and Initialization
13+
- **Version**: 1.2.0
14+
- **Specification**:
15+
[PLDM Base Specification](https://www.dmtf.org/sites/default/files/standards/documents/DSP0240_1.2.0.pdf)
1416

15-
All responders shall implement the four (4) *spec mandatory* PLDM commands:
17+
All responders must implement the following mandatory PLDM commands:
1618

17-
* `GetTID`
18-
* `GetPLDMVersion`
19-
* `GetPLDMTypes`
20-
* `GetPLDMCommands`
19+
- `GetTID`
20+
- `GetPLDMVersion`
21+
- `GetPLDMTypes`
22+
- `GetPLDMCommands`
2123

22-
All responders shall implement the following *optional* commands
24+
All responders must also implement the following optional command:
2325

24-
* `SetTID`
26+
- `SetTID`
2527

2628
### Type 2 - Platform Monitoring and Control
2729

28-
* Purpose: Platform Monitoring and Control
29-
* Version: 1.3.0
30-
* [Platform Level Data Model (PLDM) for Platform Monitoring and Control
31-
Specification](https://www.dmtf.org/sites/default/files/standards/documents/DSP0248_1.3.0.pdf)
30+
- **Purpose**: Platform Monitoring and Control
31+
- **Version**: 1.3.0
32+
- **Specification**:
33+
[PLDM for Platform Monitoring and Control](https://www.dmtf.org/sites/default/files/standards/documents/DSP0248_1.3.0.pdf)
3234

33-
OpenPRoT will support PLDM Monitoring and Control by providing a PDR, Platform
34-
Descriptor Record, repository to a prospective PDLM Manageability Access Point
35-
Discovery Agent’s primary PDR. These PDRs will be defined via Json files and
36-
included into OpenPRoT at build time. OpenPRoT will not support any dynamic
37-
adjustments to the PDR repository. These PDRs should be limited to security
38-
features and as such, will only support PLDM sensors and not effectors. PLDM
39-
Monitoring PDRs
35+
OpenPRoT supports PLDM Monitoring and Control by providing a Platform Descriptor
36+
Record (PDR) repository to a prospective PLDM manageability access point
37+
discovery agent. These PDRs are defined in JSON files and included in OpenPRoT
38+
at build time, with no support for dynamic adjustments. The PDRs are limited to
39+
security features and will only support PLDM sensors, not effectors.
4040

41-
* Terminus Locator PDR
42-
* Numeric Sensor PDR
41+
#### PLDM Monitoring PDRs
42+
43+
- Terminus Locator PDR
44+
- Numeric Sensor PDR
4345

4446
### Type 5 - Firmware Update
4547

46-
* Purpose: Firmware Update
47-
* Version: 1.3.0
48-
* [Platform Level Data Model (PLDM) for Firmware Update Specification](https://www.dmtf.org/sites/default/files/standards/documents/DSP0267_1.3.0.pdf)
48+
- **Purpose**: Firmware Update
49+
- **Version**: 1.3.0
50+
- **Specification**:
51+
[PLDM for Firmware Update](https://www.dmtf.org/sites/default/files/standards/documents/DSP0267_1.3.0.pdf)
4952

50-
Required Inventory Commands:
53+
#### Required Inventory Commands
5154

52-
* `QueryDeviceIdentifiers`
53-
* `GetFirmwareParameters`
55+
- `QueryDeviceIdentifiers`
56+
- `GetFirmwareParameters`
5457

55-
Required Update Commands:
58+
#### Required Update Commands
5659

57-
* `RequestFirmwareUpdate`
58-
* `PassComponentTable`
59-
* `UpdateComponent`
60-
* `TransferComplete`
61-
* `VerifyComplete`
62-
* `ApplyComplete`
63-
* `ActivateFirmware`
64-
* `GetStatus`
60+
- `RequestFirmwareUpdate`
61+
- `PassComponentTable`
62+
- `UpdateComponent`
63+
- `TransferComplete`
64+
- `VerifyComplete`
65+
- `ApplyComplete`
66+
- `ActivateFirmware`
67+
- `GetStatus`
6568

66-
All responders shall implement the following optional commands
69+
All responders must also implement the following optional commands:
6770

68-
* `GetPackageData`
69-
* `GetPackageMetaData`
71+
- `GetPackageData`
72+
- `GetPackageMetaData`

docs/src/specification/middleware/spdm.md

Lines changed: 109 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -3,109 +3,116 @@
33
SPDM OpenPRoT devices shall use SPDM to conduct all attestation operations both
44
with downstream devices (as a requester) and upstream devices (as a responder.)
55
Devices may choose to act as a requester, a responder, or both. All SPDM version
6-
references assume alignment with the most recently released versions of the spec
7-
(i.e. 1.2.1, 1.3.2.)
8-
9-
1. [OCP Attestation Spec 1.1](https://github.com/google/spdm-accelerator-requirement/blob/main/OCP-Attestation-v1.1.docx.pdf)
10-
Alignment OpenPRoT implementations of SPDM must align with the OCP
11-
Attestation Spec 1.1, linked above. All following sections have taken this
12-
spec into account. Please refer to that specification for details on
13-
specific requirements.
14-
2. Baseline Version OpenPRoT sets a baseline version of SPDM 1.2.
15-
3. Requesters OpenPRoT devices implementing an SPDM requester will implement
16-
support for SPDM 1.2 minimum and may implement SPDM 1.3 and up. The minimum
17-
and maximum supported SPDM versions can be changed if support for other
18-
versions is not necessary.
19-
4. Responders OpenPRoT devices implementing an SPDM responder must implement
20-
support for SPDM 1.2 or higher. Responders may only report (via
21-
`GET_VERSION`) a single supported version of SPDM.
22-
5. Required Commands All requesters and responders shall implement the four (4)
23-
*spec mandatory* SPDM commands:
24-
25-
* `GET_VERSION`
26-
27-
* `GET_CAPABILITIES`
28-
29-
* `NEGOTIATE_ALGORITHMS`
30-
31-
* `RESPOND_IF_READY`
32-
33-
All requesters and responders shall implement the following *spec optional*
34-
commands:
35-
36-
* `GET_DIGESTS`
37-
* `GET_CERTIFICATE`
38-
* `CHALLENGE`
39-
* `GET_MEASUREMENTS`
40-
* `GET_CSR`
41-
* `SET_CERTIFICATE`
42-
* `CHUNK_SEND`
43-
* `CHUNK_GET`
44-
45-
Requesters and responders may implement the following recommended *spec
46-
optional* commands:
47-
48-
* Events
49-
* `GET_SUPPORTED_EVENT_TYPES`
50-
* `SUBSCRIBE_EVENT_TYPES`
51-
* `SEND_EVENT`
52-
* Encapsulated requests
53-
* `GET_ENCAPSULATED_REQUEST`
54-
* `DELIVER_ENCAPSULATED_RESPONSE`
55-
* `GET_KEY_PAIR_INFO`
56-
* `SET_KEY_PAIR_INFO`
57-
* `KEY_UPDATE`
58-
* `KEY_EXCHANGE`
59-
* `FINISH`
60-
* `PSK_EXCHANGE`
61-
* `PSK_FINISH`
62-
63-
All other *spec optional* commands may be implemented as the integrator sees
64-
fit for their use case.
65-
66-
6. Required Capabilities
67-
68-
* `CERT_CAP` (required for `GET_CERTIFICATE`)
69-
* `CHAL_CAP` (required for `CHALLENGE`)
70-
* `MEAS_CAP` (required for `GET_MEASUREMENT`)
71-
* `MEAS_FRESH_CAP`
72-
73-
7. Algorithms The following cryptographic algorithms are accepted for use
74-
within OpenPRoT, but may be further constrained by hardware capabilities. At
75-
a minimum OpenPRoT hardware must support:
6+
references assume alignment with the most recently released versions of the spec.
767

8+
## OCP Attestation Spec 1.1 Alignment
9+
10+
OpenPRoT implementations of SPDM must align with the
11+
[OCP Attestation Spec 1.1](https://github.com/google/spdm-accelerator-requirement/blob/main/OCP-Attestation-v1.1.docx.pdf).
12+
All following sections have taken this spec into account. Please refer to that
13+
specification for details on specific requirements.
14+
15+
## Baseline Version
16+
17+
OpenPRoT sets a baseline version of SPDM 1.2.
18+
19+
## Requesters
20+
21+
OpenPRoT devices implementing an SPDM requester will implement support for SPDM
22+
1.2 minimum and may implement SPDM 1.3 and up. The minimum and maximum supported
23+
SPDM versions can be changed if support for other versions is not necessary.
24+
25+
## Responders
26+
27+
OpenPRoT devices implementing an SPDM responder must implement support for SPDM
28+
1.2 or higher. Responders may only report (via `GET_VERSION`) a single supported
29+
version of SPDM.
30+
31+
## Required Commands
32+
33+
All requesters and responders shall implement the four (4) *spec mandatory* SPDM
34+
commands:
35+
36+
* `GET_VERSION`
37+
* `GET_CAPABILITIES`
38+
* `NEGOTIATE_ALGORITHMS`
39+
* `RESPOND_IF_READY`
40+
41+
All requesters and responders shall implement the following *spec optional*
42+
commands:
43+
44+
* `GET_DIGESTS`
45+
* `GET_CERTIFICATE`
46+
* `CHALLENGE`
47+
* `GET_MEASUREMENTS`
48+
* `GET_CSR`
49+
* `SET_CERTIFICATE`
50+
* `CHUNK_SEND`
51+
* `CHUNK_GET`
52+
53+
Requesters and responders may implement the following recommended *spec
54+
optional* commands:
55+
56+
* Events
57+
* `GET_SUPPORTED_EVENT_TYPES`
58+
* `SUBSCRIBE_EVENT_TYPES`
59+
* `SEND_EVENT`
60+
* Encapsulated requests
61+
* `GET_ENCAPSULATED_REQUEST`
62+
* `DELIVER_ENCAPSULATED_RESPONSE`
63+
* `GET_KEY_PAIR_INFO`
64+
* `SET_KEY_PAIR_INFO`
65+
* `KEY_UPDATE`
66+
* `KEY_EXCHANGE`
67+
* `FINISH`
68+
* `PSK_EXCHANGE`
69+
* `PSK_FINISH`
70+
71+
All other *spec optional* commands may be implemented as the integrator sees fit
72+
for their use case.
73+
74+
## Required Capabilities
75+
76+
* `CERT_CAP` (required for `GET_CERTIFICATE`)
77+
* `CHAL_CAP` (required for `CHALLENGE`)
78+
* `MEAS_CAP` (required for `GET_MEASUREMENT`)
79+
* `MEAS_FRESH_CAP`
80+
81+
## Algorithms
82+
83+
The following cryptographic algorithms are accepted for use within OpenPRoT, but
84+
may be further constrained by hardware capabilities. At a minimum OpenPRoT
85+
hardware must support:
86+
87+
* `TPM_ALG_ECDSA_ECC_NIST_P384`
88+
* `TPM_ALG_SHA3_384`
89+
90+
All others are optional and may be used if supported.
91+
92+
* Asymmetric
93+
* `TPM_ALG_ECDSA_ECC_NIST_P256`
7794
* `TPM_ALG_ECDSA_ECC_NIST_P384`
95+
* `EdDSA ed25519`
96+
* `EdDSA ed448`
97+
* `TPM_ALG_SHA_384`
98+
* Hash
99+
* `TPM_ALG_SHA_256`
100+
* `TPM_ALG_SHA_384`
101+
* `TPM_ALG_SHA_512`
102+
* `TPM_ALG_SHA3_256`
78103
* `TPM_ALG_SHA3_384`
104+
* `TPM_ALG_SHA3_512`
105+
* AEAD Cipher
106+
* `AES-128-GCM`
107+
* `AES-256-GCM`
108+
* `CHACHA20_POLY1305`
109+
110+
## Attestation Report Format
111+
112+
Devices will support either RATS EAT (as CWT) or an SPDM evidence manifest TOC
113+
per the *TCG DICE Concise Evidence for SPDM* specification.
114+
115+
## Measurement block 0xF0
79116

80-
All others are optional and may be used if supported.
81-
82-
* Asymmetric
83-
* `TPM_ALG_RSASSA_2048`
84-
* `TPM_ALG_RSAPSS_2048`
85-
* `TPM_ALG_RSASSA_3072`
86-
* `TPM_ALG_RSAPSS_3072`
87-
* `TPM_ALG_ECDSA_ECC_NIST_P256`
88-
* `TPM_ALG_RSASSA_4096`
89-
* `TPM_ALG_RSAPSS_4096`
90-
* `TPM_ALG_ECDSA_ECC_NIST_P384`
91-
* `EdDSA ed25519`
92-
* `EdDSA ed448`
93-
* `TPM_ALG_SHA_384`
94-
* Hash
95-
* `TPM_ALG_SHA_256`
96-
* `TPM_ALG_SHA_384`
97-
* `TPM_ALG_SHA_512`
98-
* `TPM_ALG_SHA3_256`
99-
* `TPM_ALG_SHA3_384`
100-
* `TPM_ALG_SHA3_512`
101-
* AEAD Cipher
102-
* `AES-128-GCM`
103-
* `AES-256-GCM`
104-
* `CHACHA20_POLY1305`
105-
106-
8. Attestation Report Format Devices will support either RATS EAT (as CWT) or
107-
an SPDM evidence manifest TOC per the *TCG DICE Concise Evidence for SPDM*
108-
specification.
109-
110-
9. Measurement block 0xF0 Devices that do not provide a Measurement Manifest
111-
shall locate RATS EAT at SPDM measurement block 0xF0
117+
Devices that do not provide a Measurement Manifest shall locate RATS EAT at SPDM
118+
measurement block 0xF0

0 commit comments

Comments
 (0)