AnotherTest
de4061ff94
LibTLS: Count the mac size towards the packet length in CBC mode
...
This is a regression introduced in 1172746
, where the padding would be
done without accounting for the added MAC bytes.
Fixes #4098 .
2020-11-16 13:21:18 +01:00
AnotherTest
1172746633
LibTLS: Add support for AEAD cipher suites
...
And integrate AES-GCM.
2020-11-14 10:18:54 +01:00
Luke
63a94deb43
LibTLS: Treat a close_notify before agreeing on a cipher suite as a handshake failure
...
Some TLS implementations (namely, AWS CloudFront) do this instead of
sending handshake_failure for some reason.
2020-10-26 08:59:57 +01:00
asynts
10c6f062b3
AK: Add Endian.h header to replace NetworkOrdered.h.
2020-08-25 16:22:14 +02:00
AnotherTest
abb842ee5a
LibTLS: Fix some debug logging
2020-08-24 09:29:39 +02:00
AnotherTest
0be3937be7
LibTLS: Do not process_message() the finished message twice
...
With two different sequence numbers to boot!
Fixes #3273
2020-08-24 09:29:39 +02:00
asynts
fff581cd72
AK: Rename span() to bytes() when appropriate.
...
I originally defined the bytes() method for the String class, because it
made it obvious that it's a span of bytes instead of span of characters.
This commit makes this more consistent by defining a bytes() method when
the type of the span is known to be u8.
Additionaly, the cast operator to Bytes is overloaded for ByteBuffer and
such.
2020-08-15 21:21:18 +02:00
Ali Mohammad Pur
d1571ce00a
LibTLS: Re-silence a debug log
...
bc7a149039 (r41386045)
2020-08-12 10:59:06 +02:00
AnotherTest
880b0a7600
LibTLS: Avoid extra initialisation of buffers that are initialised
...
A trace for proof:
buffer:
L91: 0:(packet.size() - header_size)
L98: (packet.size() - header_size):(packet.size() - header_size + mac_size)
L102: (packet.size() - header_size + mac_size):buffer.size()
(asserted at L103)
ct:
L88: 0:(header_size - 2)
L123: (header_size - 2):(header_size)
L111: (header_size):(header_size + iv_size)
L117: (header_size + iv_size):(header_size + iv_size + length)
(asserted at L113)
2020-08-11 21:37:10 +02:00
AnotherTest
bc7a149039
LibCrypto+LibTLS+Kernel: Switch the Cipher::Mode interface to use Span
...
This shaves 2.5 more runtime seconds off 'disasm /bin/id', and makes the
Mode<T> interface a lot more allocation-friendly.
2020-08-11 21:37:10 +02:00
asynts
b3d1a05261
Refactor: Expose const_cast by removing ByteBuffer::warp(const void*, size_t)
...
This function did a const_cast internally which made the call side look
"safe". This method is removed completely and call sites are replaced
with ByteBuffer::wrap(const_cast<void*>(data), size) which makes the
behaviour obvious.
2020-08-06 10:33:16 +02:00
Brian Gianforcaro
9572c95152
LibTLS + LibCrypto: Suppress unobserved Optoinal<T> return values.
2020-08-05 12:27:15 +02:00
AnotherTest
b67acf9c88
LibTLS: Simplify record padding logic and ASSERT more assumptions
2020-06-04 15:58:04 +02:00
Andreas Kling
b2a7137f57
LibTLS: Put a little more debug spam behind TLS_DEBUG
2020-06-01 20:13:53 +02:00
AnotherTest
d54d2892a9
LibTLS: Avoid busy-wait between ClientHello and ServerHello
...
This commit also adds a timeout timer to cancel the connection if the
server does not respond to the hello request in 10 seconds.
2020-05-30 18:26:13 +02:00
Andreas Kling
5049e41223
LibTLS: Put lots of debug spam behind TLS_DEBUG
2020-05-26 23:46:28 +02:00
AnotherTest
f9cffda0e0
LibTLS: Flush some packets as soon as more packets are written
...
This seems like a better compromise between throughput and latency, and
it doesn't _really_ affect the performance, so let's just compromise.
2020-05-20 08:30:51 +02:00
AnotherTest
379cb061d7
LibTLS: Only try to flush data when needed
...
This patchset drops the write notifier, and schedules writes only when
necessary.
As a result, the CPU utilisation no longer spikes to the skies :^)
2020-05-19 20:00:43 +02:00
AnotherTest
2a29e668bd
LibTLS: Try to disambiguate errors in case of failure
...
Not particularly helpful, but better than nothing.
2020-05-05 11:20:42 +02:00
AnotherTest
dace14e70d
LibTLS: Split TLSv12 to sensible categorical files
...
This commit splits the TLSv12 file into multiple files, and also removes
some magic values, to make the code less horrible. :^)
2020-05-02 12:24:10 +02:00