1a8e1175bSopenharmony_ci/* 2a8e1175bSopenharmony_ci * Test driver for MAC entry points. 3a8e1175bSopenharmony_ci */ 4a8e1175bSopenharmony_ci/* Copyright The Mbed TLS Contributors 5a8e1175bSopenharmony_ci * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 6a8e1175bSopenharmony_ci */ 7a8e1175bSopenharmony_ci 8a8e1175bSopenharmony_ci#include <test/helpers.h> 9a8e1175bSopenharmony_ci 10a8e1175bSopenharmony_ci#if defined(PSA_CRYPTO_DRIVER_TEST) 11a8e1175bSopenharmony_ci#include "psa_crypto_mac.h" 12a8e1175bSopenharmony_ci 13a8e1175bSopenharmony_ci#include "test/drivers/mac.h" 14a8e1175bSopenharmony_ci 15a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) 16a8e1175bSopenharmony_ci#include "libtestdriver1/library/psa_crypto_mac.h" 17a8e1175bSopenharmony_ci#endif 18a8e1175bSopenharmony_ci 19a8e1175bSopenharmony_cimbedtls_test_driver_mac_hooks_t mbedtls_test_driver_mac_hooks = 20a8e1175bSopenharmony_ci MBEDTLS_TEST_DRIVER_MAC_INIT; 21a8e1175bSopenharmony_ci 22a8e1175bSopenharmony_cipsa_status_t mbedtls_test_transparent_mac_compute( 23a8e1175bSopenharmony_ci const psa_key_attributes_t *attributes, 24a8e1175bSopenharmony_ci const uint8_t *key_buffer, 25a8e1175bSopenharmony_ci size_t key_buffer_size, 26a8e1175bSopenharmony_ci psa_algorithm_t alg, 27a8e1175bSopenharmony_ci const uint8_t *input, 28a8e1175bSopenharmony_ci size_t input_length, 29a8e1175bSopenharmony_ci uint8_t *mac, 30a8e1175bSopenharmony_ci size_t mac_size, 31a8e1175bSopenharmony_ci size_t *mac_length) 32a8e1175bSopenharmony_ci{ 33a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 34a8e1175bSopenharmony_ci 35a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 36a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 37a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 38a8e1175bSopenharmony_ci } else { 39a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ 40a8e1175bSopenharmony_ci defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) 41a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 42a8e1175bSopenharmony_ci libtestdriver1_mbedtls_psa_mac_compute( 43a8e1175bSopenharmony_ci (const libtestdriver1_psa_key_attributes_t *) attributes, 44a8e1175bSopenharmony_ci key_buffer, key_buffer_size, alg, 45a8e1175bSopenharmony_ci input, input_length, 46a8e1175bSopenharmony_ci mac, mac_size, mac_length); 47a8e1175bSopenharmony_ci#elif defined(MBEDTLS_PSA_BUILTIN_MAC) 48a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 49a8e1175bSopenharmony_ci mbedtls_psa_mac_compute( 50a8e1175bSopenharmony_ci attributes, key_buffer, key_buffer_size, alg, 51a8e1175bSopenharmony_ci input, input_length, 52a8e1175bSopenharmony_ci mac, mac_size, mac_length); 53a8e1175bSopenharmony_ci#else 54a8e1175bSopenharmony_ci (void) attributes; 55a8e1175bSopenharmony_ci (void) key_buffer; 56a8e1175bSopenharmony_ci (void) key_buffer_size; 57a8e1175bSopenharmony_ci (void) alg; 58a8e1175bSopenharmony_ci (void) input; 59a8e1175bSopenharmony_ci (void) input_length; 60a8e1175bSopenharmony_ci (void) mac; 61a8e1175bSopenharmony_ci (void) mac_size; 62a8e1175bSopenharmony_ci (void) mac_length; 63a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 64a8e1175bSopenharmony_ci#endif 65a8e1175bSopenharmony_ci } 66a8e1175bSopenharmony_ci 67a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 68a8e1175bSopenharmony_ci} 69a8e1175bSopenharmony_ci 70a8e1175bSopenharmony_cipsa_status_t mbedtls_test_transparent_mac_sign_setup( 71a8e1175bSopenharmony_ci mbedtls_transparent_test_driver_mac_operation_t *operation, 72a8e1175bSopenharmony_ci const psa_key_attributes_t *attributes, 73a8e1175bSopenharmony_ci const uint8_t *key_buffer, 74a8e1175bSopenharmony_ci size_t key_buffer_size, 75a8e1175bSopenharmony_ci psa_algorithm_t alg) 76a8e1175bSopenharmony_ci{ 77a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 78a8e1175bSopenharmony_ci 79a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 80a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 81a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 82a8e1175bSopenharmony_ci } else { 83a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ 84a8e1175bSopenharmony_ci defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) 85a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 86a8e1175bSopenharmony_ci libtestdriver1_mbedtls_psa_mac_sign_setup( 87a8e1175bSopenharmony_ci operation, 88a8e1175bSopenharmony_ci (const libtestdriver1_psa_key_attributes_t *) attributes, 89a8e1175bSopenharmony_ci key_buffer, key_buffer_size, alg); 90a8e1175bSopenharmony_ci#elif defined(MBEDTLS_PSA_BUILTIN_MAC) 91a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 92a8e1175bSopenharmony_ci mbedtls_psa_mac_sign_setup( 93a8e1175bSopenharmony_ci operation, attributes, key_buffer, key_buffer_size, alg); 94a8e1175bSopenharmony_ci#else 95a8e1175bSopenharmony_ci (void) operation; 96a8e1175bSopenharmony_ci (void) attributes; 97a8e1175bSopenharmony_ci (void) key_buffer; 98a8e1175bSopenharmony_ci (void) key_buffer_size; 99a8e1175bSopenharmony_ci (void) alg; 100a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 101a8e1175bSopenharmony_ci#endif 102a8e1175bSopenharmony_ci } 103a8e1175bSopenharmony_ci 104a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 105a8e1175bSopenharmony_ci} 106a8e1175bSopenharmony_ci 107a8e1175bSopenharmony_cipsa_status_t mbedtls_test_transparent_mac_verify_setup( 108a8e1175bSopenharmony_ci mbedtls_transparent_test_driver_mac_operation_t *operation, 109a8e1175bSopenharmony_ci const psa_key_attributes_t *attributes, 110a8e1175bSopenharmony_ci const uint8_t *key_buffer, 111a8e1175bSopenharmony_ci size_t key_buffer_size, 112a8e1175bSopenharmony_ci psa_algorithm_t alg) 113a8e1175bSopenharmony_ci{ 114a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 115a8e1175bSopenharmony_ci 116a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 117a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 118a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 119a8e1175bSopenharmony_ci } else { 120a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ 121a8e1175bSopenharmony_ci defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) 122a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 123a8e1175bSopenharmony_ci libtestdriver1_mbedtls_psa_mac_verify_setup( 124a8e1175bSopenharmony_ci operation, 125a8e1175bSopenharmony_ci (const libtestdriver1_psa_key_attributes_t *) attributes, 126a8e1175bSopenharmony_ci key_buffer, key_buffer_size, alg); 127a8e1175bSopenharmony_ci#elif defined(MBEDTLS_PSA_BUILTIN_MAC) 128a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 129a8e1175bSopenharmony_ci mbedtls_psa_mac_verify_setup( 130a8e1175bSopenharmony_ci operation, attributes, key_buffer, key_buffer_size, alg); 131a8e1175bSopenharmony_ci#else 132a8e1175bSopenharmony_ci (void) operation; 133a8e1175bSopenharmony_ci (void) attributes; 134a8e1175bSopenharmony_ci (void) key_buffer; 135a8e1175bSopenharmony_ci (void) key_buffer_size; 136a8e1175bSopenharmony_ci (void) alg; 137a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 138a8e1175bSopenharmony_ci#endif 139a8e1175bSopenharmony_ci } 140a8e1175bSopenharmony_ci 141a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 142a8e1175bSopenharmony_ci} 143a8e1175bSopenharmony_ci 144a8e1175bSopenharmony_cipsa_status_t mbedtls_test_transparent_mac_update( 145a8e1175bSopenharmony_ci mbedtls_transparent_test_driver_mac_operation_t *operation, 146a8e1175bSopenharmony_ci const uint8_t *input, 147a8e1175bSopenharmony_ci size_t input_length) 148a8e1175bSopenharmony_ci{ 149a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 150a8e1175bSopenharmony_ci 151a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 152a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 153a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 154a8e1175bSopenharmony_ci } else { 155a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ 156a8e1175bSopenharmony_ci defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) 157a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 158a8e1175bSopenharmony_ci libtestdriver1_mbedtls_psa_mac_update( 159a8e1175bSopenharmony_ci operation, input, input_length); 160a8e1175bSopenharmony_ci#elif defined(MBEDTLS_PSA_BUILTIN_MAC) 161a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 162a8e1175bSopenharmony_ci mbedtls_psa_mac_update( 163a8e1175bSopenharmony_ci operation, input, input_length); 164a8e1175bSopenharmony_ci#else 165a8e1175bSopenharmony_ci (void) operation; 166a8e1175bSopenharmony_ci (void) input; 167a8e1175bSopenharmony_ci (void) input_length; 168a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 169a8e1175bSopenharmony_ci#endif 170a8e1175bSopenharmony_ci } 171a8e1175bSopenharmony_ci 172a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 173a8e1175bSopenharmony_ci} 174a8e1175bSopenharmony_ci 175a8e1175bSopenharmony_cipsa_status_t mbedtls_test_transparent_mac_sign_finish( 176a8e1175bSopenharmony_ci mbedtls_transparent_test_driver_mac_operation_t *operation, 177a8e1175bSopenharmony_ci uint8_t *mac, 178a8e1175bSopenharmony_ci size_t mac_size, 179a8e1175bSopenharmony_ci size_t *mac_length) 180a8e1175bSopenharmony_ci{ 181a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 182a8e1175bSopenharmony_ci 183a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 184a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 185a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 186a8e1175bSopenharmony_ci } else { 187a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ 188a8e1175bSopenharmony_ci defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) 189a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 190a8e1175bSopenharmony_ci libtestdriver1_mbedtls_psa_mac_sign_finish( 191a8e1175bSopenharmony_ci operation, mac, mac_size, mac_length); 192a8e1175bSopenharmony_ci#elif defined(MBEDTLS_PSA_BUILTIN_MAC) 193a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 194a8e1175bSopenharmony_ci mbedtls_psa_mac_sign_finish( 195a8e1175bSopenharmony_ci operation, mac, mac_size, mac_length); 196a8e1175bSopenharmony_ci#else 197a8e1175bSopenharmony_ci (void) operation; 198a8e1175bSopenharmony_ci (void) mac; 199a8e1175bSopenharmony_ci (void) mac_size; 200a8e1175bSopenharmony_ci (void) mac_length; 201a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 202a8e1175bSopenharmony_ci#endif 203a8e1175bSopenharmony_ci } 204a8e1175bSopenharmony_ci 205a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 206a8e1175bSopenharmony_ci} 207a8e1175bSopenharmony_ci 208a8e1175bSopenharmony_cipsa_status_t mbedtls_test_transparent_mac_verify_finish( 209a8e1175bSopenharmony_ci mbedtls_transparent_test_driver_mac_operation_t *operation, 210a8e1175bSopenharmony_ci const uint8_t *mac, 211a8e1175bSopenharmony_ci size_t mac_length) 212a8e1175bSopenharmony_ci{ 213a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 214a8e1175bSopenharmony_ci 215a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 216a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 217a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 218a8e1175bSopenharmony_ci } else { 219a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ 220a8e1175bSopenharmony_ci defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) 221a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 222a8e1175bSopenharmony_ci libtestdriver1_mbedtls_psa_mac_verify_finish( 223a8e1175bSopenharmony_ci operation, mac, mac_length); 224a8e1175bSopenharmony_ci#elif defined(MBEDTLS_PSA_BUILTIN_MAC) 225a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 226a8e1175bSopenharmony_ci mbedtls_psa_mac_verify_finish( 227a8e1175bSopenharmony_ci operation, mac, mac_length); 228a8e1175bSopenharmony_ci#else 229a8e1175bSopenharmony_ci (void) operation; 230a8e1175bSopenharmony_ci (void) mac; 231a8e1175bSopenharmony_ci (void) mac_length; 232a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 233a8e1175bSopenharmony_ci#endif 234a8e1175bSopenharmony_ci } 235a8e1175bSopenharmony_ci 236a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 237a8e1175bSopenharmony_ci} 238a8e1175bSopenharmony_ci 239a8e1175bSopenharmony_cipsa_status_t mbedtls_test_transparent_mac_abort( 240a8e1175bSopenharmony_ci mbedtls_transparent_test_driver_mac_operation_t *operation) 241a8e1175bSopenharmony_ci{ 242a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 243a8e1175bSopenharmony_ci 244a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 245a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 246a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 247a8e1175bSopenharmony_ci } else { 248a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ 249a8e1175bSopenharmony_ci defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) 250a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 251a8e1175bSopenharmony_ci libtestdriver1_mbedtls_psa_mac_abort(operation); 252a8e1175bSopenharmony_ci#elif defined(MBEDTLS_PSA_BUILTIN_MAC) 253a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 254a8e1175bSopenharmony_ci mbedtls_psa_mac_abort(operation); 255a8e1175bSopenharmony_ci#else 256a8e1175bSopenharmony_ci (void) operation; 257a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 258a8e1175bSopenharmony_ci#endif 259a8e1175bSopenharmony_ci } 260a8e1175bSopenharmony_ci 261a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 262a8e1175bSopenharmony_ci} 263a8e1175bSopenharmony_ci 264a8e1175bSopenharmony_cipsa_status_t mbedtls_test_opaque_mac_compute( 265a8e1175bSopenharmony_ci const psa_key_attributes_t *attributes, 266a8e1175bSopenharmony_ci const uint8_t *key_buffer, 267a8e1175bSopenharmony_ci size_t key_buffer_size, 268a8e1175bSopenharmony_ci psa_algorithm_t alg, 269a8e1175bSopenharmony_ci const uint8_t *input, 270a8e1175bSopenharmony_ci size_t input_length, 271a8e1175bSopenharmony_ci uint8_t *mac, 272a8e1175bSopenharmony_ci size_t mac_size, 273a8e1175bSopenharmony_ci size_t *mac_length) 274a8e1175bSopenharmony_ci{ 275a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 276a8e1175bSopenharmony_ci 277a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 278a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 279a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 280a8e1175bSopenharmony_ci } else { 281a8e1175bSopenharmony_ci (void) attributes; 282a8e1175bSopenharmony_ci (void) key_buffer; 283a8e1175bSopenharmony_ci (void) key_buffer_size; 284a8e1175bSopenharmony_ci (void) alg; 285a8e1175bSopenharmony_ci (void) input; 286a8e1175bSopenharmony_ci (void) input_length; 287a8e1175bSopenharmony_ci (void) mac; 288a8e1175bSopenharmony_ci (void) mac_size; 289a8e1175bSopenharmony_ci (void) mac_length; 290a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 291a8e1175bSopenharmony_ci } 292a8e1175bSopenharmony_ci 293a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 294a8e1175bSopenharmony_ci} 295a8e1175bSopenharmony_ci 296a8e1175bSopenharmony_cipsa_status_t mbedtls_test_opaque_mac_sign_setup( 297a8e1175bSopenharmony_ci mbedtls_opaque_test_driver_mac_operation_t *operation, 298a8e1175bSopenharmony_ci const psa_key_attributes_t *attributes, 299a8e1175bSopenharmony_ci const uint8_t *key_buffer, 300a8e1175bSopenharmony_ci size_t key_buffer_size, 301a8e1175bSopenharmony_ci psa_algorithm_t alg) 302a8e1175bSopenharmony_ci{ 303a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 304a8e1175bSopenharmony_ci 305a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 306a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 307a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 308a8e1175bSopenharmony_ci } else { 309a8e1175bSopenharmony_ci (void) operation; 310a8e1175bSopenharmony_ci (void) attributes; 311a8e1175bSopenharmony_ci (void) key_buffer; 312a8e1175bSopenharmony_ci (void) key_buffer_size; 313a8e1175bSopenharmony_ci (void) alg; 314a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 315a8e1175bSopenharmony_ci } 316a8e1175bSopenharmony_ci 317a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 318a8e1175bSopenharmony_ci} 319a8e1175bSopenharmony_ci 320a8e1175bSopenharmony_cipsa_status_t mbedtls_test_opaque_mac_verify_setup( 321a8e1175bSopenharmony_ci mbedtls_opaque_test_driver_mac_operation_t *operation, 322a8e1175bSopenharmony_ci const psa_key_attributes_t *attributes, 323a8e1175bSopenharmony_ci const uint8_t *key_buffer, 324a8e1175bSopenharmony_ci size_t key_buffer_size, 325a8e1175bSopenharmony_ci psa_algorithm_t alg) 326a8e1175bSopenharmony_ci{ 327a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 328a8e1175bSopenharmony_ci 329a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 330a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 331a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 332a8e1175bSopenharmony_ci } else { 333a8e1175bSopenharmony_ci (void) operation; 334a8e1175bSopenharmony_ci (void) attributes; 335a8e1175bSopenharmony_ci (void) key_buffer; 336a8e1175bSopenharmony_ci (void) key_buffer_size; 337a8e1175bSopenharmony_ci (void) alg; 338a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 339a8e1175bSopenharmony_ci } 340a8e1175bSopenharmony_ci 341a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 342a8e1175bSopenharmony_ci} 343a8e1175bSopenharmony_ci 344a8e1175bSopenharmony_cipsa_status_t mbedtls_test_opaque_mac_update( 345a8e1175bSopenharmony_ci mbedtls_opaque_test_driver_mac_operation_t *operation, 346a8e1175bSopenharmony_ci const uint8_t *input, 347a8e1175bSopenharmony_ci size_t input_length) 348a8e1175bSopenharmony_ci{ 349a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 350a8e1175bSopenharmony_ci 351a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 352a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 353a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 354a8e1175bSopenharmony_ci } else { 355a8e1175bSopenharmony_ci (void) operation; 356a8e1175bSopenharmony_ci (void) input; 357a8e1175bSopenharmony_ci (void) input_length; 358a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 359a8e1175bSopenharmony_ci } 360a8e1175bSopenharmony_ci 361a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 362a8e1175bSopenharmony_ci} 363a8e1175bSopenharmony_ci 364a8e1175bSopenharmony_cipsa_status_t mbedtls_test_opaque_mac_sign_finish( 365a8e1175bSopenharmony_ci mbedtls_opaque_test_driver_mac_operation_t *operation, 366a8e1175bSopenharmony_ci uint8_t *mac, 367a8e1175bSopenharmony_ci size_t mac_size, 368a8e1175bSopenharmony_ci size_t *mac_length) 369a8e1175bSopenharmony_ci{ 370a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 371a8e1175bSopenharmony_ci 372a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 373a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 374a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 375a8e1175bSopenharmony_ci } else { 376a8e1175bSopenharmony_ci (void) operation; 377a8e1175bSopenharmony_ci (void) mac; 378a8e1175bSopenharmony_ci (void) mac_size; 379a8e1175bSopenharmony_ci (void) mac_length; 380a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 381a8e1175bSopenharmony_ci } 382a8e1175bSopenharmony_ci 383a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 384a8e1175bSopenharmony_ci} 385a8e1175bSopenharmony_ci 386a8e1175bSopenharmony_cipsa_status_t mbedtls_test_opaque_mac_verify_finish( 387a8e1175bSopenharmony_ci mbedtls_opaque_test_driver_mac_operation_t *operation, 388a8e1175bSopenharmony_ci const uint8_t *mac, 389a8e1175bSopenharmony_ci size_t mac_length) 390a8e1175bSopenharmony_ci{ 391a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 392a8e1175bSopenharmony_ci 393a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 394a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 395a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 396a8e1175bSopenharmony_ci } else { 397a8e1175bSopenharmony_ci (void) operation; 398a8e1175bSopenharmony_ci (void) mac; 399a8e1175bSopenharmony_ci (void) mac_length; 400a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 401a8e1175bSopenharmony_ci } 402a8e1175bSopenharmony_ci 403a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 404a8e1175bSopenharmony_ci} 405a8e1175bSopenharmony_ci 406a8e1175bSopenharmony_cipsa_status_t mbedtls_test_opaque_mac_abort( 407a8e1175bSopenharmony_ci mbedtls_opaque_test_driver_mac_operation_t *operation) 408a8e1175bSopenharmony_ci{ 409a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.hits++; 410a8e1175bSopenharmony_ci 411a8e1175bSopenharmony_ci if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { 412a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = 413a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.forced_status; 414a8e1175bSopenharmony_ci } else { 415a8e1175bSopenharmony_ci (void) operation; 416a8e1175bSopenharmony_ci mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; 417a8e1175bSopenharmony_ci } 418a8e1175bSopenharmony_ci 419a8e1175bSopenharmony_ci return mbedtls_test_driver_mac_hooks.driver_status; 420a8e1175bSopenharmony_ci} 421a8e1175bSopenharmony_ci 422a8e1175bSopenharmony_ci#endif /* PSA_CRYPTO_DRIVER_TEST */ 423