Skip to content

eitau/webwormhole

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Password authenticated WebRTC.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Go 54.3%
  • JavaScript 36.3%
  • CSS 4.8%
  • HTML 2.9%
  • Makefile 1.1%
  • Dockerfile 0.6%