From 43f36d5e7fb1ede3c9be8adaea2c94b91bb67bf2 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Wed, 8 Feb 2023 19:34:39 +0100 Subject: [PATCH] LibTLS: Use `AK::Stream` for serializing TLS packets We are working with a MemoryStream, so our stream operations shouldn't ever fail as long as we stay in-bounds, so `MUST` is fine. --- Userland/Libraries/LibTLS/Record.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Userland/Libraries/LibTLS/Record.cpp b/Userland/Libraries/LibTLS/Record.cpp index 3496ab1a574..d20a2633035 100644 --- a/Userland/Libraries/LibTLS/Record.cpp +++ b/Userland/Libraries/LibTLS/Record.cpp @@ -5,8 +5,8 @@ */ #include -#include #include +#include #include #include #include @@ -141,15 +141,15 @@ void TLSv12::update_packet(ByteBuffer& packet) // length (2) u8 aad[13]; Bytes aad_bytes { aad, 13 }; - DeprecatedOutputMemoryStream aad_stream { aad_bytes }; + FixedMemoryStream aad_stream { aad_bytes }; u64 seq_no = AK::convert_between_host_and_network_endian(m_context.local_sequence_number); u16 len = AK::convert_between_host_and_network_endian((u16)(packet.size() - header_size)); - aad_stream.write({ &seq_no, sizeof(seq_no) }); - aad_stream.write(packet.bytes().slice(0, 3)); // content-type + version - aad_stream.write({ &len, sizeof(len) }); // length - VERIFY(aad_stream.is_end()); + MUST(aad_stream.write_value(seq_no)); // sequence number + MUST(aad_stream.write_entire_buffer(packet.bytes().slice(0, 3))); // content-type + version + MUST(aad_stream.write_value(len)); // length + VERIFY(MUST(aad_stream.tell()) == MUST(aad_stream.size())); // AEAD IV (12) // IV (4) @@ -382,15 +382,15 @@ ssize_t TLSv12::handle_message(ReadonlyBytes buffer) // length (2) u8 aad[13]; Bytes aad_bytes { aad, 13 }; - DeprecatedOutputMemoryStream aad_stream { aad_bytes }; + FixedMemoryStream aad_stream { aad_bytes }; u64 seq_no = AK::convert_between_host_and_network_endian(m_context.remote_sequence_number); u16 len = AK::convert_between_host_and_network_endian((u16)packet_length); - aad_stream.write({ &seq_no, sizeof(seq_no) }); // Sequence number - aad_stream.write(buffer.slice(0, header_size - 2)); // content-type + version - aad_stream.write({ &len, sizeof(u16) }); - VERIFY(aad_stream.is_end()); + MUST(aad_stream.write_value(seq_no)); // sequence number + MUST(aad_stream.write_entire_buffer(buffer.slice(0, header_size - 2))); // content-type + version + MUST(aad_stream.write_value(len)); // length + VERIFY(MUST(aad_stream.tell()) == MUST(aad_stream.size())); auto nonce = payload.slice(0, iv_length()); payload = payload.slice(iv_length());