← Commit list

ef892681f

Denys Vlasenko
Denys Vlasenko
2026-02-21
SUCCESS Duration: 144s

Subject

tls: code shrink

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0
gcc -Wp,-MD,applets/.usage.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer      -Iinclude -Iinclude -o applets/usage applets/usage.c

Build Log

(log yok)

Commit Diff GitHub →

networking/tls.c+13 -14
@@ -712,7 +712,7 @@ static void xwrite_encrypted_and_hmac_signed(tls_state_t *tls, unsigned size, un
xhdr->proto_min = TLS_MIN;
/* fake unencrypted record len for MAC calculation */
xhdr->len16_hi = size >> 8;
- xhdr->len16_lo = size & 0xff;
+ xhdr->len16_lo = size; // & 0xff implicit
/* Calculate MAC signature */
hmac_blocks(tls, buf + size, /* result */
@@ -764,7 +764,7 @@ static void xwrite_encrypted_and_hmac_signed(tls_state_t *tls, unsigned size, un
) {
/* No encryption, only signing */
xhdr->len16_hi = size >> 8;
- xhdr->len16_lo = size & 0xff;
+ xhdr->len16_lo = size; // & 0xff implicit
dump_raw_out(">> %s", xhdr, RECHDR_LEN + size);
xwrite(tls->ofd, xhdr, RECHDR_LEN + size);
dbg("wrote %u bytes (NULL crypt, SHA256 hash)", size);
@@ -845,7 +845,7 @@ static void xwrite_encrypted_and_hmac_signed(tls_state_t *tls, unsigned size, un
AES_BLOCK_SIZE, size, padding_length);
size += AES_BLOCK_SIZE; /* + IV */
xhdr->len16_hi = size >> 8;
- xhdr->len16_lo = size & 0xff;
+ xhdr->len16_lo = size; // & 0xff implicit
dump_raw_out(">> %s", xhdr, RECHDR_LEN + size);
xwrite(tls->ofd, xhdr, RECHDR_LEN + size);
dbg("wrote %u bytes", (int)RECHDR_LEN + size);
@@ -929,7 +929,7 @@ static void xwrite_encrypted_aesgcm(tls_state_t *tls, unsigned size, unsigned ty
xhdr->proto_maj = TLS_MAJ;
xhdr->proto_min = TLS_MIN;
xhdr->len16_hi = size >> 8;
- xhdr->len16_lo = size & 0xff;
+ xhdr->len16_lo = size; // & 0xff implicit
size += RECHDR_LEN;
dump_raw_out(">> %s", xhdr, size);
xwrite(tls->ofd, xhdr, size);
@@ -955,7 +955,7 @@ static void xwrite_handshake_record(tls_state_t *tls, unsigned size)
xhdr->proto_maj = TLS_MAJ;
xhdr->proto_min = TLS_MIN;
xhdr->len16_hi = size >> 8;
- xhdr->len16_lo = size & 0xff;
+ xhdr->len16_lo = size; // & 0xff implicit
dump_raw_out(">> %s", xhdr, RECHDR_LEN + size);
xwrite(tls->ofd, xhdr, RECHDR_LEN + size);
dbg("wrote %u bytes", (int)RECHDR_LEN + size);
@@ -1536,7 +1536,7 @@ static ALWAYS_INLINE void fill_handshake_record_hdr(void *buf, unsigned type, un
h->type = type;
h->len24_hi = len >> 16;
h->len24_mid = len >> 8;
- h->len24_lo = len & 0xff;
+ h->len24_lo = len; // & 0xff implicit
}
static void *get_outbuf_fill_handshake_record(tls_state_t *tls, unsigned type, unsigned len)
@@ -1991,7 +1991,7 @@ static void send_client_key_exchange(tls_state_t *tls)
);
/* keylen16 exists for RSA (in TLS, not in SSL), but not for some other key types */
record->key[0] = len >> 8;
- record->key[1] = len & 0xff;
+ record->key[1] = len; // & 0xff implicit
len += 2;
premaster_size = RSA_PREMASTER_SIZE;
} else {
@@ -2028,7 +2028,7 @@ static void send_client_key_exchange(tls_state_t *tls)
record->type = HANDSHAKE_CLIENT_KEY_EXCHANGE;
/* record->len24_hi = 0; - already is */
record->len24_mid = len >> 8;
- record->len24_lo = len & 0xff;
+ record->len24_lo = len;
len += 4;
dbg(">> CLIENT_KEY_EXCHANGE");
@@ -2444,14 +2444,13 @@ static void get_client_hello(tls_state_t *tls)
/* NB: the recv'd block is already hashed by tls_xread_handshake_block() */
hp = (void*)(tls->inbuf + RECHDR_LEN);
if (hp->type != HANDSHAKE_CLIENT_HELLO
- || hp->len24_hi != 0
- || len != ((hp->len24_mid << 8) | hp->len24_lo) + 4
+ || len != get24be(&hp->len24_hi) + 4
|| hp->proto_maj != TLS_MAJ
|| !is_minor_version_valid(tls, hp->proto_min)
) {
bad_record_die(tls, "'client hello'", len);
}
- dbg("<< CLIENT_HELLO len:%d len24:%d", len, (hp->len24_mid << 8) | hp->len24_lo);
+ dbg("<< CLIENT_HELLO len:%d len24:%d", len, get24be(&len24_hi));
/* Save client random */
memcpy(tls->hsd->client_and_server_rand32, hp->rand32, 32);
@@ -2621,7 +2620,7 @@ static void send_server_hello(tls_state_t *tls)
/* Selected cipher suite */
record->cipherid_hi = tls->cipher_id >> 8;
- record->cipherid_lo = tls->cipher_id; /* & 0xff implicit */
+ record->cipherid_lo = tls->cipher_id; // & 0xff implicit
/* No compression */
//record->comprtype = 0;
@@ -2735,14 +2734,14 @@ static void send_server_key_exchange(tls_state_t *tls)
/* Signature length (2 bytes, big-endian) */
p[0] = sig_len >> 8;
- p[1] = sig_len & 0xff;
+ p[1] = sig_len; // & 0xff implicit
/* Total handshake message length: params + hash_alg(1) + sign_alg(1) + sig_len(2) + signature */
total_len = params_len + 2 + 2 + sig_len;
//record->len24_hi = 0; /* already zero from tls_get_zeroed_outbuf() */
record->len24_mid = total_len >> 8;
- record->len24_lo = total_len & 0xff;
+ record->len24_lo = total_len; // & 0xff implicit
/* Total wire length */
total_len += 4; /* type + len24 */