Age | Commit message (Collapse) | Author |
|
|
|
This commit also adds a timeout timer to cancel the connection if the
server does not respond to the hello request in 10 seconds.
|
|
|
|
This makes it possible to build both of these on Linux.
|
|
Adds more TLS 1.2 error descriptions according to the specification:
https://tools.ietf.org/html/rfc5246#section-7.2.2
This changes the DecryptionFailed description, as the specification
says that this alert should NEVER be sent by a compliant server.
|
|
|
|
|
|
This seems like a better compromise between throughput and latency, and
it doesn't _really_ affect the performance, so let's just compromise.
|
|
This patchset drops the write notifier, and schedules writes only when
necessary.
As a result, the CPU utilisation no longer spikes to the skies :^)
|
|
The "ready to write" notifier we set up in generic socket connection is
really only meant to detect a successful connection. Once we have a TCP
connection, for example, it will fire on every event loop iteration.
This was causing IRC Client to max out the CPU by getting this no-op
notifier callback over and over.
Since this was only used by TLSv12, I changed that code to create its
own notifier instead. It might be possible to improve TLS performance
by only processing writes when actually needed, but I didn't look very
closely at that for this patch. :^)
|
|
Closes https://github.com/SerenityOS/serenity/issues/2080
|
|
|
|
Not particularly helpful, but better than nothing.
|
|
|
|
Contrary to popular belief, not every implementation of TLS follows the
specs.
Some of them just drop the connection without sending a proper
close_notify, and we should handle that gracefully.
|
|
|
|
This commit splits the TLSv12 file into multiple files, and also removes
some magic values, to make the code less horrible. :^)
|
|
Now we can talk to google.com
|
|
This is in preparation for the upcoming Galois/Counter mode, which
conventionally has 12 bytes of IV as opposed to CBC's 16 bytes.
...Also fixes a lot of style issues, since the author finally found the
project's clang config file in the repository root :^)
|
|
...maybe, sometimes :^)
|