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.
-
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 / MEASUREMENTS
messages, 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_context
add five new fields that can be removed at compile time if not needed.After initializing
spdm_context
the integrator allocates buffer space and setsmsg_buffer
,msg_buffer_max_size
, andmsg_buffer_mode
.msg_buffer_offset
will be0
andmsg_buffer_full
will befalse
. Integrator can then send requests and receive responses. Ifmsg_buffer_mode
is 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_mode
writing to the buffer may saturate in which casemsg_buffer_full
is set totrue
, or it may behave like a ring buffer and overwrite the lower bytes on wraparound.msg_buffer_mode
is 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