Commit Graph

146 Commits

Author SHA1 Message Date
Brian Warner
c9d36888bb docs: add dilation state machines diagram 2019-07-05 15:56:13 -07:00
Miro Hrončok
f2d5084761
Fedora has magic-wormhole in all versions 2019-06-04 20:57:01 +02:00
Brian Warner
c933c5cc06 dilation-protocol.md: clarify a few things 2019-05-07 11:41:30 -07:00
Brian Warner
2f8873f50a docs/conf.py: add py2/py3-tolerance 2019-05-05 18:05:56 -04:00
Brian Warner
cedf549ccd docs/Makefile: add the missing newline 2019-05-05 17:42:57 -04:00
Brian Warner
69bab3d814 docs/api: minor fixes 2018-12-24 14:33:41 -05:00
Brian Warner
e55787c693 get most of Manager working and tested
still need to test the subchannel interfaces, and ping/pong/kcm
2018-12-23 15:23:27 -05:00
Brian Warner
e19c7d1281 typos/cleanups in docs/dilation-protocol.md 2018-12-23 15:23:27 -05:00
Brian Warner
ec5df72cd3 more protocol docs updates 2018-12-23 15:23:27 -05:00
Brian Warner
d4c9210a4e more docs updates 2018-12-23 15:23:27 -05:00
Brian Warner
72c9683cdf dilation-protocol.md: update for new PLEASE+PLEASE approach 2018-12-23 15:23:27 -05:00
Brian Warner
34686a346a add dilation code
(this compresses several months of false starts and rearchitecting)
2018-12-23 15:21:08 -05:00
Jakub Wilk
24836cea63 docs: fix typos 2018-11-03 15:38:58 +01:00
Brian Warner
6f42433c57 docs/api: minor rephrasings 2018-05-28 23:42:04 -07:00
Baeumla
86edf01070 rendevouz server documentation update 2018-03-07 09:25:53 +01:00
Brian Warner
323044e9f5 stop supporting py3.4 on windows
Python.org is still supporting 3.4, but the lastest pypiwin32 stopped
providing binary wheels for windows for 3.4, so we can't run the appveyor CI
tests any more. It might still work there, but you'll have to find a way to
build pypiwin32 yourself.

We still support py3.4 on non-windows platforms.
2018-02-26 17:23:27 -08:00
Brian Warner
77201966b4 remove server-related source files, munin plugins
setup.py: pin to magic-wormhole-mailbox-server 0.1.0, the current version
2018-02-20 23:46:29 -08:00
Brian Warner
f03c8bc516 docs/client-protocol: update comment on ordering
thanks jml for the catch
2017-11-25 12:44:20 -06:00
Brian Warner
c769ff7bbe docs: get version from Versioneer, instead of hard-coding it 2017-11-13 14:18:20 -08:00
Brian Warner
7e17dcfef1 more Transit-removal changes 2017-11-13 12:07:38 -08:00
Brian Warner
aa04a17ea5 oops, forgot to commit welcome.md 2017-11-12 15:41:11 -08:00
Brian Warner
3f3be8c7aa move most of README into docs, add more pointers 2017-11-12 15:21:56 -08:00
Brian Warner
346cfa13e2 enable markdown (but use index.rst), small headline tweaks 2017-11-12 15:12:36 -08:00
Brian Warner
aefc79b034 run sphinx-quickstart 2017-11-12 10:24:56 -08:00
Brian Warner
64f973b0e9 docs/state-machines: build all images 2017-10-29 21:42:05 +08:00
Brian Warner
8b0a245e19 reject invalid codes with KeyFormatError
refs #212
2017-07-23 00:02:09 -05:00
Chandan Rai
e84eb547be corrected typo 2017-06-28 17:46:14 +05:30
Brian Warner
3392db779d api.md: s/generate_code/allocate_code/ 2017-06-26 13:50:40 +01:00
Brian Warner
2312f2ccce document new API (d=get_*), add get_welcome() 2017-05-15 02:13:24 -07:00
Brian Warner
d19b5850cc docs: Wormhole does not, in fact, have a make-Transit method
yet
2017-05-14 18:52:20 -07:00
Brian Warner
82b4327f23 machines.dot: remove missing message (stopped) 2017-04-23 15:29:31 -04:00
Brian Warner
83e55f1f3e add w.when_key(), fix w.when_verified() to fire later
Previously, w.when_verified() was documented to fire only after a valid
encrypted message was received, but in fact it fired as soon as the shared
key was derived (before any encrypted messages are seen, so no actual
"verification" could occur yet).

This fixes that, and also adds a new w.when_key() API call which fires at the
earlier point. Having something which fires early is useful for the CLI
commands that want to print a pacifier message when the peer is responding
slowly. In particular it helps detect the case where 'wormhole send' has quit
early (after depositing the PAKE message on the server, but before the
receiver has started). In this case, the receiver will compute the shared
key, but then wait forever hoping for a VERSION that will never come. By
starting a timer when w.when_key() fires, and cancelling it when
w.when_verified() fires, we have a good place to tell the user that something
is taking longer than it should have.

This shifts responsibility for notifying Boss.got_verifier, out of Key and
into Receive, since Receive is what notices the first valid encrypted
message. It also shifts the Boss's ordering expectations: it now receives
B.happy() before B.got_verifier(), and consequently got_verifier ought to
arrive in the S2_happy state rather than S1_lonely.
2017-04-06 18:27:41 -07:00
Brian Warner
ddc6319bf6 protocol docs fixups 2017-04-06 13:52:26 -07:00
Brian Warner
af3bb0095d docs: expand section on close() 2017-04-06 13:22:15 -07:00
Brian Warner
ba36562482 docs: move Dilation up next to Serialization, as both are speculative 2017-04-06 13:02:27 -07:00
Brian Warner
194f0be471 api.md: fix some typos 2017-04-06 12:49:33 -07:00
Brian Warner
d331c51c03 change completion API
* InputHelper returns full words, not just suffixes. I liked the fact that
  suffixes made it impossible to violate the "all matches will start with
  your prefix" invariant, but in practice it was fiddly to work with.
* add ih.when_wordlist_is_available(), so the frontend can block (after
  claiming the nameplate) until it can return a complete wordlist to
  readline. This helps the user experience, because readline wasn't really
  built to work with completions that change over time
* make the Wordlist responsible for appending hyphens to all non-final word
  completions. InputHelper remains responsible for hyphens on nameplates.
  This makes the frontend simpler, but I may change it again in the future if
  it helps non-readline GUI frontends.
* CodeInputter: after claiming, wait for the wordlist rather than returning
  an empty list
* PGPWordList: change to match

This has the unfortunate side-effect that e.g. typing "3-yucatan-tu TAB"
shows you completions that include the entire phrase: "3-yucatan-tumor
3-yucatan-tunnel", rather than only mentioning the final word. I'd like to
fix this eventually.
2017-04-06 12:22:45 -07:00
Brian Warner
bdef446ad4 get mostly-full coverage for rlcompleter, rename, export 2017-04-06 12:22:45 -07:00
Brian Warner
b981b4260d docs: reminder that welcome_handler may be called multiple times 2017-04-06 12:22:45 -07:00
Brian Warner
76f5960517 rewrite welcome handler 2017-04-06 12:22:45 -07:00
Brian Warner
0ed363c894 Key: sort messages to ensure got_code lands before got_pake
Since input_code() sets the nameplate before setting the rest of the code,
and since the sender's PAKE will arrive as soon as the nameplate is set, we
could got_pake before got_code, and Key wasn't prepared to handle that.
2017-04-06 12:22:44 -07:00
Brian Warner
07a49bfaca make progress on rlcompleter, still broken 2017-04-06 12:22:44 -07:00
Brian Warner
bd974f3801 test Nameplate, Mailbox. refactor a little bit 2017-04-06 12:22:44 -07:00
Brian Warner
e66d2df9f1 test and fix wordlist methods 2017-04-06 12:22:44 -07:00
Brian Warner
3873f55d64 make Input tests pass, clarify error cases, cleanups 2017-04-06 12:22:44 -07:00
Brian Warner
175fef2ab4 clean up wordlist handling 2017-04-06 12:22:44 -07:00
Brian Warner
ae95948c17 more tweaks 2017-04-06 12:22:44 -07:00
Brian Warner
4f1b352b2a more work: allocator, input, shift responsibilities 2017-04-06 12:22:44 -07:00
Brian Warner
79d38da497 split Code into Code/Input/Allocator, ostensibly simpler 2017-04-06 12:22:44 -07:00
Brian Warner
0ddc93110b work on new Code state machine design 2017-04-06 12:22:44 -07:00