Skip to content

v0.7.0

Compare
Choose a tag to compare
@any1 any1 released this 04 Oct 22:13
· 7 commits to v0.7 since this release

Highlights

  • Desktop resizing
  • Software pixel buffers with less than 32 bits per pixel are now supported
  • The server may now choose to open a websocket instead of a regular TCP socket
  • The RSA-AES and RSA-AES-256 security types have now been implemented
  • A Diffie-Hellman based security type from Apple is also implemented, although not recommended
  • Murmurhash in the damage refinery has been replaced with xxHash, which performs much better in my tests so far

Bugfixes

  • Users should now get proper feedback when authentication fails

Changes

Andri Yngvason (69):
      Remove _clang-format
      Add a CONTRIBUTING.md
      .github: Add a pull request template
      test: pixels: Use unsigned numeric literals
      test: pixels: Revert accidental change
      Turn stream into abstract interface class
      stream: Add a cork to pause sending
      Implement websocket
      Add NTP inspired latency tracking and time sync
      stream: Add exec_and_send function
      server: Use stream_exec_and_send for ntp
      server: Reduce SO_SNDBUF to 4096
      stream-tcp: EAGAIN is not an error
      stream: Add a TODO about cleaning up struct
      stream-gnutls: Fix use after free
      stream-gnutls: Handle EAGAIN correctly
      server: Set SO_SNDBUF to 65536
      meson: Ignore format-truncation warnings
      ws-handshake: Handle protocol & version fields
      stream-ws: Sanitise handshake input
      http: Remove unused code
      http: Re-order includes
      http: Stop memory leak in failure path
      http: Only support GET method
      stream: Move tls specific member into tls impl
      stream: Allocate enough for tls upgrade
      server: Actually send a reason when handshake fails
      server: Defer client_unref in close_after_write
      Add abstract interface for low level crypto
      stream: Integrate cipher
      Implement Apple's Diffie-Hellman based security type 30
      crypto: Add RSA and AES-EAX
      crypto: Integrate message handling into cipher
      Implement RSA-AES
      Add temporary api function to enable auth without tls
      stream-ws: Inherit stream-tcp
      stream-ws: Clean up exec-and-send resources
      Create dedicated RSA-AES stream
      crypto: Add helper functions for hashing
      server: Use hash_{one,many}
      crypto: Add AES256-EAX cipher
      crypto: Remove unused code
      crypto: Add sha256
      server: Define rsa-aes server key length constant
      crypto: Make deleting NULL pointers noop
      server: Clean up crypto resources on disconnect
      Implement RSA-AES-256 security type
      Add base64 encoder & decoder
      ws-handshake: Use own base64 and SHA1 implementations
      Export base64 encoder and decoder
      crypto: Add method to import RSA private keys
      API: Add method to set RSA credentials
      server: Allow arbitrary RSA key length
      Remove logging of sensitive information
      API: Consolidate setup of security constraints
      websocket: Add some missing copyright notices
      Replace strlcpy with strncpy
      Notify client about NTP support
      server: Use memcpy instead of strncpy for username/password
      stream: rsa-aes: Unref payload after encoding
      Revert "Export base64 encoder and decoder"
      server: Use uint32_t for security result failure path
      damage-refinery: Replace murmurhash with XXH3
      crypto-nettle: Fix use after free
      server: Free RSA creds on close
      server: Defer cleaning up client resources on close
      damage-refinery: Use scalar xxh3 implementation

MazTheMan (2):
      Implement 24 bit pixel formats for raw and tight
      zrle: fix for source format of 24 bits

Philipp Zabel (3):
      Implement desktop resizing
      examples: draw: Demonstrate desktop resizing
      meson: Fix Meson warning about missing check kwarg in run_command() calls