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
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
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
Philipp Zabel
e19c9ad600
Implement desktop resizing
...
Implement minimal support for ExtendedDesktopSize pseudo-encoding
and SetDesktopSize client message.
The opaque nvnc_desktop_layout structure contains all information
from the SetDesktopSize client message.
2023-02-25 11:03:44 +00:00
Philipp Zabel
afe37b983d
stream: Fix remote closing TLS connection
...
If a TLS stream is closed by the remote VNC client,
stream__remote_closed must be called to signal the server.
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2022-11-30 15:26:28 +00:00
Jim Ramsay
332be4d471
Add nvnc_client_close API
...
This allows the user or application to terminate any given nvnc_client
connection at any time.
Signed-off-by: Jim Ramsay <i.am@jimramsay.com>
2022-11-24 16:08:06 +00:00
Andri Yngvason
8f979c9928
Pass nvnc_client to cut-text callback
2022-11-20 22:42:01 +00:00
Andri Yngvason
79f26924ea
Add functions for listing clients
2022-11-20 12:03:18 +00:00
Andri Yngvason
8a7509bd3a
raw: Allocate conservatively sized buffers
2022-11-05 13:54:01 +00:00