Line data Source code
1 : /**
2 : * Copyright Notice:
3 : * Copyright 2021-2025 DMTF. All rights reserved.
4 : * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md
5 : **/
6 :
7 : #include "spdm_unit_test.h"
8 : #include "internal/libspdm_responder_lib.h"
9 :
10 : int libspdm_responder_version_test_main(void);
11 : int libspdm_responder_capabilities_test_main(void);
12 : int libspdm_responder_algorithms_test_main(void);
13 :
14 : #if LIBSPDM_ENABLE_CAPABILITY_CERT_CAP
15 : int libspdm_responder_digests_test_main(void);
16 : int libspdm_responder_certificate_test_main(void);
17 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP*/
18 :
19 : #if LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP
20 : int libspdm_responder_challenge_auth_test_main(void);
21 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP*/
22 :
23 : #if LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP
24 : int libspdm_responder_measurements_test_main(void);
25 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP*/
26 :
27 : #if LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP
28 : int libspdm_responder_endpoint_info_test_main(void);
29 : int libspdm_responder_endpoint_info_error_test_main(void);
30 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP*/
31 :
32 : #if LIBSPDM_ENABLE_CAPABILITY_MEL_CAP
33 : int libspdm_responder_measurement_extension_log_test_main(void);
34 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEL_CAP*/
35 :
36 : #if LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP
37 : int libspdm_responder_key_pair_info_test_main(void);
38 : #endif /* LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP*/
39 :
40 : #if LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP
41 : int libspdm_responder_set_key_pair_info_ack_test_main(void);
42 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP*/
43 :
44 : #if LIBSPDM_RESPOND_IF_READY_SUPPORT
45 : #if (LIBSPDM_ENABLE_CAPABILITY_CERT_CAP || LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP || \
46 : LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP || LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP || \
47 : LIBSPDM_ENABLE_CAPABILITY_PSK_CAP)
48 : int libspdm_responder_respond_if_ready_test_main (void);
49 : #endif /* LIBSPDM_ENABLE_CAPABILITY_*_CAP */
50 : #endif /* LIBSPDM_RESPOND_IF_READY_SUPPORT */
51 :
52 : #if LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP
53 : int libspdm_responder_key_exchange_test_main(void);
54 : #endif /* LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP*/
55 :
56 : int libspdm_responder_finish_test_main(void);
57 :
58 : #if LIBSPDM_ENABLE_CAPABILITY_PSK_CAP
59 : int libspdm_responder_psk_exchange_test_main(void);
60 : int libspdm_responder_psk_finish_test_main(void);
61 : #endif /* LIBSPDM_ENABLE_CAPABILITY_PSK_CAP */
62 :
63 : #if (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP)
64 : int libspdm_responder_heartbeat_test_main(void);
65 : int libspdm_responder_key_update_test_main(void);
66 : int libspdm_responder_end_session_test_main(void);
67 : #endif /* (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP) */
68 :
69 : #if LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP
70 : #if LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP
71 : #if LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT
72 : int spdm_responder_encap_get_digests_test_main(void);
73 : int spdm_responder_encap_get_certificate_test_main(void);
74 : #endif /* LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT */
75 : #if LIBSPDM_SEND_CHALLENGE_SUPPORT
76 : int libspdm_responder_encap_challenge_auth_test_main(void);
77 : #endif /* LIBSPDM_SEND_CHALLENGE_SUPPORT */
78 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP */
79 : int libspdm_responder_encapsulated_response_test_main(void);
80 : int libspdm_responder_encap_key_update_test_main(void);
81 : #if LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT
82 : int libspdm_responder_encap_get_endpoint_info_test_main(void);
83 : int libspdm_responder_encap_get_endpoint_info_error_test_main(void);
84 : #endif /* LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT */
85 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP*/
86 :
87 : int libspdm_responder_set_certificate_rsp_test_main(void);
88 : int libspdm_responder_csr_test_main(void);
89 :
90 : #if LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP
91 : int libspdm_responder_chunk_get_rsp_test_main(void);
92 : int libspdm_responder_receive_send_test_main(void);
93 : int libspdm_responder_chunk_send_ack_test_main(void);
94 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP */
95 :
96 : #if LIBSPDM_ENABLE_CAPABILITY_EVENT_CAP
97 : int libspdm_responder_supported_event_types_test_main(void);
98 : int libspdm_responder_supported_event_types_error_test_main(void);
99 : int libspdm_responder_subscribe_event_types_ack_test_main(void);
100 : int libspdm_responder_subscribe_event_types_ack_error_test_main(void);
101 : #endif /* LIBSPDM_ENABLE_CAPABILITY_EVENT_CAP */
102 :
103 : #if LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES
104 : int libspdm_responder_vendor_cmds_test_main(void);
105 : int libspdm_responder_vendor_cmds_error_test_main(void);
106 : #endif /* LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES */
107 :
108 1 : int main(void)
109 : {
110 1 : int return_value = 0;
111 :
112 1 : if (libspdm_responder_version_test_main() != 0) {
113 0 : return_value = 1;
114 : }
115 :
116 1 : if (libspdm_responder_capabilities_test_main() != 0) {
117 0 : return_value = 1;
118 : }
119 :
120 1 : if (libspdm_responder_algorithms_test_main() != 0) {
121 0 : return_value = 1;
122 : }
123 :
124 : #if LIBSPDM_ENABLE_CAPABILITY_CERT_CAP
125 1 : if (libspdm_responder_digests_test_main() != 0) {
126 0 : return_value = 1;
127 : }
128 1 : if (libspdm_responder_certificate_test_main() != 0) {
129 0 : return_value = 1;
130 : }
131 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP*/
132 :
133 : #if LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP
134 1 : if (libspdm_responder_challenge_auth_test_main() != 0) {
135 0 : return_value = 1;
136 : }
137 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP*/
138 :
139 : #if LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP
140 1 : if (libspdm_responder_measurements_test_main() != 0) {
141 0 : return_value = 1;
142 : }
143 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP*/
144 :
145 : #if LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP
146 1 : if (libspdm_responder_endpoint_info_test_main() != 0) {
147 0 : return_value = 1;
148 : }
149 1 : if (libspdm_responder_endpoint_info_error_test_main() != 0) {
150 0 : return_value = 1;
151 : }
152 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP*/
153 :
154 : #if LIBSPDM_ENABLE_CAPABILITY_MEL_CAP
155 1 : if (libspdm_responder_measurement_extension_log_test_main() != 0) {
156 0 : return_value = 1;
157 : }
158 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEL_CAP*/
159 :
160 : #if LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP
161 1 : if (libspdm_responder_key_pair_info_test_main() != 0) {
162 0 : return_value = 1;
163 : }
164 : #endif /* LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP*/
165 :
166 : #if LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP
167 1 : if (libspdm_responder_set_key_pair_info_ack_test_main() != 0) {
168 0 : return_value = 1;
169 : }
170 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP*/
171 :
172 : #if LIBSPDM_RESPOND_IF_READY_SUPPORT
173 : #if (LIBSPDM_ENABLE_CAPABILITY_CERT_CAP || LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP || \
174 : LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP || LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP || \
175 : LIBSPDM_ENABLE_CAPABILITY_PSK_CAP)
176 1 : if (libspdm_responder_respond_if_ready_test_main() != 0) {
177 0 : return_value = 1;
178 : }
179 : #endif /* LIBSPDM_ENABLE_CAPABILITY_*_CAP */
180 : #endif /* LIBSPDM_RESPOND_IF_READY_SUPPORT */
181 :
182 : #if LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP
183 1 : if (libspdm_responder_key_exchange_test_main() != 0) {
184 0 : return_value = 1;
185 : }
186 : #endif /* LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP*/
187 :
188 : #if LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP
189 1 : if (libspdm_responder_finish_test_main() != 0) {
190 0 : return_value = 1;
191 : }
192 : #endif /* LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP*/
193 :
194 : #if LIBSPDM_ENABLE_CAPABILITY_PSK_CAP
195 1 : if (libspdm_responder_psk_exchange_test_main() != 0) {
196 0 : return_value = 1;
197 : }
198 : #endif /* LIBSPDM_ENABLE_CAPABILITY_PSK_CAP*/
199 :
200 : #if LIBSPDM_ENABLE_CAPABILITY_PSK_CAP
201 1 : if (libspdm_responder_psk_finish_test_main() != 0) {
202 0 : return_value = 1;
203 : }
204 : #endif /* LIBSPDM_ENABLE_CAPABILITY_PSK_CAP*/
205 :
206 : #if (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP)
207 1 : if (libspdm_responder_heartbeat_test_main() != 0) {
208 0 : return_value = 1;
209 : }
210 1 : if (libspdm_responder_key_update_test_main() != 0) {
211 0 : return_value = 1;
212 : }
213 1 : if (libspdm_responder_end_session_test_main() != 0) {
214 0 : return_value = 1;
215 : }
216 : #endif /* (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP) */
217 :
218 : #if LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP
219 : #if LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP
220 : #if LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT
221 1 : if (spdm_responder_encap_get_digests_test_main() != 0) {
222 0 : return_value = 1;
223 : }
224 1 : if (spdm_responder_encap_get_certificate_test_main() != 0) {
225 0 : return_value = 1;
226 : }
227 : #endif /* LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT */
228 : #if LIBSPDM_SEND_CHALLENGE_SUPPORT
229 1 : if (libspdm_responder_encap_challenge_auth_test_main() != 0) {
230 0 : return_value = 1;
231 : }
232 : #endif /* LIBSPDM_SEND_CHALLENGE_SUPPORT */
233 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP */
234 1 : if (libspdm_responder_encapsulated_response_test_main() != 0) {
235 0 : return_value = 1;
236 : }
237 1 : if (libspdm_responder_encap_key_update_test_main() != 0) {
238 0 : return_value = 1;
239 : }
240 : #if LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT
241 1 : if (libspdm_responder_encap_get_endpoint_info_test_main() != 0) {
242 0 : return_value = 1;
243 : }
244 1 : if (libspdm_responder_encap_get_endpoint_info_error_test_main() != 0) {
245 0 : return_value = 1;
246 : }
247 : #endif /* LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT */
248 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP*/
249 :
250 : #if LIBSPDM_ENABLE_CAPABILITY_SET_CERT_CAP
251 1 : if (libspdm_responder_set_certificate_rsp_test_main() != 0) {
252 0 : return_value = 1;
253 : }
254 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_CERT_CAP */
255 :
256 : #if LIBSPDM_ENABLE_CAPABILITY_CSR_CAP
257 1 : if (libspdm_responder_csr_test_main() != 0) {
258 0 : return_value = 1;
259 : }
260 : #endif /*LIBSPDM_ENABLE_CAPABILITY_CSR_CAP*/
261 :
262 : #if LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP
263 1 : if (libspdm_responder_chunk_get_rsp_test_main() != 0) {
264 0 : return_value = 1;
265 : }
266 :
267 1 : if (libspdm_responder_receive_send_test_main() != 0) {
268 0 : return_value = 1;
269 : }
270 :
271 1 : if (libspdm_responder_chunk_send_ack_test_main() != 0) {
272 0 : return_value = 1;
273 : }
274 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP */
275 :
276 : #if LIBSPDM_ENABLE_CAPABILITY_EVENT_CAP
277 1 : if (libspdm_responder_supported_event_types_test_main() != 0) {
278 0 : return_value = 1;
279 : }
280 1 : if (libspdm_responder_supported_event_types_error_test_main() != 0) {
281 0 : return_value = 1;
282 : }
283 1 : if (libspdm_responder_subscribe_event_types_ack_test_main() != 0) {
284 0 : return_value = 1;
285 : }
286 1 : if (libspdm_responder_subscribe_event_types_ack_error_test_main() != 0) {
287 0 : return_value = 1;
288 : }
289 : #endif /* LIBSPDM_ENABLE_CAPABILITY_EVENT_CAP */
290 :
291 : #if LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES
292 1 : if (libspdm_responder_vendor_cmds_test_main() != 0) {
293 0 : return_value = 1;
294 : }
295 1 : if (libspdm_responder_vendor_cmds_error_test_main() != 0) {
296 0 : return_value = 1;
297 : }
298 : #endif /* LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES */
299 :
300 1 : return return_value;
301 : }
|