Magic-wormhole

Latest version: v0.17.0

Safety actively analyzes 688554 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 7

0.8.1

This release contains mostly minor changes.

The most noticeable is that long-lived wormholes should be more reliable now.
Previously, if you run `wormhole send` but your peer doesn't run their
`receive` for several hours, a NAT/firewall box on either side could stop
forwarding traffic for the idle connection (without sending a FIN or RST to
properly close the socket), causing both sides to hang forever and never
actually connect. Now both sides send periodic keep-alive messages to prevent
this.

In addition, by switching to "Click" for argument parsing, we now have short
command aliases: `wormhole tx` does the same thing as `wormhole send`, and
`wormhole rx` is an easier-to-spell equivalent of `wormhole receive`.

Other changes:

* CLI: move most arguments to be attached to the subcommand (new: `wormhole
send --verify`) rather than on the "wormhole" command (old: `wormhole
--verify send`). Four arguments remain on the "wormhole" command:
`--relay-url=`, `--transit-helper=`, `--dump-timing=`, and `--version`.
* docs: add links to PyCon2016 presentation
* reject wormhole-codes with spaces with a better error message
* magic-wormhole ought to work on windows now
* code-input tab-completion should work on stock OS-X python (with libedit)
* sending a directory should restore file permissions correctly
* server changes:
* expire channels after two hours, not 3 days
* prune channels more accurately
* improve munin plugins for server monitoring

Many thanks to the folks who contributed to this release, during the PyCon
sprints and afterwards: higs4281, laharah, Chris Wolfe, meejah, wsanchez,
Kurt Neufeld, and Francois Marier.

0.8.0

or later.

* Overhaul client-server websocket protocol, client-client PAKE
messages, per-message encryption-key derivation, relay-server database
schema, SPAKE2 key-derivation, and public relay URLs. Add version
fields and unknown-message tolerance to most protocol steps.
* Hopefully this will provide forward-compatibility with future protocol
changes. I have several on my list, and the version fields should make
it possible to add these without a flag day (at worst a "flag month").
* User-visible changes are minimal, although some operations should be
faster because we no longer need to wait for ACKs before proceeding.
* API changes: `.send_data()/.get_data()` became `.send()/.get()`,
neither takes a phase= argument (the Wormhole is now a record pipe)
`.get_verifier()` became `.verify()` (and waits to receive the
key-confirmation message before firing its Deferred), wormholes are
constructed with a function call instead of a class constructor,
`close()` always waits for server ack of outbound messages. Note that
the API remains unstable until 1.0.0 .
* misc/munin/ contains plugins for relay server operators

0.7.6

* Switch to "tqdm" for nicer CLI progress bars.
* Fail better when input-code is interrupted (prompt user to hit Return,
rather than hanging forever)
* Close channel upon error more reliably.
* Explain WrongPasswordError better.
* (internal): improve --dump-timing instrumentation and rendering.

Compatibility: this remains compatible with 0.7.x, and 0.8.x is still
expected to break compatibility.

0.7.5

* The CLI tools now use the Twisted-based library exclusively.
* The blocking-flavor "Transit" library has been removed. Transit is the
bulk-transfer protocol used by send-file/send-directory. Upcoming protocol
improvements (performance and connectivity) proved too difficult to
implement in a blocking fashion, so for now if you want Transit, use
Twisted.
* The Twisted-flavor "Wormhole" library now uses WebSockets to connect,
rather than HTTP. The blocking-flavor library continues to use HTTP.
"Wormhole" is the one-message-at-a-time relay-based protocol, and is
used to set up Transit for the send-file and send-directory modes of
the CLI tool.
* Twisted-flavor input_code() now does readline-based code entry, with
tab completion.
* The package now installs two executables: "wormhole" (for send and
receive), and "wormhole-server" (to start and manage the relay
servers). These may be re-merged in a future release.

Compatibility:

* This release remains compatible with the previous ones. The next major
release (0.8.x) will probably break compatibility.

Packaging:

* magic-wormhole now depends upon "Twisted" and "autobahn" (for WebSockets).
Autobahn pulls in txaio, but we don't support it yet (a future version of
magic-wormhole might).
* To work around a bug in autobahn, we also (temporarily) depend upon
"pytrie". This dependency will be removed when the next autobahn release is
available.

0.7.0

* `wormhole send DIRNAME/` used to deal very badly with the trailing slash
(sending a directory with an empty name). This is now fixed.
* Preliminary Tor support was added. Install `magic-wormhole[tor]`, make sure
you have a Tor executable on your $PATH, and run `wormhole --tor send`.
This will launch a new Tor process. Do not use this in anger/fear until it
has been tested more carefully. This feature is likely to be unstable for a
while, and lacks tests.
* The relay now prunes unused channels properly.
* Added --dump-timing= to record timeline of events, for debugging and
performance improvements. You can combine timing data from both sides to
see where the delays are happening. The server now returns timestamps in
its responses, to measure round-trip delays. A web-based visualization tool
was added in `misc/dump-timing.py`.
* twisted.transit was not properly handling multiple records received in a
single chunk. Some producer/consumer helper methods were added. You can now
run e.g. `wormhole --twisted send` to force the use of the Twisted
implementation.
* The Twisted wormhole now uses a persistent connection for all relay
messages, which should be slightly faster.
* Add `--no-listen` to prevent Transit from listening for inbound connections
(or advertising any addresses): this is only useful for testing.
* The tests now collect code coverage information, and upload them to
https://codecov.io/github/warner/magic-wormhole?ref=master .

0.6.3

Mostly internal changes:

* twisted.transit was added, so Twisted-based applications can use it now.
This includes Producer/Consumer -based flow control. The Transit protocol
and API are documented in docs/transit.md .
* The transit relay server can blur filesizes, rounding them to some
roughly-logarithmic interval.
* Use --relay-helper="" to disable use of the transit relay entirely,
limiting the file transfer to direct connections.
* The new --hide-progress option disables the progress bar.
* Made some windows-compatibility fixes, but all tests do not yet pass.

Page 4 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.