You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Windows (x64): Download CppDesk.exe (standalone portable executable, no installation required).
What's New in CppDesk 3.9.0
Desk ID Ownership on Relays: Nobody who merely knows your 9-digit ID can register it on a relay any more. The first time your host registers, it gives the relay a key made for that relay alone. Every later registration has to answer a fresh challenge with an HMAC of that key, so a stranger cannot take over your ID or catch viewers meant for you, even while your PC is offline. Both the built-in relay and the .NET relay enforce it. Hosts older than 3.9.0 still register IDs that nobody owns. The relay keeps owners in memory, so a relay restart forgets them and the first host to register wins again.
Password Response Bound to the Session Key: A viewer now sends an HMAC of the password response keyed by the ECDH session key instead of the bare digest, so someone who only watches the handshake can no longer test password guesses offline. Older viewers and hosts still connect using the previous exchange. An attacker who sits between viewer and host can still try guesses, and a slow password hash would be the stronger fix.
Update Integrity: The updater checks the downloaded file against the SHA-256 digest GitHub publishes for the release asset and deletes it on a mismatch. The default update repository is now oocsng/cppdesk instead of relying on a redirect from the old owner name.
Relay Hardening: The .NET relay drops a connection that sends no first frame within 10 seconds, limits each IP to 64 connections and enables TCP keepalive. The built-in relay caps connections at 512 overall and 64 per IP instead of starting an unbounded thread for each one.
Explorer Timeout: A folder listing that gets no reply from an older host stops showing "Loading" after 10 seconds and says so.
Unicode Text Input: Typing, pasting and backspacing in text fields now handle non-ASCII text, including characters outside the Basic Multilingual Plane. There is still no IME composition window, caret or selection.
Hostile Packet Safety: All 31 packet deserializers were run against about 32,000 truncated, corrupted and random inputs, and none allocates more than 256 MB.
Wire Protocol: Adds relay packet types 0x5A (challenge) and 0x5B (proof), a capability byte at the end of AUTH_CHALLENGE, and password response mode 3.
CI: GitHub Actions builds CppDesk.exe and runs the full test suite on every push to main and every pull request. The Linux build does not compile yet, so there is no Linux job.
Automated Verification: 65 test suites with more than 32,600 passing assertions, plus the .NET relay's --self-test, which now covers the first-frame timeout, the per-IP limit and desk ID ownership.