Commit Graph

107 Commits

Author SHA1 Message Date
Brian Warner
3f662ea68c add proper README 2015-04-09 23:58:31 -05:00
Brian Warner
819a37476b add "-0" mode: no codes, no auth, fixed channel
Like roulette but with forward security.
2015-04-09 23:06:57 -05:00
Brian Warner
5f35fcee61 send --verify: tell user to include --verify on receiver too
In the long run, this needs to be included in the second PAKE message,
and the MitM consequences thought through.
2015-04-09 22:56:39 -05:00
Brian Warner
5e593509b4 allow pre-generated (human-offline-created) codes
Just make up a code like NUMBER-STUFF, and add --code= to the
send-text/send-file command. Also don't use tab-completion on the
codewords part of the receiving side, unless you stuck to the even/odd
PGP wordlist. (tab still works for the channel-id).
2015-04-09 22:50:07 -05:00
Brian Warner
3aa7e22708 relay: don't require allocate(): first message creates the Channel
this enables pre-generated (human-offline-created) codes, as long as
they use a channel id high enough to avoid colliding with any allocated
ones.
2015-04-09 22:46:18 -05:00
Brian Warner
c8d2fc8750 relay: improve the way we allocate channels
Now the server allocates a channel randomly from set of available ids
with the shortest possible length. So concurrency=1 will always yield a
channel-id between 1 and 9 (inclusive). If we have 9 simultaneous
sessions, we'll start allocating channels from 10 to 99. 100
simultaneous connections kicks us into the 100-999 bucket, etc.
2015-04-09 22:45:04 -05:00
Brian Warner
ecc04ff675 display message-of-the-day, if the server offers one 2015-04-09 12:45:12 -07:00
Brian Warner
5ff59c92e0 display current-version-is-different even when erroring out 2015-04-09 12:35:07 -07:00
Brian Warner
e881d169a6 error out if server gives a "sorry we're closed" error 2015-04-09 12:29:26 -07:00
Brian Warner
3a728d4a06 ignore twistd.pid 2015-04-09 11:47:01 -07:00
Brian Warner
6da9f3ec3a warn (to stderr) if the client version differs from the server's
This is a proxy for the other client's version, and encourages both
sides to upgrade to the current version each time the server is
upgraded (which will be once per release).
2015-04-09 11:46:23 -07:00
Brian Warner
782214813b server+client: fix SSE alternate-event-type handling
I think the server needs to put blank lines after *every* field, not
just the data: fields.
2015-04-09 11:37:50 -07:00
Brian Warner
830ba18fe7 require spake2==0.2, which uses Ed25519 as a default 2015-04-09 10:40:16 -07:00
Brian Warner
9d7cd1d7de server: add "welcome message" to all responses, including server version 2015-04-08 21:03:27 -07:00
Brian Warner
dc9bc0c575 Use "wormhole server start" to launch a relay server. 2015-04-08 18:39:33 -07:00
Brian Warner
cf592d0766 CLI: avoid importing anything until command is actually run
In prep for moving the server launch command into the main CLI path,
without imposing dependency on pynacl/etc.
2015-04-01 16:01:32 -07:00
Brian Warner
beb9e240d4 update API docs 2015-03-25 17:02:57 -07:00
Brian Warner
0217a13da6 change relay URL: use more distinctive path prefix
This might make it easier for an application's web site to include a
relay, without competing with some other resource named "relay".
2015-03-25 16:51:55 -07:00
Brian Warner
883cacf903 wormhole receive-file: add --overwrite 2015-03-25 16:31:35 -07:00
Brian Warner
717bfa3b0b move public relays to new hostnames and ports 2015-03-25 14:46:35 -07:00
Brian Warner
106991fe0d require caller to provide transit relay too 2015-03-25 13:07:17 -07:00
Brian Warner
fae14ebe6a Add --verify (display/check key-verifier). Not entirely usable yet.
To be useful, both sides must add -v. If the sender uses -v but the
receiver doesn't, the receiver won't show the verification string, so
the sender can't compare it to anything (and must either abort the
transfer or accept it blindly). Maybe the receiver should show the
verification string unconditionally. Maybe the sender should
indicate (in unprotected plaintext, along with the PAKE message) whether
the receiver should show it or not.
2015-03-24 00:28:02 -07:00
Brian Warner
ed1809d521 change API to support upcoming --verify flag 2015-03-24 00:03:10 -07:00
Brian Warner
af1e3c51ec add --code-length, to configure the size of the PAKE code (in bytes/words) 2015-03-23 23:53:28 -07:00
Brian Warner
d678e2fa66 new name: magic-wormhole 2015-03-23 23:38:47 -07:00
Brian Warner
8e456dea5e rewrite CLI tools to use argparse, remove Twisted dependency
We used to use twisted.python.usage.Options, hence we depended upon
Twisted. Now we depend upon "argparse" instead, which is in the py2.7
stdlib (and on pypi for 2.6). This package will still (eventually)
provide Twisted support, but applications which need it will already
express a dependency on twisted themselves, so by removing the
dependency here, we make life easier for applications that don't use it.
2015-03-22 16:52:35 -07:00
Brian Warner
9e7d807171 rename const.py to public_relay.py, to make it clear what it offers 2015-03-22 11:55:13 -07:00
Brian Warner
7c5cb058a2 require caller to provide relay, no more default
Applications should feel free to pass wormhole.const.RENDEZVOUS_RELAY
here, but I figure it should be clear that you're using a public service
that's hosted *somewhere* external.
2015-03-22 11:53:48 -07:00
Brian Warner
fd3e4f3508 change relay URL scheme, allow arbitrary relay-phase messages 2015-03-22 11:45:16 -07:00
Brian Warner
55577d9721 send-file: tolerate zero-byte files 2015-03-20 17:53:19 -07:00
Brian Warner
cc37d2dc2f add CLI args to override the relay hosts (rendezvous and transit) 2015-03-20 17:45:03 -07:00
Brian Warner
84aa7ff248 receive-file: add --output-file to override local output filename 2015-03-16 00:18:53 -07:00
Brian Warner
5fd85fd884 cmd_receive_text: remove unused 'time' import 2015-03-16 00:17:11 -07:00
Brian Warner
cef9abcdd7 receive-text/file: accept CODE in argv 2015-03-15 23:26:06 -07:00
Brian Warner
12414fd8be code-completer: re-fetch channelids upon TAB, if necessary
This fixes the situation where you start the receiver first, then start
the sender, then you hit TAB on the receiver.

This somewhat improves the situation where you start the receiver first,
hit TAB (getting nothing), then start the sender, then hit TAB on the
receiver again. The second TAB will list the channel-ids, but won't
insert the only one as it's supposed to. You must type something (which
you can erase) and then hit TAB again to get a unique channel-id
inserted. But at least you can tell which one to type.

The first TAB runs the completer with readline.get_completion_type()
equal to 9=TAB=try-to-insert. The second (and subsequent) TABs use
63=?=list-matches, and it won't go back to 9 until you type something.
2015-03-13 01:50:21 -07:00
Brian Warner
3456d36039 cosmetic changes to frontend commands 2015-03-12 23:32:58 -07:00
Brian Warner
315d7c5614 make rendezvous happen in real-time: replace polling with EventSource 2015-03-12 23:07:47 -07:00
Brian Warner
a8b6cad827 transcribe: refactor in anticipation of EventSource client 2015-03-12 23:03:57 -07:00
Brian Warner
8741d5adaa relay: refactor in anticipation of a realtime EventSource-based protocol 2015-03-12 19:44:31 -07:00
Brian Warner
cda5634b1d relay.py: minor refactoring in anticipation of multi-pass rendezvous 2015-03-12 19:22:34 -07:00
Brian Warner
fcf3b080f9 transit: don't complain about the relay connection failing or being dropped 2015-03-12 18:38:42 -07:00
Brian Warner
fcd2678dfd transit: provide encrypted record-pipe, use it for file-xfer 2015-03-12 18:14:42 -07:00
Brian Warner
8b3e5836ee relay: log total bytes sent in each direction 2015-03-12 16:25:34 -07:00
Brian Warner
8dfe4e7b8d TRANSIT_RELAY: update to new hint format 2015-03-12 16:03:14 -07:00
Brian Warner
cedd04a2fb transit.py: add debug prints, disabled 2015-03-12 16:03:00 -07:00
Brian Warner
35630661a5 increase establish_connection() timeout to let relay work
If all the direct hints resulted in timeouts (e.g. they were to bad IP
addresses where connections just hang), the relay connection would fail.
The establish_connection() function had the same TIMEOUT as the
direct-hint connector, so it would give up just before the relay
connection was initiated.
2015-03-12 15:52:11 -07:00
Brian Warner
b5ff8a5d4a format inbound-hint better 2015-03-12 15:24:34 -07:00
Brian Warner
b27cbd19b6 change hint format to "tcp:HOST:PORT" 2015-03-12 15:20:06 -07:00
Brian Warner
d71c8492c1 transit: describe the connection 2015-03-12 14:50:40 -07:00
Brian Warner
502d43e0ea setup.py: include all packages= , I always forget that 2015-03-04 00:42:24 -08:00