Andri Yngvason
913c314b31
server: Use memcpy instead of strncpy for username/password
...
This fixed zero-termination error
2023-10-02 21:57:22 +00:00
Andri Yngvason
f54aeed334
Notify client about NTP support
2023-10-01 10:56:42 +00:00
Andri Yngvason
bdadcad1c8
Replace strlcpy with strncpy
...
The former isn't portable.
2023-09-29 22:00:48 +00:00
Andri Yngvason
3794405101
websocket: Add some missing copyright notices
2023-09-29 21:53:20 +00:00
Andri Yngvason
58d6dff5e5
API: Consolidate setup of security constraints
2023-09-29 21:53:20 +00:00
Andri Yngvason
373e5a0f9e
Remove logging of sensitive information
2023-09-29 21:53:20 +00:00
Andri Yngvason
d74878fd00
server: Allow arbitrary RSA key length
2023-09-29 21:53:20 +00:00
Andri Yngvason
74e9db19fd
API: Add method to set RSA credentials
2023-09-29 21:53:20 +00:00
Andri Yngvason
4220cbb345
crypto: Add method to import RSA private keys
2023-09-29 21:53:20 +00:00
Andri Yngvason
c38f669e13
Export base64 encoder and decoder
2023-09-29 21:53:20 +00:00
Andri Yngvason
98f6930580
ws-handshake: Use own base64 and SHA1 implementations
2023-09-29 21:53:20 +00:00
Andri Yngvason
a02f578f9e
Add base64 encoder & decoder
...
I prefer to have these independent of the crypto suite that's being used.
2023-09-29 21:53:20 +00:00
Andri Yngvason
4705c0cfcc
Implement RSA-AES-256 security type
2023-09-29 21:53:20 +00:00
Andri Yngvason
396f4ed6c5
server: Clean up crypto resources on disconnect
2023-09-29 21:53:20 +00:00
Andri Yngvason
76c832d791
crypto: Make deleting NULL pointers noop
2023-09-29 21:53:20 +00:00
Andri Yngvason
7eb42324bf
server: Define rsa-aes server key length constant
2023-09-29 21:53:20 +00:00
Andri Yngvason
08312c3296
crypto: Add sha256
2023-09-29 21:53:20 +00:00
Andri Yngvason
d004a2fcb9
crypto: Remove unused code
2023-09-29 21:53:20 +00:00
Andri Yngvason
f029484a87
crypto: Add AES256-EAX cipher
2023-09-29 21:53:20 +00:00
Andri Yngvason
c6df99ec46
server: Use hash_{one,many}
2023-09-29 21:53:20 +00:00
Andri Yngvason
d12973486a
crypto: Add helper functions for hashing
2023-09-29 21:53:20 +00:00
Andri Yngvason
9507624cf3
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-29 21:53:20 +00:00
Andri Yngvason
625323d8a3
stream-ws: Clean up exec-and-send resources
2023-09-29 21:53:20 +00:00
Andri Yngvason
dfc20d065e
stream-ws: Inherit stream-tcp
...
This eliminates the need for implementing all stream functions
2023-09-29 21:53:20 +00:00
Andri Yngvason
f90c628e66
Add temporary api function to enable auth without tls
2023-09-29 21:53:20 +00:00
Andri Yngvason
e341898bbc
Implement RSA-AES
2023-09-29 21:53:20 +00:00
Andri Yngvason
71aa5acfde
crypto: Integrate message handling into cipher
2023-09-29 21:53:20 +00:00
Andri Yngvason
c12c1c800a
crypto: Add RSA and AES-EAX
2023-09-29 21:53:20 +00:00
Andri Yngvason
7b878033f0
Implement Apple's Diffie-Hellman based security type 30
2023-09-29 21:53:20 +00:00
Andri Yngvason
da2518e296
stream: Integrate cipher
2023-09-29 21:53:20 +00:00
Andri Yngvason
0c3a98483c
Add abstract interface for low level crypto
2023-09-29 21:53:20 +00:00
MazTheMan
fd1e18b475
Implement 24 bit pixel formats for raw and tight
2023-09-29 21:46:05 +00:00
Philipp Zabel
56f1c125fa
meson: Fix Meson warning about missing check kwarg in run_command() calls
...
Fixes the following Meson warning:
WARNING: You should add the boolean check kwarg to the run_command call.
It currently defaults to false,
but it will default to true in future releases of meson.
See also: https://github.com/mesonbuild/meson/issues/9300
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
2023-07-05 10:30:55 +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