diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 0ef73df..01ddb52 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -3365,7 +3365,7 @@
 {
     psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( alg );
     uint8_t hash_length = PSA_HASH_LENGTH( hash_alg );
-    psa_hmac_internal_data backup = MBEDTLS_PSA_HMAC_OPERATION_INIT;
+    psa_hmac_internal_data_t backup = MBEDTLS_PSA_HMAC_OPERATION_INIT;
     psa_status_t status, cleanup_status;
 
     /* We can't be wanting more output after block 0xff, otherwise
diff --git a/library/psa_crypto_mac.c b/library/psa_crypto_mac.c
index 5a7bc2c..5ea2f17 100644
--- a/library/psa_crypto_mac.c
+++ b/library/psa_crypto_mac.c
@@ -69,13 +69,13 @@
     }
 }
 
-psa_status_t psa_hmac_abort_internal( psa_hmac_internal_data *hmac )
+psa_status_t psa_hmac_abort_internal( psa_hmac_internal_data_t *hmac )
 {
     mbedtls_platform_zeroize( hmac->opad, sizeof( hmac->opad ) );
     return( psa_hash_abort( &hmac->hash_ctx ) );
 }
 
-psa_status_t psa_hmac_setup_internal( psa_hmac_internal_data *hmac,
+psa_status_t psa_hmac_setup_internal( psa_hmac_internal_data_t *hmac,
                                       const uint8_t *key,
                                       size_t key_length,
                                       psa_algorithm_t hash_alg )
@@ -139,14 +139,14 @@
     return( status );
 }
 
-psa_status_t psa_hmac_update_internal( psa_hmac_internal_data *hmac,
+psa_status_t psa_hmac_update_internal( psa_hmac_internal_data_t *hmac,
                                        const uint8_t *data,
                                        size_t data_length )
 {
     return( psa_hash_update( &hmac->hash_ctx, data, data_length ) );
 }
 
-psa_status_t psa_hmac_finish_internal( psa_hmac_internal_data *hmac,
+psa_status_t psa_hmac_finish_internal( psa_hmac_internal_data_t *hmac,
                                        uint8_t *mac,
                                        size_t mac_size )
 {
@@ -184,8 +184,8 @@
     return( status );
 }
 
-psa_status_t psa_hmac_clone_internal( const psa_hmac_internal_data *source,
-                                      psa_hmac_internal_data *destination )
+psa_status_t psa_hmac_clone_internal( const psa_hmac_internal_data_t *source,
+                                      psa_hmac_internal_data_t *destination )
 {
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
 
diff --git a/library/psa_crypto_mac.h b/library/psa_crypto_mac.h
index 6a56296..e63da53 100644
--- a/library/psa_crypto_mac.h
+++ b/library/psa_crypto_mac.h
@@ -39,7 +39,7 @@
  * \return Any error code reported by psa_hash_compute(), psa_hash_setup() or
  *         psa_hash_update().
  */
-psa_status_t psa_hmac_setup_internal( psa_hmac_internal_data *hmac,
+psa_status_t psa_hmac_setup_internal( psa_hmac_internal_data_t *hmac,
                                       const uint8_t *key,
                                       size_t key_length,
                                       psa_algorithm_t hash_alg );
@@ -59,7 +59,7 @@
  *         Success.
  * \return Any error code reported by psa_hash_update().
  */
-psa_status_t psa_hmac_update_internal( psa_hmac_internal_data *hmac,
+psa_status_t psa_hmac_update_internal( psa_hmac_internal_data_t *hmac,
                                        const uint8_t *data,
                                        size_t data_length );
 
@@ -78,7 +78,7 @@
  * \return Any error code reported by psa_hash_setup(), psa_hash_update() or
  *         psa_hash_finish().
  */
-psa_status_t psa_hmac_finish_internal( psa_hmac_internal_data *hmac,
+psa_status_t psa_hmac_finish_internal( psa_hmac_internal_data_t *hmac,
                                        uint8_t *mac,
                                        size_t mac_size );
 
@@ -96,8 +96,8 @@
  *         Success.
  * \return Any error code reported by psa_hash_clone().
  */
-psa_status_t psa_hmac_clone_internal( const psa_hmac_internal_data *source,
-                                      psa_hmac_internal_data *destination );
+psa_status_t psa_hmac_clone_internal( const psa_hmac_internal_data_t *source,
+                                      psa_hmac_internal_data_t *destination );
 
 /** Internal API for aborting an HMAC operation, using PSA hash primitives.
  *
@@ -110,7 +110,7 @@
  *         Success.
  * \return Any error code reported by psa_hash_abort().
  */
-psa_status_t psa_hmac_abort_internal( psa_hmac_internal_data *hmac );
+psa_status_t psa_hmac_abort_internal( psa_hmac_internal_data_t *hmac );
 
 /** Calculate the MAC (message authentication code) of a message using Mbed TLS.
  *
