mac.h (3923B)
1 /* 2 * Test driver for MAC driver entry points. 3 */ 4 /* Copyright The Mbed TLS Contributors 5 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 6 */ 7 8 #ifndef PSA_CRYPTO_TEST_DRIVERS_MAC_H 9 #define PSA_CRYPTO_TEST_DRIVERS_MAC_H 10 11 #include "mbedtls/build_info.h" 12 13 #if defined(PSA_CRYPTO_DRIVER_TEST) 14 #include "test_driver_common.h" 15 16 #include <psa/crypto_driver_common.h> 17 18 typedef struct { 19 /* If not PSA_SUCCESS, return this error code instead of processing the 20 * function call. */ 21 psa_status_t forced_status; 22 /* Count the amount of times MAC driver functions are called. */ 23 unsigned long hits; 24 /* Status returned by the last MAC driver function call. */ 25 psa_status_t driver_status; 26 } mbedtls_test_driver_mac_hooks_t; 27 28 #define MBEDTLS_TEST_DRIVER_MAC_INIT { 0, 0, 0 } 29 static inline mbedtls_test_driver_mac_hooks_t 30 mbedtls_test_driver_mac_hooks_init(void) 31 { 32 const mbedtls_test_driver_mac_hooks_t v = MBEDTLS_TEST_DRIVER_MAC_INIT; 33 return v; 34 } 35 36 extern mbedtls_test_driver_mac_hooks_t mbedtls_test_driver_mac_hooks; 37 38 psa_status_t mbedtls_test_transparent_mac_compute( 39 const psa_key_attributes_t *attributes, 40 const uint8_t *key_buffer, 41 size_t key_buffer_size, 42 psa_algorithm_t alg, 43 const uint8_t *input, 44 size_t input_length, 45 uint8_t *mac, 46 size_t mac_size, 47 size_t *mac_length); 48 49 psa_status_t mbedtls_test_transparent_mac_sign_setup( 50 mbedtls_transparent_test_driver_mac_operation_t *operation, 51 const psa_key_attributes_t *attributes, 52 const uint8_t *key_buffer, 53 size_t key_buffer_size, 54 psa_algorithm_t alg); 55 56 psa_status_t mbedtls_test_transparent_mac_verify_setup( 57 mbedtls_transparent_test_driver_mac_operation_t *operation, 58 const psa_key_attributes_t *attributes, 59 const uint8_t *key_buffer, 60 size_t key_buffer_size, 61 psa_algorithm_t alg); 62 63 psa_status_t mbedtls_test_transparent_mac_update( 64 mbedtls_transparent_test_driver_mac_operation_t *operation, 65 const uint8_t *input, 66 size_t input_length); 67 68 psa_status_t mbedtls_test_transparent_mac_sign_finish( 69 mbedtls_transparent_test_driver_mac_operation_t *operation, 70 uint8_t *mac, 71 size_t mac_size, 72 size_t *mac_length); 73 74 psa_status_t mbedtls_test_transparent_mac_verify_finish( 75 mbedtls_transparent_test_driver_mac_operation_t *operation, 76 const uint8_t *mac, 77 size_t mac_length); 78 79 psa_status_t mbedtls_test_transparent_mac_abort( 80 mbedtls_transparent_test_driver_mac_operation_t *operation); 81 82 psa_status_t mbedtls_test_opaque_mac_compute( 83 const psa_key_attributes_t *attributes, 84 const uint8_t *key_buffer, 85 size_t key_buffer_size, 86 psa_algorithm_t alg, 87 const uint8_t *input, 88 size_t input_length, 89 uint8_t *mac, 90 size_t mac_size, 91 size_t *mac_length); 92 93 psa_status_t mbedtls_test_opaque_mac_sign_setup( 94 mbedtls_opaque_test_driver_mac_operation_t *operation, 95 const psa_key_attributes_t *attributes, 96 const uint8_t *key_buffer, 97 size_t key_buffer_size, 98 psa_algorithm_t alg); 99 100 psa_status_t mbedtls_test_opaque_mac_verify_setup( 101 mbedtls_opaque_test_driver_mac_operation_t *operation, 102 const psa_key_attributes_t *attributes, 103 const uint8_t *key_buffer, 104 size_t key_buffer_size, 105 psa_algorithm_t alg); 106 107 psa_status_t mbedtls_test_opaque_mac_update( 108 mbedtls_opaque_test_driver_mac_operation_t *operation, 109 const uint8_t *input, 110 size_t input_length); 111 112 psa_status_t mbedtls_test_opaque_mac_sign_finish( 113 mbedtls_opaque_test_driver_mac_operation_t *operation, 114 uint8_t *mac, 115 size_t mac_size, 116 size_t *mac_length); 117 118 psa_status_t mbedtls_test_opaque_mac_verify_finish( 119 mbedtls_opaque_test_driver_mac_operation_t *operation, 120 const uint8_t *mac, 121 size_t mac_length); 122 123 psa_status_t mbedtls_test_opaque_mac_abort( 124 mbedtls_opaque_test_driver_mac_operation_t *operation); 125 126 #endif /* PSA_CRYPTO_DRIVER_TEST */ 127 #endif /* PSA_CRYPTO_TEST_DRIVERS_MAC_H */