Skip to content

Encrypted remote keyboard interface on local networks using ProtoBuf.

License

Notifications You must be signed in to change notification settings

Sofiman/telekey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TeleKey

TeleKey is a remote keyboard interface for working on two computers at once. Pressed keys are encrypted and transmitted using Protobuf over a TCP Connection.

Features

  • Connect two computers on the same local network
  • End-to-end encryption using X25519 and ChaCha-Poly1035
  • Cross platform (tested on Windows, macOS and Ubuntu)

Quick Start

Syntax:

$ telekey.exe [OPTIONS]

Upon connecting, you will have to sync the two TeleKey instances using a randomly generated token.

📝 Start as client

A Telekey Client will receive key events and emulate the key presses.

$ telekey.exe -t 127.0.0.1

By default (without any options), TeleKey will try to connect to 127.0.0.1:8384. And all received keys will be emulated on the system (real key presses).

👨‍💻 Start as server

Telekey Server will listen and send key events to the Telekey Client.

$ telekey.exe -s 0.0.0.0

By default (without any options), TeleKey will listen for clients on all network adapters on port 8384 and will send to the connected client all keys typed in the stdin of the program.

Options

Option Syntax follows the Unix-standard. Combined options and equal-seperated options are accepted.

Usage Description Default
-t, --target-ip <IP[:PORT]> [Runs telekey as client] Defines the target address to connect to 127.0.0.1:8384
-s, --serve <IP[:PORT]> [Runs telekey as server] IP address to start a TCP Listener on 0.0.0.0:8384
-m, --simple-menu If enabled, server's menu will only show minimal information and only update latency false
-c, --cold-run If enabled, the key presses will be printed to the standard output rather than being emulated false
-l, --refresh-latency Triggers a latency check after n keys. Use 0 to disable latency checks. 20
-u, --unsecure Unsecure mode. No encryption: use it at your own risk! false
-h, --help. Print help version (list of options and usage) N/A
-v, --version Print version information N/A

Installation

Requirements

  • Rust version 1.60 minimum (not tested on older versions)
  cargo build

Todo

  • Graphical User Interface
  • End-to-end encryption
  • Improve End-to-end encryption to prevent key-dictating (+man in the middle) attacks
  • Command Line Interface
  • Add missing keys

Contribution & Feedback

If you have any feedback, please open an issue. If you encounter any bugs or unwanted behaviour, please open an issue.

This projet is open to contributions, feel free to submit your pull requests!

License

GNU General Public License v3.0

About

Encrypted remote keyboard interface on local networks using ProtoBuf.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages