Commit Graph

446 Commits (923fa4a53acac1adf954df6dee89a45ef06cf6ad)

Author SHA1 Message Date
Andri Yngvason 923fa4a53a Add base64 encoder & decoder
I prefer to have these independent of the crypto suite that's being used.
2023-09-09 23:12:47 +00:00
Andri Yngvason 24e4c5900a Implement RSA-AES-256 security type 2023-09-05 20:31:09 +00:00
Andri Yngvason 1a15af0845 fixup! crypto: Add AES256-EAX cipher 2023-09-05 20:28:55 +00:00
Andri Yngvason 6e97000f11 server: Clean up crypto resources on disconnect 2023-09-05 08:48:41 +00:00
Andri Yngvason e7a24822a7 crypto: Make deleting NULL pointers noop 2023-09-05 08:46:11 +00:00
Andri Yngvason 7eb9882877 server: Define rsa-aes server key length constant 2023-09-05 08:41:25 +00:00
Andri Yngvason 103fbe996e crypto: Add sha256 2023-09-04 22:20:31 +00:00
Andri Yngvason b2ad06ae3c crypto: Remove unused code 2023-09-04 22:17:31 +00:00
Andri Yngvason b7614f64a4 crypto: Add AES256-EAX cipher 2023-09-04 22:15:40 +00:00
Andri Yngvason 1d2e6c05a9 server: Use hash_{one,many} 2023-09-04 21:41:05 +00:00
Andri Yngvason 3f949d8e66 crypto: Add helper functions for hashing 2023-09-04 21:40:05 +00:00
Andri Yngvason d418b33dd7 Create dedicated RSA-AES stream
The message format isn't really within the domain of the cipher, so it
doesn't belong to the crypto interface.
2023-09-03 22:30:13 +00:00
Andri Yngvason e65660aea0 fixup! fixup! stream-ws: Inherit stream-tcp 2023-09-03 21:59:35 +00:00
Andri Yngvason 6869eb42e6 fixup! stream-ws: Inherit stream-tcp 2023-09-03 18:47:10 +00:00
Andri Yngvason abf9cc54c0 stream-ws: Clean up exec-and-send resources 2023-09-03 18:37:23 +00:00
Andri Yngvason 83ed3273ce stream-ws: Inherit stream-tcp
This eliminates the need for implementing all stream functions
2023-09-03 17:34:08 +00:00
Andri Yngvason 0199d87368 Add temporary api function to enable auth without tls 2023-08-24 10:14:37 +00:00
Andri Yngvason 727fd785c6 Implement RSA-AES 2023-08-24 10:13:52 +00:00
Andri Yngvason ff5ca722b1 crypto: Integrate message handling into cipher 2023-08-24 10:10:43 +00:00
Andri Yngvason 8cb4910d76 crypto: Add RSA and AES-EAX 2023-08-15 21:41:11 +00:00
Andri Yngvason ef4be68e4f Implement Apple's Diffie-Hellman based security type 30 2023-08-13 20:45:49 +00:00
Andri Yngvason 8ddca0a197 stream: Integrate cipher 2023-08-13 19:55:21 +00:00
Andri Yngvason f6336e02be Add abstract interface for low level crypto 2023-08-13 19:55:21 +00:00
Andri Yngvason 8872dece0c server: Defer client_unref in close_after_write
This ensures that the stream object stays alive while its write
queue is being processed.
2023-07-04 23:40:32 +00:00
Andri Yngvason 61fad8c96b server: Actually send a reason when handshake fails 2023-07-04 22:56:52 +00:00
Andri Yngvason ade1046391 stream: Allocate enough for tls upgrade 2023-05-30 08:40:56 +00:00
Andri Yngvason b5f37d0227 stream: Move tls specific member into tls impl 2023-05-28 15:50:36 +00:00
Andri Yngvason c006936fd0 http: Only support GET method 2023-04-30 14:31:34 +00:00
Andri Yngvason 2f439b9fa2 http: Stop memory leak in failure path 2023-04-30 14:29:30 +00:00
Andri Yngvason 1fa8d41aef http: Re-order includes 2023-04-30 14:21:35 +00:00
Andri Yngvason a179c83f81 http: Remove unused code 2023-04-30 14:20:53 +00:00
Andri Yngvason c0b3e16bb0 stream-ws: Sanitise handshake input 2023-04-30 14:03:12 +00:00
Andri Yngvason e5e6767c1e ws-handshake: Handle protocol & version fields 2023-04-30 13:44:12 +00:00
Andri Yngvason 58df7dfc5c meson: Ignore format-truncation warnings 2023-04-30 13:30:49 +00:00
Andri Yngvason d7dc9c0db5 server: Set SO_SNDBUF to 65536
The previous value of 4096 caused a very bad performance regression
with GnuTLS.
2023-04-11 20:37:22 +00:00
Andri Yngvason 79d24ae0ca stream-gnutls: Handle EAGAIN correctly 2023-04-11 20:33:13 +00:00
Andri Yngvason 4b5e4d628d stream-gnutls: Fix use after free 2023-04-11 20:32:37 +00:00
Andri Yngvason 6a5ea71289 stream: Add a TODO about cleaning up struct 2023-04-11 19:54:25 +00:00
Andri Yngvason afc0256b2f stream-tcp: EAGAIN is not an error
This fixes inadvertent treatment of a normal situation as an error.
2023-04-10 11:36:59 +00:00
Andri Yngvason 5530b22fde server: Reduce SO_SNDBUF to 4096
This will allow us to more accuately gauge the back-pressure on the socket.
2023-04-08 13:40:24 +00:00
Andri Yngvason aa6fadf2fd server: Use stream_exec_and_send for ntp 2023-04-08 13:40:24 +00:00
Andri Yngvason 0cdbf6a602 stream: Add exec_and_send function
This allows us to execute a function right before a leaves the send queue
and is really only useful for NTP as far as I can tell.
2023-04-08 13:02:45 +00:00
Andri Yngvason 19172140ba Add NTP inspired latency tracking and time sync 2023-04-07 21:24:22 +00:00
Andri Yngvason 8847511596 Implement websocket 2023-04-07 12:47:49 +00:00
Andri Yngvason e385a98238 stream: Add a cork to pause sending 2023-04-07 12:47:49 +00:00
Andri Yngvason 979d10ce62 Turn stream into abstract interface class 2023-04-06 21:02:39 +00:00
Andri Yngvason 2cefc7febb test: pixels: Revert accidental change 2023-03-23 10:18:28 +00:00
Andri Yngvason 1081ff35cd test: pixels: Use unsigned numeric literals
This fixes type promotion issues with the swap32 macro.
2023-03-22 09:28:06 +00:00
Andri Yngvason e6931239bc .github: Add a pull request template 2023-02-26 11:27:01 +00:00
Andri Yngvason 796b9bc20e Add a CONTRIBUTING.md 2023-02-26 11:25:46 +00:00