Replace instances of byte reading macros with PUT
Instances of a group of byte reading macros which are equivilant to
MBEDTLS_PUT_UINTx_yz
Signed-off-by: Joe Subbiani <joe.subbiani@arm.com>
diff --git a/library/common.h b/library/common.h
index 6bb1f2c..9d45a0e 100644
--- a/library/common.h
+++ b/library/common.h
@@ -185,6 +185,40 @@
#endif
/**
+ * Get the unsigned 16 bits integer corresponding to two bytes in
+ * big-endian order (LSB first).
+ *
+ * \param data Base address of the memory to get the two bytes from.
+ * \param offset Offset from \p base of the first and most significant
+ * byte of the two bytes to build the 16 bits unsigned
+ * integer from.
+ */
+#ifndef MBEDTLS_GET_UINT16_BE
+#define MBEDTLS_GET_UINT16_BE( data, offset ) \
+ ( \
+ ( (uint16_t) ( data )[( offset ) ] << 8 ) \
+ | ( (uint16_t) ( data )[( offset ) + 1] ) \
+ )
+#endif
+
+/**
+ * Put in memory a 16 bits unsigned integer in big-endian order.
+ *
+ * \param n 16 bits unsigned integer to put in memory.
+ * \param data Base address of the memory where to put the 16
+ * bits unsigned integer in.
+ * \param offset Offset from \p base where to put the most significant
+ * byte of the 16 bits unsigned integer \p n.
+ */
+#ifndef MBEDTLS_PUT_UINT16_BE
+#define MBEDTLS_PUT_UINT16_BE( n, data, offset ) \
+{ \
+ ( data )[( offset ) ] = (unsigned char) ( ( (n) >> 8 ) & 0xFF ); \
+ ( data )[( offset ) + 1] = (unsigned char) ( ( (n) ) & 0xFF ); \
+}
+#endif
+
+/**
* Get the unsigned 64 bits integer corresponding to eight bytes in
* big-endian order (MSB first).
*
diff --git a/library/poly1305.c b/library/poly1305.c
index 1f35f1d..7375a0c 100644
--- a/library/poly1305.c
+++ b/library/poly1305.c
@@ -250,22 +250,10 @@
acc3 += ctx->s[3] + (uint32_t) ( d >> 32U );
/* Compute MAC (128 least significant bits of the accumulator) */
- mac[ 0] = MBEDTLS_BYTE_0( acc0 );
- mac[ 1] = MBEDTLS_BYTE_1( acc0 );
- mac[ 2] = MBEDTLS_BYTE_2( acc0 );
- mac[ 3] = MBEDTLS_BYTE_3( acc0 );
- mac[ 4] = MBEDTLS_BYTE_0( acc1 );
- mac[ 5] = MBEDTLS_BYTE_1( acc1 );
- mac[ 6] = MBEDTLS_BYTE_2( acc1 );
- mac[ 7] = MBEDTLS_BYTE_3( acc1 );
- mac[ 8] = MBEDTLS_BYTE_0( acc2 );
- mac[ 9] = MBEDTLS_BYTE_1( acc2 );
- mac[10] = MBEDTLS_BYTE_2( acc2 );
- mac[11] = MBEDTLS_BYTE_3( acc2 );
- mac[12] = MBEDTLS_BYTE_0( acc3 );
- mac[13] = MBEDTLS_BYTE_1( acc3 );
- mac[14] = MBEDTLS_BYTE_2( acc3 );
- mac[15] = MBEDTLS_BYTE_3( acc3 );
+ MBEDTLS_PUT_UINT32_LE( acc0, mac, 0 );
+ MBEDTLS_PUT_UINT32_LE( acc1, mac, 4 );
+ MBEDTLS_PUT_UINT32_LE( acc2, mac, 8 );
+ MBEDTLS_PUT_UINT32_LE( acc3, mac, 12 );
}
void mbedtls_poly1305_init( mbedtls_poly1305_context *ctx )
diff --git a/library/psa_its_file.c b/library/psa_its_file.c
index ac1561c..ee11cb3 100644
--- a/library/psa_its_file.c
+++ b/library/psa_its_file.c
@@ -197,14 +197,8 @@
size_t n;
memcpy( header.magic, PSA_ITS_MAGIC_STRING, PSA_ITS_MAGIC_LENGTH );
- header.size[0] = MBEDTLS_BYTE_0( data_length );
- header.size[1] = MBEDTLS_BYTE_1( data_length );
- header.size[2] = MBEDTLS_BYTE_2( data_length );
- header.size[3] = MBEDTLS_BYTE_3( data_length );
- header.flags[0] = MBEDTLS_BYTE_0( create_flags );
- header.flags[1] = MBEDTLS_BYTE_1( create_flags );
- header.flags[2] = MBEDTLS_BYTE_2( create_flags );
- header.flags[3] = MBEDTLS_BYTE_3( create_flags );
+ MBEDTLS_PUT_UINT32_LE( data_length, header.size, 0 );
+ MBEDTLS_PUT_UINT32_LE( create_flags, header.flags, 0 );
psa_its_fill_filename( uid, filename );
stream = fopen( PSA_ITS_STORAGE_TEMP, "wb" );
diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index 7e3c02a..3cdfca6 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -735,12 +735,10 @@
*olen = p - buf;
/* List length = olen - 2 (ext_type) - 2 (ext_len) - 2 (list_len) */
- buf[4] = MBEDTLS_BYTE_1( *olen - 6 );
- buf[5] = MBEDTLS_BYTE_0( *olen - 6 );
+ MBEDTLS_PUT_UINT16_BE( *olen - 6, buf, 4 );
/* Extension length = olen - 2 (ext_type) - 2 (ext_len) */
- buf[2] = MBEDTLS_BYTE_1( *olen - 4 );
- buf[3] = MBEDTLS_BYTE_0( *olen - 4 );
+ MBEDTLS_PUT_UINT16_BE( *olen - 4, buf, 2 );
return( 0 );
}
@@ -2897,8 +2895,7 @@
defined(MBEDTLS_SSL_PROTO_TLS1_2)
if( len_bytes == 2 )
{
- ssl->out_msg[offset+0] = MBEDTLS_BYTE_1( *olen );
- ssl->out_msg[offset+1] = MBEDTLS_BYTE_0( *olen );
+ MBEDTLS_PUT_UINT16_BE( *olen, ssl->out_msg, offset );
*olen += 2;
}
#endif
@@ -3682,8 +3679,7 @@
*/
content_len = ssl->handshake->dhm_ctx.len;
- ssl->out_msg[4] = MBEDTLS_BYTE_1( content_len );
- ssl->out_msg[5] = MBEDTLS_BYTE_0( content_len );
+ MBEDTLS_PUT_UINT16_BE( content_len, ssl->out_msg, 4 );
header_len = 6;
ret = mbedtls_dhm_make_public( &ssl->handshake->dhm_ctx,
@@ -4257,8 +4253,7 @@
return( ret );
}
- ssl->out_msg[4 + offset] = MBEDTLS_BYTE_1( n );
- ssl->out_msg[5 + offset] = MBEDTLS_BYTE_0( n );
+ MBEDTLS_PUT_UINT16_BE( n, ssl->out_msg, offset + 4 );
ssl->out_msglen = 6 + n + offset;
ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE;
diff --git a/library/ssl_msg.c b/library/ssl_msg.c
index 338fe25..a665ec9 100644
--- a/library/ssl_msg.c
+++ b/library/ssl_msg.c
@@ -454,15 +454,13 @@
*cur = rec->cid_len;
cur++;
- cur[0] = MBEDTLS_BYTE_1( rec->data_len );
- cur[1] = MBEDTLS_BYTE_0( rec->data_len );
+ MBEDTLS_PUT_UINT16_BE( rec->data_len, cur, 0 );
cur += 2;
}
else
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
{
- cur[0] = MBEDTLS_BYTE_1( rec->data_len );
- cur[1] = MBEDTLS_BYTE_0( rec->data_len );
+ MBEDTLS_PUT_UINT16_BE( rec->data_len, cur, 0 );
cur += 2;
}
@@ -2759,8 +2757,7 @@
/* Write message_seq and update it, except for HelloRequest */
if( hs_type != MBEDTLS_SSL_HS_HELLO_REQUEST )
{
- ssl->out_msg[4] = MBEDTLS_BYTE_1( ssl->handshake->out_msg_seq );
- ssl->out_msg[5] = MBEDTLS_BYTE_0( ssl->handshake->out_msg_seq );
+ MBEDTLS_PUT_UINT16_BE( ssl->handshake->out_msg_seq, ssl->out_msg, 4 );
++( ssl->handshake->out_msg_seq );
}
else
@@ -2874,8 +2871,7 @@
ssl->conf->transport, ssl->out_hdr + 1 );
memcpy( ssl->out_ctr, ssl->cur_out_ctr, 8 );
- ssl->out_len[0] = MBEDTLS_BYTE_1( len );
- ssl->out_len[1] = MBEDTLS_BYTE_0( len );
+ MBEDTLS_PUT_UINT16_BE( len, ssl->out_len, 0);
if( ssl->transform_out != NULL )
{
@@ -2915,8 +2911,7 @@
memcpy( ssl->out_cid, rec.cid, rec.cid_len );
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
ssl->out_msglen = len = rec.data_len;
- ssl->out_len[0] = MBEDTLS_BYTE_1( rec.data_len );
- ssl->out_len[1] = MBEDTLS_BYTE_0( rec.data_len );
+ MBEDTLS_PUT_UINT16_BE( rec.data_len, ssl->out_len, 0 );
}
protected_record_size = len + mbedtls_ssl_out_hdr_len( ssl );
@@ -3492,8 +3487,7 @@
obuf[15] = obuf[23] = MBEDTLS_BYTE_1( *olen - 25 );
obuf[16] = obuf[24] = MBEDTLS_BYTE_0( *olen - 25 );
- obuf[11] = MBEDTLS_BYTE_1( *olen - 13 );
- obuf[12] = MBEDTLS_BYTE_0( *olen - 13 );
+ MBEDTLS_PUT_UINT16_BE( *olen - 13, obuf, 11 );
return( MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED );
}
@@ -4891,8 +4885,7 @@
ssl->in_hdr[0] = rec.type;
ssl->in_msg = rec.buf + rec.data_offset;
ssl->in_msglen = rec.data_len;
- ssl->in_len[0] = MBEDTLS_BYTE_1( rec.data_len );
- ssl->in_len[1] = MBEDTLS_BYTE_0( rec.data_len );
+ MBEDTLS_PUT_UINT16_BE( rec.data_len, ssl->in_len, 0 );
#if defined(MBEDTLS_ZLIB_SUPPORT)
if( ssl->transform_in != NULL &&
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index b3376d9..8e5c047 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -2604,16 +2604,13 @@
* 6 . 6 protocol name length
* 7 . 7+n protocol name
*/
- buf[0] = MBEDTLS_BYTE_1( MBEDTLS_TLS_EXT_ALPN );
- buf[1] = MBEDTLS_BYTE_0( MBEDTLS_TLS_EXT_ALPN );
+ MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_ALPN, buf, 0);
*olen = 7 + strlen( ssl->alpn_chosen );
- buf[2] = MBEDTLS_BYTE_1( *olen - 4 );
- buf[3] = MBEDTLS_BYTE_0( *olen - 4 );
+ MBEDTLS_PUT_UINT16_BE( *olen - 4, buf, 2 );
- buf[4] = MBEDTLS_BYTE_1( *olen - 6 );
- buf[5] = MBEDTLS_BYTE_0( *olen - 6 );
+ MBEDTLS_PUT_UINT16_BE( *olen - 6, buf, 4 );
buf[6] = MBEDTLS_BYTE_0( *olen - 7 );
@@ -2660,15 +2657,13 @@
}
/* extension */
- buf[0] = MBEDTLS_BYTE_1( MBEDTLS_TLS_EXT_USE_SRTP );
- buf[1] = MBEDTLS_BYTE_0( MBEDTLS_TLS_EXT_USE_SRTP );
+ MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_USE_SRTP, buf, 0 );
/*
* total length 5 and mki value: only one profile(2 bytes)
* and length(2 bytes) and srtp_mki )
*/
ext_len = 5 + mki_len;
- buf[2] = MBEDTLS_BYTE_1( ext_len );
- buf[3] = MBEDTLS_BYTE_0( ext_len );
+ MBEDTLS_PUT_UINT16_BE( ext_len, buf, 2 );
/* protection profile length: 2 */
buf[4] = 0x00;
@@ -2677,8 +2672,7 @@
ssl->dtls_srtp_info.chosen_dtls_srtp_profile );
if( profile_value != MBEDTLS_TLS_SRTP_UNSET )
{
- buf[6] = MBEDTLS_BYTE_1( profile_value );
- buf[7] = MBEDTLS_BYTE_0( profile_value );
+ MBEDTLS_PUT_UINT16_BE( profile_value, buf, 6 );
}
else
{
@@ -3167,8 +3161,7 @@
#endif
}
- p[0] = MBEDTLS_BYTE_1( sa_len );
- p[1] = MBEDTLS_BYTE_0( sa_len );
+ MBEDTLS_PUT_UINT16_BE( sa_len, p, 0 );
sa_len += 2;
p += sa_len;
}
@@ -3223,8 +3216,7 @@
ssl->out_msglen = p - buf;
ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE;
ssl->out_msg[0] = MBEDTLS_SSL_HS_CERTIFICATE_REQUEST;
- ssl->out_msg[4 + ct_len + sa_len] = MBEDTLS_BYTE_1( total_dn_size );
- ssl->out_msg[5 + ct_len + sa_len] = MBEDTLS_BYTE_0( total_dn_size );
+ MBEDTLS_PUT_UINT16_BE( total_dn_size, ssl->out_msg, 4 + ct_len + sa_len );
ret = mbedtls_ssl_write_handshake_msg( ssl );
@@ -4646,14 +4638,8 @@
tlen = 0;
}
- ssl->out_msg[4] = MBEDTLS_BYTE_3( lifetime );
- ssl->out_msg[5] = MBEDTLS_BYTE_2( lifetime );
- ssl->out_msg[6] = MBEDTLS_BYTE_1( lifetime );
- ssl->out_msg[7] = MBEDTLS_BYTE_0( lifetime );
-
- ssl->out_msg[8] = MBEDTLS_BYTE_1( tlen );
- ssl->out_msg[9] = MBEDTLS_BYTE_0( tlen );
-
+ MBEDTLS_PUT_UINT32_BE( lifetime, ssl->out_msg, 4 );
+ MBEDTLS_PUT_UINT16_BE( tlen, ssl->out_msg, 8 );
ssl->out_msglen = 10 + tlen;
/*
diff --git a/library/ssl_ticket.c b/library/ssl_ticket.c
index dfda1e8..046ed1b 100644
--- a/library/ssl_ticket.c
+++ b/library/ssl_ticket.c
@@ -245,8 +245,7 @@
{
goto cleanup;
}
- state_len_bytes[0] = MBEDTLS_BYTE_1( clear_len );
- state_len_bytes[1] = MBEDTLS_BYTE_0( clear_len );
+ MBEDTLS_PUT_UINT16_BE( clear_len, state_len_bytes, 0 );
/* Encrypt and authenticate */
if( ( ret = mbedtls_cipher_auth_encrypt_ext( &key->ctx,
diff --git a/library/x509write_crt.c b/library/x509write_crt.c
index d73c73c..184c90c 100644
--- a/library/x509write_crt.c
+++ b/library/x509write_crt.c
@@ -251,8 +251,7 @@
return( MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE );
c = buf + 5;
- ku[0] = MBEDTLS_BYTE_0( key_usage );
- ku[1] = MBEDTLS_BYTE_1( key_usage );
+ MBEDTLS_PUT_UINT16_LE( key_usage, ku, 0 );
ret = mbedtls_asn1_write_named_bitstring( &c, buf, ku, 9 );
if( ret < 0 )