blob: 9f8120bd4aba46f8cd0942df0175ea97a0390cba [file] [log] [blame]
Steven Cooremanc7f0a572021-04-29 21:10:11 +02001/*
2 * Test driver for MAC entry points.
3 */
4/* Copyright The Mbed TLS Contributors
Dave Rodgman16799db2023-11-02 19:47:20 +00005 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
Steven Cooremanc7f0a572021-04-29 21:10:11 +02006 */
7
Mateusz Starzykb4a01292021-05-27 14:49:25 +02008#include <test/helpers.h>
Steven Cooremanc7f0a572021-04-29 21:10:11 +02009
Ronald Crone6e6b752023-01-16 16:56:51 +010010#if defined(PSA_CRYPTO_DRIVER_TEST)
Steven Cooremanc7f0a572021-04-29 21:10:11 +020011#include "psa_crypto_mac.h"
12
13#include "test/drivers/mac.h"
14
Ronald Cron7975fae2021-09-13 14:50:42 +020015#if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
16#include "libtestdriver1/library/psa_crypto_mac.h"
17#endif
18
Steven Cooremanae3ec522021-05-10 11:18:20 +020019mbedtls_test_driver_mac_hooks_t mbedtls_test_driver_mac_hooks =
20 MBEDTLS_TEST_DRIVER_MAC_INIT;
Steven Cooremanc7f0a572021-04-29 21:10:11 +020021
22psa_status_t mbedtls_test_transparent_mac_compute(
23 const psa_key_attributes_t *attributes,
24 const uint8_t *key_buffer,
25 size_t key_buffer_size,
26 psa_algorithm_t alg,
27 const uint8_t *input,
28 size_t input_length,
29 uint8_t *mac,
30 size_t mac_size,
Gilles Peskine449bd832023-01-11 14:50:10 +010031 size_t *mac_length)
Steven Cooremanc7f0a572021-04-29 21:10:11 +020032{
Steven Cooremanae3ec522021-05-10 11:18:20 +020033 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +020034
Gilles Peskine449bd832023-01-11 14:50:10 +010035 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
36 mbedtls_test_driver_mac_hooks.driver_status =
37 mbedtls_test_driver_mac_hooks.forced_status;
38 } else {
Ronald Cron7975fae2021-09-13 14:50:42 +020039#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine449bd832023-01-11 14:50:10 +010040 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanae3ec522021-05-10 11:18:20 +020041 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron40170d92021-03-13 18:19:08 +010042 libtestdriver1_mbedtls_psa_mac_compute(
Gilles Peskine449bd832023-01-11 14:50:10 +010043 (const libtestdriver1_psa_key_attributes_t *) attributes,
Ronald Cron7975fae2021-09-13 14:50:42 +020044 key_buffer, key_buffer_size, alg,
Steven Cooremanc7f0a572021-04-29 21:10:11 +020045 input, input_length,
Gilles Peskine449bd832023-01-11 14:50:10 +010046 mac, mac_size, mac_length);
Ronald Cron73c9d9e2021-04-09 11:09:54 +020047#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
48 mbedtls_test_driver_mac_hooks.driver_status =
49 mbedtls_psa_mac_compute(
50 attributes, key_buffer, key_buffer_size, alg,
51 input, input_length,
Gilles Peskine449bd832023-01-11 14:50:10 +010052 mac, mac_size, mac_length);
Ronald Cron73c9d9e2021-04-09 11:09:54 +020053#else
54 (void) attributes;
55 (void) key_buffer;
56 (void) key_buffer_size;
57 (void) alg;
58 (void) input;
59 (void) input_length;
60 (void) mac;
61 (void) mac_size;
62 (void) mac_length;
63 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
64#endif
Steven Cooremanc7f0a572021-04-29 21:10:11 +020065 }
66
Gilles Peskine449bd832023-01-11 14:50:10 +010067 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +020068}
69
70psa_status_t mbedtls_test_transparent_mac_sign_setup(
71 mbedtls_transparent_test_driver_mac_operation_t *operation,
72 const psa_key_attributes_t *attributes,
73 const uint8_t *key_buffer,
74 size_t key_buffer_size,
Gilles Peskine449bd832023-01-11 14:50:10 +010075 psa_algorithm_t alg)
Steven Cooremanc7f0a572021-04-29 21:10:11 +020076{
Steven Cooremanae3ec522021-05-10 11:18:20 +020077 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +020078
Gilles Peskine449bd832023-01-11 14:50:10 +010079 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
80 mbedtls_test_driver_mac_hooks.driver_status =
81 mbedtls_test_driver_mac_hooks.forced_status;
82 } else {
Ronald Cron7975fae2021-09-13 14:50:42 +020083#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine449bd832023-01-11 14:50:10 +010084 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanae3ec522021-05-10 11:18:20 +020085 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron40170d92021-03-13 18:19:08 +010086 libtestdriver1_mbedtls_psa_mac_sign_setup(
Ronald Cron7975fae2021-09-13 14:50:42 +020087 operation,
Gilles Peskine449bd832023-01-11 14:50:10 +010088 (const libtestdriver1_psa_key_attributes_t *) attributes,
89 key_buffer, key_buffer_size, alg);
Ronald Cron73c9d9e2021-04-09 11:09:54 +020090#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
91 mbedtls_test_driver_mac_hooks.driver_status =
92 mbedtls_psa_mac_sign_setup(
Gilles Peskine449bd832023-01-11 14:50:10 +010093 operation, attributes, key_buffer, key_buffer_size, alg);
Ronald Cron73c9d9e2021-04-09 11:09:54 +020094#else
95 (void) operation;
96 (void) attributes;
97 (void) key_buffer;
98 (void) key_buffer_size;
99 (void) alg;
100 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
101#endif
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200102 }
103
Gilles Peskine449bd832023-01-11 14:50:10 +0100104 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200105}
106
107psa_status_t mbedtls_test_transparent_mac_verify_setup(
108 mbedtls_transparent_test_driver_mac_operation_t *operation,
109 const psa_key_attributes_t *attributes,
110 const uint8_t *key_buffer,
111 size_t key_buffer_size,
Gilles Peskine449bd832023-01-11 14:50:10 +0100112 psa_algorithm_t alg)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200113{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200114 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200115
Gilles Peskine449bd832023-01-11 14:50:10 +0100116 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
117 mbedtls_test_driver_mac_hooks.driver_status =
118 mbedtls_test_driver_mac_hooks.forced_status;
119 } else {
Ronald Cron7975fae2021-09-13 14:50:42 +0200120#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine449bd832023-01-11 14:50:10 +0100121 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanae3ec522021-05-10 11:18:20 +0200122 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron40170d92021-03-13 18:19:08 +0100123 libtestdriver1_mbedtls_psa_mac_verify_setup(
Ronald Cron7975fae2021-09-13 14:50:42 +0200124 operation,
Gilles Peskine449bd832023-01-11 14:50:10 +0100125 (const libtestdriver1_psa_key_attributes_t *) attributes,
126 key_buffer, key_buffer_size, alg);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200127#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
128 mbedtls_test_driver_mac_hooks.driver_status =
129 mbedtls_psa_mac_verify_setup(
Gilles Peskine449bd832023-01-11 14:50:10 +0100130 operation, attributes, key_buffer, key_buffer_size, alg);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200131#else
132 (void) operation;
133 (void) attributes;
134 (void) key_buffer;
135 (void) key_buffer_size;
136 (void) alg;
137 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
138#endif
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200139 }
140
Gilles Peskine449bd832023-01-11 14:50:10 +0100141 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200142}
143
144psa_status_t mbedtls_test_transparent_mac_update(
145 mbedtls_transparent_test_driver_mac_operation_t *operation,
146 const uint8_t *input,
Gilles Peskine449bd832023-01-11 14:50:10 +0100147 size_t input_length)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200148{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200149 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200150
Gilles Peskine449bd832023-01-11 14:50:10 +0100151 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
152 mbedtls_test_driver_mac_hooks.driver_status =
153 mbedtls_test_driver_mac_hooks.forced_status;
154 } else {
Ronald Cron7975fae2021-09-13 14:50:42 +0200155#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine449bd832023-01-11 14:50:10 +0100156 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanae3ec522021-05-10 11:18:20 +0200157 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron40170d92021-03-13 18:19:08 +0100158 libtestdriver1_mbedtls_psa_mac_update(
Gilles Peskine449bd832023-01-11 14:50:10 +0100159 operation, input, input_length);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200160#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
161 mbedtls_test_driver_mac_hooks.driver_status =
162 mbedtls_psa_mac_update(
Gilles Peskine449bd832023-01-11 14:50:10 +0100163 operation, input, input_length);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200164#else
165 (void) operation;
166 (void) input;
167 (void) input_length;
168 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
169#endif
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200170 }
171
Gilles Peskine449bd832023-01-11 14:50:10 +0100172 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200173}
174
175psa_status_t mbedtls_test_transparent_mac_sign_finish(
176 mbedtls_transparent_test_driver_mac_operation_t *operation,
177 uint8_t *mac,
178 size_t mac_size,
Gilles Peskine449bd832023-01-11 14:50:10 +0100179 size_t *mac_length)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200180{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200181 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200182
Gilles Peskine449bd832023-01-11 14:50:10 +0100183 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
184 mbedtls_test_driver_mac_hooks.driver_status =
185 mbedtls_test_driver_mac_hooks.forced_status;
186 } else {
Ronald Cron7975fae2021-09-13 14:50:42 +0200187#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine449bd832023-01-11 14:50:10 +0100188 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanae3ec522021-05-10 11:18:20 +0200189 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron40170d92021-03-13 18:19:08 +0100190 libtestdriver1_mbedtls_psa_mac_sign_finish(
Gilles Peskine449bd832023-01-11 14:50:10 +0100191 operation, mac, mac_size, mac_length);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200192#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
193 mbedtls_test_driver_mac_hooks.driver_status =
194 mbedtls_psa_mac_sign_finish(
Gilles Peskine449bd832023-01-11 14:50:10 +0100195 operation, mac, mac_size, mac_length);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200196#else
197 (void) operation;
198 (void) mac;
199 (void) mac_size;
200 (void) mac_length;
201 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
202#endif
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200203 }
204
Gilles Peskine449bd832023-01-11 14:50:10 +0100205 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200206}
207
208psa_status_t mbedtls_test_transparent_mac_verify_finish(
209 mbedtls_transparent_test_driver_mac_operation_t *operation,
210 const uint8_t *mac,
Gilles Peskine449bd832023-01-11 14:50:10 +0100211 size_t mac_length)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200212{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200213 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200214
Gilles Peskine449bd832023-01-11 14:50:10 +0100215 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
216 mbedtls_test_driver_mac_hooks.driver_status =
217 mbedtls_test_driver_mac_hooks.forced_status;
218 } else {
Ronald Cron7975fae2021-09-13 14:50:42 +0200219#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine449bd832023-01-11 14:50:10 +0100220 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanae3ec522021-05-10 11:18:20 +0200221 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron40170d92021-03-13 18:19:08 +0100222 libtestdriver1_mbedtls_psa_mac_verify_finish(
Gilles Peskine449bd832023-01-11 14:50:10 +0100223 operation, mac, mac_length);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200224#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
225 mbedtls_test_driver_mac_hooks.driver_status =
226 mbedtls_psa_mac_verify_finish(
Gilles Peskine449bd832023-01-11 14:50:10 +0100227 operation, mac, mac_length);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200228#else
229 (void) operation;
230 (void) mac;
231 (void) mac_length;
232 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
233#endif
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200234 }
235
Gilles Peskine449bd832023-01-11 14:50:10 +0100236 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200237}
238
239psa_status_t mbedtls_test_transparent_mac_abort(
Gilles Peskine449bd832023-01-11 14:50:10 +0100240 mbedtls_transparent_test_driver_mac_operation_t *operation)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200241{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200242 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200243
Gilles Peskine449bd832023-01-11 14:50:10 +0100244 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
Steven Cooremanae3ec522021-05-10 11:18:20 +0200245 mbedtls_test_driver_mac_hooks.driver_status =
Gilles Peskine449bd832023-01-11 14:50:10 +0100246 mbedtls_test_driver_mac_hooks.forced_status;
247 } else {
248#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
249 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
250 mbedtls_test_driver_mac_hooks.driver_status =
251 libtestdriver1_mbedtls_psa_mac_abort(operation);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200252#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
253 mbedtls_test_driver_mac_hooks.driver_status =
Gilles Peskine449bd832023-01-11 14:50:10 +0100254 mbedtls_psa_mac_abort(operation);
Ronald Cron73c9d9e2021-04-09 11:09:54 +0200255#else
256 (void) operation;
257 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
258#endif
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200259 }
260
Gilles Peskine449bd832023-01-11 14:50:10 +0100261 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200262}
263
264psa_status_t mbedtls_test_opaque_mac_compute(
265 const psa_key_attributes_t *attributes,
266 const uint8_t *key_buffer,
267 size_t key_buffer_size,
268 psa_algorithm_t alg,
269 const uint8_t *input,
270 size_t input_length,
271 uint8_t *mac,
272 size_t mac_size,
Gilles Peskine449bd832023-01-11 14:50:10 +0100273 size_t *mac_length)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200274{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200275 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200276
Gilles Peskine449bd832023-01-11 14:50:10 +0100277 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
278 mbedtls_test_driver_mac_hooks.driver_status =
279 mbedtls_test_driver_mac_hooks.forced_status;
280 } else {
Ronald Crona72b12d2021-07-01 11:24:02 +0200281 (void) attributes;
282 (void) key_buffer;
283 (void) key_buffer_size;
284 (void) alg;
285 (void) input;
286 (void) input_length;
287 (void) mac;
288 (void) mac_size;
289 (void) mac_length;
290 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200291 }
292
Gilles Peskine449bd832023-01-11 14:50:10 +0100293 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200294}
295
296psa_status_t mbedtls_test_opaque_mac_sign_setup(
297 mbedtls_opaque_test_driver_mac_operation_t *operation,
298 const psa_key_attributes_t *attributes,
299 const uint8_t *key_buffer,
300 size_t key_buffer_size,
Gilles Peskine449bd832023-01-11 14:50:10 +0100301 psa_algorithm_t alg)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200302{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200303 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200304
Gilles Peskine449bd832023-01-11 14:50:10 +0100305 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
306 mbedtls_test_driver_mac_hooks.driver_status =
307 mbedtls_test_driver_mac_hooks.forced_status;
308 } else {
Ronald Crona72b12d2021-07-01 11:24:02 +0200309 (void) operation;
310 (void) attributes;
311 (void) key_buffer;
312 (void) key_buffer_size;
313 (void) alg;
314 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200315 }
316
Gilles Peskine449bd832023-01-11 14:50:10 +0100317 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200318}
319
320psa_status_t mbedtls_test_opaque_mac_verify_setup(
321 mbedtls_opaque_test_driver_mac_operation_t *operation,
322 const psa_key_attributes_t *attributes,
323 const uint8_t *key_buffer,
324 size_t key_buffer_size,
Gilles Peskine449bd832023-01-11 14:50:10 +0100325 psa_algorithm_t alg)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200326{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200327 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200328
Gilles Peskine449bd832023-01-11 14:50:10 +0100329 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
330 mbedtls_test_driver_mac_hooks.driver_status =
331 mbedtls_test_driver_mac_hooks.forced_status;
332 } else {
Ronald Crona72b12d2021-07-01 11:24:02 +0200333 (void) operation;
334 (void) attributes;
335 (void) key_buffer;
336 (void) key_buffer_size;
337 (void) alg;
338 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200339 }
340
Gilles Peskine449bd832023-01-11 14:50:10 +0100341 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200342}
343
344psa_status_t mbedtls_test_opaque_mac_update(
345 mbedtls_opaque_test_driver_mac_operation_t *operation,
346 const uint8_t *input,
Gilles Peskine449bd832023-01-11 14:50:10 +0100347 size_t input_length)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200348{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200349 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200350
Gilles Peskine449bd832023-01-11 14:50:10 +0100351 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
352 mbedtls_test_driver_mac_hooks.driver_status =
353 mbedtls_test_driver_mac_hooks.forced_status;
354 } else {
Ronald Crona72b12d2021-07-01 11:24:02 +0200355 (void) operation;
356 (void) input;
357 (void) input_length;
358 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200359 }
360
Gilles Peskine449bd832023-01-11 14:50:10 +0100361 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200362}
363
364psa_status_t mbedtls_test_opaque_mac_sign_finish(
365 mbedtls_opaque_test_driver_mac_operation_t *operation,
366 uint8_t *mac,
367 size_t mac_size,
Gilles Peskine449bd832023-01-11 14:50:10 +0100368 size_t *mac_length)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200369{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200370 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200371
Gilles Peskine449bd832023-01-11 14:50:10 +0100372 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
373 mbedtls_test_driver_mac_hooks.driver_status =
374 mbedtls_test_driver_mac_hooks.forced_status;
375 } else {
Ronald Crona72b12d2021-07-01 11:24:02 +0200376 (void) operation;
377 (void) mac;
378 (void) mac_size;
379 (void) mac_length;
380 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200381 }
382
Gilles Peskine449bd832023-01-11 14:50:10 +0100383 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200384}
385
386psa_status_t mbedtls_test_opaque_mac_verify_finish(
387 mbedtls_opaque_test_driver_mac_operation_t *operation,
388 const uint8_t *mac,
Gilles Peskine449bd832023-01-11 14:50:10 +0100389 size_t mac_length)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200390{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200391 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200392
Gilles Peskine449bd832023-01-11 14:50:10 +0100393 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
394 mbedtls_test_driver_mac_hooks.driver_status =
395 mbedtls_test_driver_mac_hooks.forced_status;
396 } else {
Ronald Crona72b12d2021-07-01 11:24:02 +0200397 (void) operation;
398 (void) mac;
399 (void) mac_length;
400 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200401 }
402
Gilles Peskine449bd832023-01-11 14:50:10 +0100403 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200404}
405
406psa_status_t mbedtls_test_opaque_mac_abort(
Gilles Peskine449bd832023-01-11 14:50:10 +0100407 mbedtls_opaque_test_driver_mac_operation_t *operation)
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200408{
Steven Cooremanae3ec522021-05-10 11:18:20 +0200409 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200410
Gilles Peskine449bd832023-01-11 14:50:10 +0100411 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
412 mbedtls_test_driver_mac_hooks.driver_status =
413 mbedtls_test_driver_mac_hooks.forced_status;
414 } else {
Ronald Crona72b12d2021-07-01 11:24:02 +0200415 (void) operation;
416 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200417 }
418
Gilles Peskine449bd832023-01-11 14:50:10 +0100419 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooremanc7f0a572021-04-29 21:10:11 +0200420}
421
Ronald Crone6e6b752023-01-16 16:56:51 +0100422#endif /* PSA_CRYPTO_DRIVER_TEST */