sdwivedi / webwormhole

Peer authenticated WebRTC.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WARNING

THIS PROJECT IS STILL IN EARLY DEVELOPMENT, USES EXPERIMENTAL CRYPTOGRAPHIC LIBRARIES, AND HAS NOT HAD ANY KIND OF SECURITY OR CRYPTOGRAPHY REVIEWS. IT MIGHT BE BROKEN AND UNSAFE.

https://xkcd.com/949/

WebWormhole creates ephemeral pipes between computers to send files or other data. Try it at https://webwormhole.io or on the command line.

On one computer the tool generates a one-time code for us:

$ cat hello.txt
hello, world
$ ww send hello.txt
8-enlist-decadence

On another we use the code to establish a connection:

$ ww receive 8-enlist-decadence
$ cat hello.txt
hello, world

It is inspired by and uses a model very similar to that of Magic Wormhole. Thanks Brian!

https://github.com/warner/magic-wormhole

WebWormhole differs from Magic Wormhole in that it uses WebRTC to make the direct peer connections. This allows us to make use of WebRTC's NAT traversal tricks, as well as the fact that it can be used in browsers. The exchange of session descriptions (offers and answers) is protected by PAKE and a generated random password, similar to Magic Wormhole. The session descriptions include the fingerprints of the DTLS certificates that WebRTC uses to secure its communications.

To run locally:

$ make serve

To install (requires at least golang-1.13):

$ go get -u webwormhole.io/cmd/ww

Unless otherwise noted, the source files are distributed under the BSD-style license found in the LICENSE file.

About

Peer authenticated WebRTC.

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Go 53.2%Language:JavaScript 37.8%Language:CSS 4.5%Language:HTML 3.6%Language:Dockerfile 0.6%Language:Makefile 0.3%