libspdm_get_element_from_opaque_data() will get first (element_id, and sm_data_id) pair. Although the name is generic, but it has assumption that element_id is DMTF, because sm_data_id is only under DMTF.
I suggest to define two functions: (just rough thought)
libspdm_get_element_from_opaque_data_with_element_id (element_id, element_index) - that is to get element with ID and index to support multiple elements.
libspdm_get_sm_data_element_from_opaque_data (sm_data_id) - that is to get SM_DATA only, with assumption that element_id is DMTF.
The first function can be used for SPDM 1.4 with DMTF-DSP, and support DSP0289 Authorization AODS.
libspdm_get_aods_element_from_opaque_data (aods_id) - that is to get AODS with assumption that element_id is DMTF-DSP in the future.
Ref: #2935 (comment)
See DSP0289: https://www.dmtf.org/dsp/DSP0289
libspdm_get_element_from_opaque_data() will get first (element_id, and sm_data_id) pair. Although the name is generic, but it has assumption that element_id is DMTF, because sm_data_id is only under DMTF.
I suggest to define two functions: (just rough thought)
libspdm_get_element_from_opaque_data_with_element_id (element_id, element_index)- that is to get element with ID and index to support multiple elements.libspdm_get_sm_data_element_from_opaque_data (sm_data_id)- that is to get SM_DATA only, with assumption that element_id is DMTF.The first function can be used for SPDM 1.4 with DMTF-DSP, and support DSP0289 Authorization AODS.
libspdm_get_aods_element_from_opaque_data (aods_id)- that is to get AODS with assumption that element_id is DMTF-DSP in the future.Ref: #2935 (comment)
See DSP0289: https://www.dmtf.org/dsp/DSP0289