diff --git a/library/platform_util.c b/library/platform_util.c
index 062aa3e..8f8a3aa 100644
--- a/library/platform_util.c
+++ b/library/platform_util.c
@@ -136,7 +136,7 @@
 #endif /* MBEDTLS_HAVE_TIME_DATE && MBEDTLS_PLATFORM_GMTIME_R_ALT */
 
 unsigned char* mbedtls_platform_put_uint32_be( unsigned char *buf,
-                                               uint32_t num )
+                                               size_t num )
 {
     *buf++ = (unsigned char) ( num >> 24 );
     *buf++ = (unsigned char) ( num >> 16 );
@@ -147,7 +147,7 @@
 }
 
 unsigned char* mbedtls_platform_put_uint24_be( unsigned char *buf,
-                                               uint32_t num )
+                                               size_t num )
 {
     *buf++ = (unsigned char) ( num >> 16 );
     *buf++ = (unsigned char) ( num >> 8  );
@@ -157,7 +157,7 @@
 }
 
 unsigned char* mbedtls_platform_put_uint16_be( unsigned char *buf,
-                                               uint32_t num )
+                                               size_t num )
 {
     *buf++ = (unsigned char) ( num >> 8 );
     *buf++ = (unsigned char) ( num      );
@@ -165,7 +165,7 @@
     return buf;
 }
 
-uint32_t mbedtls_platform_get_uint32_be( const unsigned char *buf )
+size_t mbedtls_platform_get_uint32_be( const unsigned char *buf )
 {
     return ( ( (unsigned int) buf[0] << 24 ) |
              ( (unsigned int) buf[1] << 16 ) |
@@ -173,14 +173,14 @@
              ( (unsigned int) buf[3]       ) );
 }
 
-uint32_t mbedtls_platform_get_uint24_be( const unsigned char *buf )
+size_t mbedtls_platform_get_uint24_be( const unsigned char *buf )
 {
     return ( ( buf[0] << 16 ) |
              ( buf[1] <<  8)  |
              ( buf[2]      ) );
 }
 
-uint16_t mbedtls_platform_get_uint16_be( const unsigned char *buf )
+size_t mbedtls_platform_get_uint16_be( const unsigned char *buf )
 {
     return ( ( buf[0] << 8 )  |
              ( buf[1]      ) );
