diff --git a/library/pk_wrap.c b/library/pk_wrap.c
index 903c53b..a40734b 100644
--- a/library/pk_wrap.c
+++ b/library/pk_wrap.c
@@ -543,7 +543,7 @@
     mbedtls_ecdsa_context *ctx = ctx_arg;
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
-    psa_key_handle_t key_handle = 0;
+    psa_key_handle_t key_handle = PSA_KEY_HANDLE_INIT;
     psa_status_t status;
     mbedtls_pk_context key;
     int key_len;
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index c813ca3..85d9df4 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -2185,7 +2185,7 @@
     if( status != PSA_SUCCESS )
     {
         psa_fail_key_creation( slot, driver );
-        *handle = 0;
+        *handle = PSA_KEY_HANDLE_INIT;
     }
     return( status );
 }
@@ -2197,7 +2197,7 @@
     psa_status_t status;
     psa_key_slot_t *slot = NULL;
     psa_se_drv_table_entry_t *driver = NULL;
-    psa_key_handle_t handle = 0;
+    psa_key_handle_t handle = PSA_KEY_HANDLE_INIT;
 
     /* Leaving attributes unspecified is not currently supported.
      * It could make sense to query the key type and size from the
@@ -2290,7 +2290,7 @@
     if( status != PSA_SUCCESS )
     {
         psa_fail_key_creation( target_slot, driver );
-        *target_handle = 0;
+        *target_handle = PSA_KEY_HANDLE_INIT;
     }
     return( status );
 }
@@ -5390,7 +5390,7 @@
     if( status != PSA_SUCCESS )
     {
         psa_fail_key_creation( slot, driver );
-        *handle = 0;
+        *handle = PSA_KEY_HANDLE_INIT;
     }
     return( status );
 }
@@ -6232,7 +6232,7 @@
     if( status != PSA_SUCCESS )
     {
         psa_fail_key_creation( slot, driver );
-        *handle = 0;
+        *handle = PSA_KEY_HANDLE_INIT;
     }
     return( status );
 }
diff --git a/library/psa_crypto_slot_management.c b/library/psa_crypto_slot_management.c
index 060606e..dacd7f6 100644
--- a/library/psa_crypto_slot_management.c
+++ b/library/psa_crypto_slot_management.c
@@ -245,13 +245,13 @@
     if( status != PSA_SUCCESS )
     {
         psa_wipe_key_slot( slot );
-        *handle = 0;
+        *handle = PSA_KEY_HANDLE_INIT;
     }
     return( status );
 
 #else /* defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) */
     (void) key;
-    *handle = 0;
+    *handle = PSA_KEY_HANDLE_INIT;
     return( PSA_ERROR_NOT_SUPPORTED );
 #endif /* !defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) */
 }
diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index 76be8ab..9494c65 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -3802,7 +3802,7 @@
         status = psa_destroy_key( handshake->ecdh_psa_privkey );
         if( status != PSA_SUCCESS )
             return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED );
-        handshake->ecdh_psa_privkey = 0;
+        handshake->ecdh_psa_privkey = PSA_KEY_HANDLE_INIT;
     }
     else
 #endif /* MBEDTLS_USE_PSA_CRYPTO &&
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 7cb5b8c..6144851 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -507,7 +507,7 @@
 {
     psa_status_t status;
     psa_algorithm_t alg;
-    psa_key_handle_t master_slot = 0;
+    psa_key_handle_t master_slot = PSA_KEY_HANDLE_INIT;
     psa_key_derivation_operation_t derivation =
         PSA_KEY_DERIVATION_OPERATION_INIT;
 
@@ -4348,7 +4348,7 @@
     {
         /* The maintenance of the PSK key slot is the
          * user's responsibility. */
-        conf->psk_opaque = 0;
+        conf->psk_opaque = PSA_KEY_HANDLE_INIT;
     }
     /* This and the following branch should never
      * be taken simultaenously as we maintain the
@@ -4434,7 +4434,7 @@
 #if defined(MBEDTLS_USE_PSA_CRYPTO)
     if( ssl->handshake->psk_opaque != 0 )
     {
-        ssl->handshake->psk_opaque = 0;
+        ssl->handshake->psk_opaque = PSA_KEY_HANDLE_INIT;
     }
     else
 #endif /* MBEDTLS_USE_PSA_CRYPTO */
