Skip to content

Commit 8395f5e

Browse files
Map SlotID to KeyPairID in unit test
Add assertions in spdm_device_secret_lib_sample to enforce this. Signed-off-by: Steven Bellock <[email protected]>
1 parent 8ccc0f3 commit 8395f5e

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

os_stub/spdm_device_secret_lib_sample/sign.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,20 @@ bool libspdm_requester_data_sign(
3131
void *context;
3232
bool result;
3333

34+
const uint8_t version = spdm_version >> SPDM_VERSION_NUMBER_SHIFT_BIT;
35+
const bool multi_key_conn_rsp =
36+
((libspdm_context_t *)spdm_context)->connection_info.multi_key_conn_req;
37+
38+
if (version < SPDM_MESSAGE_VERSION_13) {
39+
LIBSPDM_ASSERT(key_pair_id == 0);
40+
} else if (version >= SPDM_MESSAGE_VERSION_13) {
41+
if (multi_key_conn_rsp) {
42+
LIBSPDM_ASSERT(key_pair_id > 0);
43+
} else {
44+
LIBSPDM_ASSERT(key_pair_id == 0);
45+
}
46+
}
47+
3448
#if !LIBSPDM_PRIVATE_KEY_MODE_RAW_KEY_ONLY
3549
if (g_private_key_mode) {
3650
void *private_pem;
@@ -156,6 +170,21 @@ bool libspdm_responder_data_sign(
156170
{
157171
void *context;
158172
bool result;
173+
174+
const uint8_t version = spdm_version >> SPDM_VERSION_NUMBER_SHIFT_BIT;
175+
const bool multi_key_conn_rsp =
176+
((libspdm_context_t *)spdm_context)->connection_info.multi_key_conn_rsp;
177+
178+
if (version < SPDM_MESSAGE_VERSION_13) {
179+
LIBSPDM_ASSERT(key_pair_id == 0);
180+
} else if (version >= SPDM_MESSAGE_VERSION_13) {
181+
if (multi_key_conn_rsp) {
182+
LIBSPDM_ASSERT(key_pair_id > 0);
183+
} else {
184+
LIBSPDM_ASSERT(key_pair_id == 0);
185+
}
186+
}
187+
159188
#if !LIBSPDM_PRIVATE_KEY_MODE_RAW_KEY_ONLY
160189
if (g_private_key_mode) {
161190
void *private_pem;

unit_test/test_spdm_responder/endpoint_info.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ static void rsp_endpoint_info_case1(void **state)
110110
m_libspdm_use_asym_algo, &data,
111111
&data_size, NULL, NULL);
112112
for (int i = 0; i < SPDM_MAX_SLOT_COUNT; i++) {
113+
spdm_context->local_context.local_key_pair_id[i] = 1;
113114
spdm_context->local_context.local_cert_chain_provision_size[i] = data_size;
114115
spdm_context->local_context.local_cert_chain_provision[i] = data;
115116
}
@@ -326,6 +327,7 @@ static void rsp_endpoint_info_case3(void **state)
326327
m_libspdm_use_asym_algo, &data,
327328
&data_size, NULL, NULL);
328329
for (int i = 0; i < SPDM_MAX_SLOT_COUNT; i++) {
330+
spdm_context->local_context.local_key_pair_id[i] = 1;
329331
spdm_context->local_context.local_cert_chain_provision_size[i] = data_size;
330332
spdm_context->local_context.local_cert_chain_provision[i] = data;
331333
}
@@ -520,6 +522,7 @@ static void rsp_endpoint_info_case5(void **state)
520522
m_libspdm_use_asym_algo, &data,
521523
&data_size, NULL, NULL);
522524
for (int i = 0; i < SPDM_MAX_SLOT_COUNT; i++) {
525+
spdm_context->local_context.local_key_pair_id[i] = 1;
523526
spdm_context->local_context.local_cert_chain_provision_size[i] = data_size;
524527
spdm_context->local_context.local_cert_chain_provision[i] = data;
525528
}

0 commit comments

Comments
 (0)