Skip to content

Commit 31d2300

Browse files
Update multikey flow for Responder
Signed-off-by: Steven Bellock <[email protected]>
1 parent 2312ef6 commit 31d2300

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

doc/multikey.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,17 @@ endpoint's multikey support is conditional (`MULTI_KEY_CAP == 2`).
3131
4. Use `libspdm_get_data` with `LIBSPDM_DATA_PEER_KEY_USAGE_BIT_MASK` to query the `KeyUsageMask`
3232
for each populated certificate slot. Use the `SPDM_KEY_USAGE_BIT_MASK_*` macros to determine the
3333
legal messages for that certificate slot and key.
34+
35+
### Multikey Flow for libspdm Responder
36+
37+
1. If `MULTI_KEY_CAP == 1` then skip to Step 2. If `MULTI_KEY_CAP == 2` then, after `VCA` has
38+
completed and the connection status has transitioned to `LIBSPDM_CONNECTION_STATE_NEGOTIATED`,
39+
call `libspdm_get_data` with `LIBSPDM_DATA_MULTI_KEY_CONN_RSP` to determine whether the
40+
connection utilizes multikey (`true`) or not (`false`). If it is `true` then continue to Step 2.
41+
2. Call `libspdm_set_data` with `LIBSPDM_DATA_LOCAL_KEY_PAIR_ID` and
42+
`LIBSPDM_DATA_LOCAL_KEY_USAGE_BIT_MASK` to map `KeyPairID`s with certificate slots for the
43+
negotiated asymmetric cryptography algorithm and to specify the messages a key can be
44+
associated with.
45+
- If `MULTI_KEY_CAP == 1` and the Responder supports only one asymmetric cryptography
46+
algorithm then this step can be performed before the connection is established.
47+
3. Calls to `libspdm_responder_data_sign` then specify the `KeyPairID`.

0 commit comments

Comments
 (0)