libspdm Verifier Support #929
Replies: 8 comments 2 replies
-
|
Note that we can't rely on the transport's |
Beta Was this translation helpful? Give feedback.
-
|
Should change |
Beta Was this translation helpful? Give feedback.
-
Here the proposed solution is looking like more of debug log enablement, that all the request & response are available in some buffere upon it's enablement. is it going to a be added for all of the SPDM commands? |
Beta Was this translation helpful? Give feedback.
-
|
I recommend and prefer to have an additional wrapper API like libspdm_get_measurement_ex that sends the signature as well and that helps the caller to trust the measurements received. Can we have the API added? |
Beta Was this translation helpful? Give feedback.
-
|
@jyao1 can you provide your recommendation on this? We would better need a separate API that returns the whole response, depending on debug log enabling and on debug buffers doesn't sound as right design. |
Beta Was this translation helpful? Give feedback.
-
|
I think we can use this to resolve #1110 |
Beta Was this translation helpful? Give feedback.
-
|
Some idea on the design: |
Beta Was this translation helpful? Give feedback.
-
|
Ref: #1164 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Problem Statement
libspdm, and possibly the Requester, does not know how to interpret device measurements or know what the expected measurement values should be. This logic typically resides in the Verifier. Ideally the Responder would sign only the Requester / Verifier provided nonce and the measurement record data, which the Requester can pass on to the Verifier. libspdm currently supports passing the nonce and the measurement records to the verifier. However the Responder signs the entire
GET_MEASUREMENTS / MEASUREMENTSmessages, and for SPDM 1.2 it also includes the VCA messages. libspdm does not currently support passing these messages in their entirety such that they can be consumed by the Verifier.Proposed solution
In the Requester's
spdm_contextadd five new fields that can be removed at compile time if not needed.After initializing
spdm_contextthe integrator allocates buffer space and setsmsg_buffer,msg_buffer_max_size, andmsg_buffer_mode.msg_buffer_offsetwill be0andmsg_buffer_fullwill befalse. Integrator can then send requests and receive responses. Ifmsg_buffer_modeis set to write to the buffer then libspdm will write the requests and responses to the buffer starting atmsg_buffer_offset, which it will increment. Depending on the attributes inmsg_buffer_modewriting to the buffer may saturate in which casemsg_buffer_fullis set totrue, or it may behave like a ring buffer and overwrite the lower bytes on wraparound.msg_buffer_modeis a bitmask with the following attributes:Questions
Does this have value on the Responder's side as well? It can potentially aid in debugging.
Beta Was this translation helpful? Give feedback.
All reactions