Make psa_get_mac_output_length testable and test it

Signed-off-by: Steven Cooreman <steven.cooreman@silabs.com>
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 9f014d0..a112ff4 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -564,9 +564,10 @@
  *         \p algorithm tries to truncate the MAC to a size which would be
  *         larger than the underlying algorithm's maximum output length.
  */
-static psa_status_t psa_get_mac_output_length( psa_algorithm_t algorithm,
-                                               psa_key_type_t key_type,
-                                               size_t *length )
+MBEDTLS_STATIC_TESTABLE psa_status_t psa_get_mac_output_length(
+    psa_algorithm_t algorithm,
+    psa_key_type_t key_type,
+    size_t *length )
 {
     /* Get the default length for the algorithm and key combination. None of the
      * currently supported algorithms have a default output length dependent on
diff --git a/library/psa_crypto_invasive.h b/library/psa_crypto_invasive.h
index be127d9..99156de 100644
--- a/library/psa_crypto_invasive.h
+++ b/library/psa_crypto_invasive.h
@@ -35,6 +35,7 @@
 #endif
 
 #include "psa/crypto.h"
+#include "common.h"
 
 #include "mbedtls/entropy.h"
 
@@ -76,4 +77,10 @@
     void (* entropy_free )( mbedtls_entropy_context *ctx ) );
 #endif /* !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) */
 
+#if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C)
+psa_status_t psa_get_mac_output_length( psa_algorithm_t algorithm,
+                                        psa_key_type_t key_type,
+                                        size_t *length );
+#endif /* MBEDTLS_TEST_HOOKS && MBEDTLS_PSA_CRYPTO_C */
+
 #endif /* PSA_CRYPTO_INVASIVE_H */
diff --git a/tests/suites/test_suite_psa_crypto_metadata.function b/tests/suites/test_suite_psa_crypto_metadata.function
index 3b3e380..5839611 100644
--- a/tests/suites/test_suite_psa_crypto_metadata.function
+++ b/tests/suites/test_suite_psa_crypto_metadata.function
@@ -9,6 +9,7 @@
 #endif
 
 #include "psa/crypto.h"
+#include "psa_crypto_invasive.h"
 
 /* Flags for algorithm classification macros. There is a flag for every
  * algorithm classification macro PSA_ALG_IS_xxx except for the
@@ -158,6 +159,12 @@
     /* Length */
     TEST_EQUAL( length, PSA_MAC_LENGTH( key_type, key_bits, alg ) );
 
+#if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C)
+    size_t output_length = 0;
+    PSA_ASSERT( psa_get_mac_output_length( alg, key_type, &output_length ) );
+    TEST_EQUAL( length, output_length );
+#endif
+
 exit: ;
 }