blob: 8e3185dd64638840f302630c56f3d41ab1671f2a [file] [log] [blame]
Steven Cooreman2d9a3f92021-04-29 21:10:11 +02001/*
2 * Test driver for MAC entry points.
3 */
4/* Copyright The Mbed TLS Contributors
Dave Rodgman7ff79652023-11-03 12:04:52 +00005 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
Steven Cooreman2d9a3f92021-04-29 21:10:11 +02006 */
7
8#if !defined(MBEDTLS_CONFIG_FILE)
9#include "mbedtls/config.h"
10#else
11#include MBEDTLS_CONFIG_FILE
12#endif
13
14#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) && defined(PSA_CRYPTO_DRIVER_TEST)
15#include "psa_crypto_mac.h"
16
17#include "test/drivers/mac.h"
18
Ronald Cronb814bda2021-09-13 14:50:42 +020019#if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
20#include "libtestdriver1/library/psa_crypto_mac.h"
21#endif
22
Steven Cooremanbe21dab2021-05-10 11:18:20 +020023mbedtls_test_driver_mac_hooks_t mbedtls_test_driver_mac_hooks =
24 MBEDTLS_TEST_DRIVER_MAC_INIT;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +020025
26psa_status_t mbedtls_test_transparent_mac_compute(
27 const psa_key_attributes_t *attributes,
28 const uint8_t *key_buffer,
29 size_t key_buffer_size,
30 psa_algorithm_t alg,
31 const uint8_t *input,
32 size_t input_length,
33 uint8_t *mac,
34 size_t mac_size,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010035 size_t *mac_length)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +020036{
Steven Cooremanbe21dab2021-05-10 11:18:20 +020037 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +020038
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010039 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
40 mbedtls_test_driver_mac_hooks.driver_status =
41 mbedtls_test_driver_mac_hooks.forced_status;
42 } else {
Ronald Cronb814bda2021-09-13 14:50:42 +020043#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010044 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanbe21dab2021-05-10 11:18:20 +020045 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron7b7854e2021-03-13 18:19:08 +010046 libtestdriver1_mbedtls_psa_mac_compute(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010047 (const libtestdriver1_psa_key_attributes_t *) attributes,
Ronald Cronb814bda2021-09-13 14:50:42 +020048 key_buffer, key_buffer_size, alg,
Steven Cooreman2d9a3f92021-04-29 21:10:11 +020049 input, input_length,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010050 mac, mac_size, mac_length);
Ronald Cron2091eed2021-04-09 11:09:54 +020051#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
52 mbedtls_test_driver_mac_hooks.driver_status =
53 mbedtls_psa_mac_compute(
54 attributes, key_buffer, key_buffer_size, alg,
55 input, input_length,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010056 mac, mac_size, mac_length);
Ronald Cron2091eed2021-04-09 11:09:54 +020057#else
58 (void) attributes;
59 (void) key_buffer;
60 (void) key_buffer_size;
61 (void) alg;
62 (void) input;
63 (void) input_length;
64 (void) mac;
65 (void) mac_size;
66 (void) mac_length;
67 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
68#endif
Steven Cooreman2d9a3f92021-04-29 21:10:11 +020069 }
70
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010071 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +020072}
73
74psa_status_t mbedtls_test_transparent_mac_sign_setup(
75 mbedtls_transparent_test_driver_mac_operation_t *operation,
76 const psa_key_attributes_t *attributes,
77 const uint8_t *key_buffer,
78 size_t key_buffer_size,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010079 psa_algorithm_t alg)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +020080{
Steven Cooremanbe21dab2021-05-10 11:18:20 +020081 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +020082
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010083 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
84 mbedtls_test_driver_mac_hooks.driver_status =
85 mbedtls_test_driver_mac_hooks.forced_status;
86 } else {
Ronald Cronb814bda2021-09-13 14:50:42 +020087#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010088 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanbe21dab2021-05-10 11:18:20 +020089 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron7b7854e2021-03-13 18:19:08 +010090 libtestdriver1_mbedtls_psa_mac_sign_setup(
Ronald Cronb814bda2021-09-13 14:50:42 +020091 operation,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010092 (const libtestdriver1_psa_key_attributes_t *) attributes,
93 key_buffer, key_buffer_size, alg);
Ronald Cron2091eed2021-04-09 11:09:54 +020094#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
95 mbedtls_test_driver_mac_hooks.driver_status =
96 mbedtls_psa_mac_sign_setup(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010097 operation, attributes, key_buffer, key_buffer_size, alg);
Ronald Cron2091eed2021-04-09 11:09:54 +020098#else
99 (void) operation;
100 (void) attributes;
101 (void) key_buffer;
102 (void) key_buffer_size;
103 (void) alg;
104 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
105#endif
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200106 }
107
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100108 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200109}
110
111psa_status_t mbedtls_test_transparent_mac_verify_setup(
112 mbedtls_transparent_test_driver_mac_operation_t *operation,
113 const psa_key_attributes_t *attributes,
114 const uint8_t *key_buffer,
115 size_t key_buffer_size,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100116 psa_algorithm_t alg)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200117{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200118 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200119
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100120 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
121 mbedtls_test_driver_mac_hooks.driver_status =
122 mbedtls_test_driver_mac_hooks.forced_status;
123 } else {
Ronald Cronb814bda2021-09-13 14:50:42 +0200124#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100125 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200126 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron7b7854e2021-03-13 18:19:08 +0100127 libtestdriver1_mbedtls_psa_mac_verify_setup(
Ronald Cronb814bda2021-09-13 14:50:42 +0200128 operation,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100129 (const libtestdriver1_psa_key_attributes_t *) attributes,
130 key_buffer, key_buffer_size, alg);
Ronald Cron2091eed2021-04-09 11:09:54 +0200131#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
132 mbedtls_test_driver_mac_hooks.driver_status =
133 mbedtls_psa_mac_verify_setup(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100134 operation, attributes, key_buffer, key_buffer_size, alg);
Ronald Cron2091eed2021-04-09 11:09:54 +0200135#else
136 (void) operation;
137 (void) attributes;
138 (void) key_buffer;
139 (void) key_buffer_size;
140 (void) alg;
141 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
142#endif
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200143 }
144
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100145 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200146}
147
148psa_status_t mbedtls_test_transparent_mac_update(
149 mbedtls_transparent_test_driver_mac_operation_t *operation,
150 const uint8_t *input,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100151 size_t input_length)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200152{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200153 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200154
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100155 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
156 mbedtls_test_driver_mac_hooks.driver_status =
157 mbedtls_test_driver_mac_hooks.forced_status;
158 } else {
Ronald Cronb814bda2021-09-13 14:50:42 +0200159#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100160 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200161 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron7b7854e2021-03-13 18:19:08 +0100162 libtestdriver1_mbedtls_psa_mac_update(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100163 operation, input, input_length);
Ronald Cron2091eed2021-04-09 11:09:54 +0200164#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
165 mbedtls_test_driver_mac_hooks.driver_status =
166 mbedtls_psa_mac_update(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100167 operation, input, input_length);
Ronald Cron2091eed2021-04-09 11:09:54 +0200168#else
169 (void) operation;
170 (void) input;
171 (void) input_length;
172 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
173#endif
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200174 }
175
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100176 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200177}
178
179psa_status_t mbedtls_test_transparent_mac_sign_finish(
180 mbedtls_transparent_test_driver_mac_operation_t *operation,
181 uint8_t *mac,
182 size_t mac_size,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100183 size_t *mac_length)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200184{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200185 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200186
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100187 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
188 mbedtls_test_driver_mac_hooks.driver_status =
189 mbedtls_test_driver_mac_hooks.forced_status;
190 } else {
Ronald Cronb814bda2021-09-13 14:50:42 +0200191#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100192 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200193 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron7b7854e2021-03-13 18:19:08 +0100194 libtestdriver1_mbedtls_psa_mac_sign_finish(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100195 operation, mac, mac_size, mac_length);
Ronald Cron2091eed2021-04-09 11:09:54 +0200196#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
197 mbedtls_test_driver_mac_hooks.driver_status =
198 mbedtls_psa_mac_sign_finish(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100199 operation, mac, mac_size, mac_length);
Ronald Cron2091eed2021-04-09 11:09:54 +0200200#else
201 (void) operation;
202 (void) mac;
203 (void) mac_size;
204 (void) mac_length;
205 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
206#endif
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200207 }
208
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100209 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200210}
211
212psa_status_t mbedtls_test_transparent_mac_verify_finish(
213 mbedtls_transparent_test_driver_mac_operation_t *operation,
214 const uint8_t *mac,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100215 size_t mac_length)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200216{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200217 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200218
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100219 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
220 mbedtls_test_driver_mac_hooks.driver_status =
221 mbedtls_test_driver_mac_hooks.forced_status;
222 } else {
Ronald Cronb814bda2021-09-13 14:50:42 +0200223#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100224 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200225 mbedtls_test_driver_mac_hooks.driver_status =
Ronald Cron7b7854e2021-03-13 18:19:08 +0100226 libtestdriver1_mbedtls_psa_mac_verify_finish(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100227 operation, mac, mac_length);
Ronald Cron2091eed2021-04-09 11:09:54 +0200228#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
229 mbedtls_test_driver_mac_hooks.driver_status =
230 mbedtls_psa_mac_verify_finish(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100231 operation, mac, mac_length);
Ronald Cron2091eed2021-04-09 11:09:54 +0200232#else
233 (void) operation;
234 (void) mac;
235 (void) mac_length;
236 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
237#endif
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200238 }
239
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100240 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200241}
242
243psa_status_t mbedtls_test_transparent_mac_abort(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100244 mbedtls_transparent_test_driver_mac_operation_t *operation)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200245{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200246 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200247
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100248 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200249 mbedtls_test_driver_mac_hooks.driver_status =
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100250 mbedtls_test_driver_mac_hooks.forced_status;
251 } else {
252#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
253 defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC)
254 mbedtls_test_driver_mac_hooks.driver_status =
255 libtestdriver1_mbedtls_psa_mac_abort(operation);
Ronald Cron2091eed2021-04-09 11:09:54 +0200256#elif defined(MBEDTLS_PSA_BUILTIN_MAC)
257 mbedtls_test_driver_mac_hooks.driver_status =
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100258 mbedtls_psa_mac_abort(operation);
Ronald Cron2091eed2021-04-09 11:09:54 +0200259#else
260 (void) operation;
261 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
262#endif
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200263 }
264
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100265 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200266}
267
268psa_status_t mbedtls_test_opaque_mac_compute(
269 const psa_key_attributes_t *attributes,
270 const uint8_t *key_buffer,
271 size_t key_buffer_size,
272 psa_algorithm_t alg,
273 const uint8_t *input,
274 size_t input_length,
275 uint8_t *mac,
276 size_t mac_size,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100277 size_t *mac_length)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200278{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200279 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200280
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100281 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
282 mbedtls_test_driver_mac_hooks.driver_status =
283 mbedtls_test_driver_mac_hooks.forced_status;
284 } else {
Ronald Crona2dbe662021-07-01 11:24:02 +0200285 (void) attributes;
286 (void) key_buffer;
287 (void) key_buffer_size;
288 (void) alg;
289 (void) input;
290 (void) input_length;
291 (void) mac;
292 (void) mac_size;
293 (void) mac_length;
294 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200295 }
296
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100297 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200298}
299
300psa_status_t mbedtls_test_opaque_mac_sign_setup(
301 mbedtls_opaque_test_driver_mac_operation_t *operation,
302 const psa_key_attributes_t *attributes,
303 const uint8_t *key_buffer,
304 size_t key_buffer_size,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100305 psa_algorithm_t alg)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200306{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200307 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200308
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100309 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
310 mbedtls_test_driver_mac_hooks.driver_status =
311 mbedtls_test_driver_mac_hooks.forced_status;
312 } else {
Ronald Crona2dbe662021-07-01 11:24:02 +0200313 (void) operation;
314 (void) attributes;
315 (void) key_buffer;
316 (void) key_buffer_size;
317 (void) alg;
318 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200319 }
320
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100321 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200322}
323
324psa_status_t mbedtls_test_opaque_mac_verify_setup(
325 mbedtls_opaque_test_driver_mac_operation_t *operation,
326 const psa_key_attributes_t *attributes,
327 const uint8_t *key_buffer,
328 size_t key_buffer_size,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100329 psa_algorithm_t alg)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200330{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200331 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200332
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100333 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
334 mbedtls_test_driver_mac_hooks.driver_status =
335 mbedtls_test_driver_mac_hooks.forced_status;
336 } else {
Ronald Crona2dbe662021-07-01 11:24:02 +0200337 (void) operation;
338 (void) attributes;
339 (void) key_buffer;
340 (void) key_buffer_size;
341 (void) alg;
342 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200343 }
344
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100345 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200346}
347
348psa_status_t mbedtls_test_opaque_mac_update(
349 mbedtls_opaque_test_driver_mac_operation_t *operation,
350 const uint8_t *input,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100351 size_t input_length)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200352{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200353 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200354
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100355 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
356 mbedtls_test_driver_mac_hooks.driver_status =
357 mbedtls_test_driver_mac_hooks.forced_status;
358 } else {
Ronald Crona2dbe662021-07-01 11:24:02 +0200359 (void) operation;
360 (void) input;
361 (void) input_length;
362 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200363 }
364
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100365 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200366}
367
368psa_status_t mbedtls_test_opaque_mac_sign_finish(
369 mbedtls_opaque_test_driver_mac_operation_t *operation,
370 uint8_t *mac,
371 size_t mac_size,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100372 size_t *mac_length)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200373{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200374 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200375
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100376 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
377 mbedtls_test_driver_mac_hooks.driver_status =
378 mbedtls_test_driver_mac_hooks.forced_status;
379 } else {
Ronald Crona2dbe662021-07-01 11:24:02 +0200380 (void) operation;
381 (void) mac;
382 (void) mac_size;
383 (void) mac_length;
384 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200385 }
386
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100387 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200388}
389
390psa_status_t mbedtls_test_opaque_mac_verify_finish(
391 mbedtls_opaque_test_driver_mac_operation_t *operation,
392 const uint8_t *mac,
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100393 size_t mac_length)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200394{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200395 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200396
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100397 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
398 mbedtls_test_driver_mac_hooks.driver_status =
399 mbedtls_test_driver_mac_hooks.forced_status;
400 } else {
Ronald Crona2dbe662021-07-01 11:24:02 +0200401 (void) operation;
402 (void) mac;
403 (void) mac_length;
404 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200405 }
406
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100407 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200408}
409
410psa_status_t mbedtls_test_opaque_mac_abort(
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100411 mbedtls_opaque_test_driver_mac_operation_t *operation)
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200412{
Steven Cooremanbe21dab2021-05-10 11:18:20 +0200413 mbedtls_test_driver_mac_hooks.hits++;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200414
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100415 if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) {
416 mbedtls_test_driver_mac_hooks.driver_status =
417 mbedtls_test_driver_mac_hooks.forced_status;
418 } else {
Ronald Crona2dbe662021-07-01 11:24:02 +0200419 (void) operation;
420 mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200421 }
422
Gilles Peskine1b6c09a2023-01-11 14:52:35 +0100423 return mbedtls_test_driver_mac_hooks.driver_status;
Steven Cooreman2d9a3f92021-04-29 21:10:11 +0200424}
425
426#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */