Skip to content
This repository was archived by the owner on Dec 5, 2019. It is now read-only.

lgessler/kbrpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Edit (2/21/2017): Keybase itself now has a solution that does what this project aimed to achieve. Check it out! https://keybase.io/blog/keybase-chat

NOTE: This is a proof of concept and it's almost entirely broken.

Keybase RPC

KBRPC provides a simple interface for RPC-like communication that is end-to-end encrypted, built on top of (and requiring) Keybase filesystem. The API is essentially a copy of Socket.IO's: there are just two things to keep track of in the demo Python implementation: on_message and send_message.

Implementation

Keybase RPC is a layer on top of Keybase filesystem. KBFS appears on the machine at /keybase, and all files shared here are automatically signed and encrypted for transmission to either (1) the world, e.g. at /keybase/public/lgessler, or (2) specific people, e.g. /keybase/private/lgessler,tondwalkar,prestwood. Keybase RPC uses this filesystem to pass messages and abstracts away the details for the clients.

We wrote Keybase RPC in Python 3. We used a client-server model for local machine connections, where the "server" is the program that communicates with KBFS, and "clients" are applications that ask the server to write to KBFS on their behalf. Server-client communication is achieved with UNIX FIFO's, i.e. named pipes, and keybase-server communication is accomplished with simple filesystem writes.

License

MIT

About

(Inactive) Encrypted remote interprocess communication layer built on top of KBFS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •