Error out if a driver tries to store more than ITS can handle

Cast explicitly for the sake of MSVC which otherwise (usefully!) warns
about the truncation.
diff --git a/library/psa_crypto_se.c b/library/psa_crypto_se.c
index bae44fa..714a039 100644
--- a/library/psa_crypto_se.c
+++ b/library/psa_crypto_se.c
@@ -127,6 +127,13 @@
 {
     if( driver->lifetime > PSA_MAX_SE_LIFETIME )
         return( PSA_ERROR_NOT_SUPPORTED );
+
+#if SIZE_MAX > UINT32_MAX
+    /* ITS file sizes are limited to 32 bits. */
+    if( driver->internal.persistent_data_size > UINT32_MAX )
+        return( PSA_ERROR_NOT_SUPPORTED );
+#endif
+
     *uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + driver->lifetime;
     return( PSA_SUCCESS );
 }
@@ -141,7 +148,8 @@
     if( status != PSA_SUCCESS )
         return( status );
 
-    return( psa_its_get( uid, 0, driver->internal.persistent_data_size,
+    return( psa_its_get( uid, 0,
+                         (uint32_t) driver->internal.persistent_data_size,
                          driver->internal.persistent_data ) );
 }
 
@@ -155,7 +163,8 @@
     if( status != PSA_SUCCESS )
         return( status );
 
-    return( psa_its_set( uid, driver->internal.persistent_data_size,
+    return( psa_its_set( uid,
+                         (uint32_t) driver->internal.persistent_data_size,
                          driver->internal.persistent_data,
                          0 ) );
 }