Use function for 16/24/32-bit BE conversion
Use functions for 16/24/32-bit big endian conversion to save ROM.
diff --git a/library/platform_util.c b/library/platform_util.c
index 756e226..f901769 100644
--- a/library/platform_util.c
+++ b/library/platform_util.c
@@ -134,3 +134,54 @@
#endif /* _WIN32 && !EFIX64 && !EFI32 */
}
#endif /* MBEDTLS_HAVE_TIME_DATE && MBEDTLS_PLATFORM_GMTIME_R_ALT */
+
+unsigned char * mbedtls_platform_put_uint32_be( unsigned char *buf,
+ unsigned long num)
+{
+ *buf++ = (unsigned char) ( num >> 24 );
+ *buf++ = (unsigned char) ( num >> 16 );
+ *buf++ = (unsigned char) ( num >> 8 );
+ *buf++ = (unsigned char) ( num );
+
+ return buf;
+}
+
+unsigned char * mbedtls_platform_put_uint24_be( unsigned char *buf,
+ unsigned long num )
+{
+ *buf++ = (unsigned char) ( num >> 16 );
+ *buf++ = (unsigned char) ( num >> 8 );
+ *buf++ = (unsigned char) ( num );
+
+ return buf;
+}
+
+unsigned char * mbedtls_platform_put_uint16_be( unsigned char *buf,
+ unsigned long num )
+{
+ *buf++ = (unsigned char) ( num >> 8 );
+ *buf++ = (unsigned char) ( num );
+
+ return buf;
+}
+
+unsigned int mbedtls_platform_get_uint32_be( const unsigned char *buf )
+{
+ return ( ( (unsigned int) buf[0] << 24 ) |
+ ( (unsigned int) buf[1] << 16 ) |
+ ( (unsigned int) buf[2] << 8 ) |
+ ( (unsigned int) buf[3] ) );
+}
+
+unsigned int mbedtls_platform_get_uint24_be( const unsigned char *buf )
+{
+ return ( ( buf[0] << 16 ) |
+ ( buf[1] << 8) |
+ ( buf[2] ) );
+}
+
+unsigned short mbedtls_platform_get_uint16_be( const unsigned char *buf )
+{
+ return ( ( buf[0] << 8 ) |
+ ( buf[1] ) );
+}