Commit Graph

1360 Commits

Author SHA1 Message Date
Jędrzej Stuczyński 2a29bbd5a2 Bugfix/remove packet buffering (#300)
* Removed pending packets buffer

* Corrected reconnection backoff
2020-08-07 17:17:15 +01:00
Jędrzej Stuczyński eb266f59f1 Removed client list from topology (#301)
* Removed client list from topology

* Formatting
2020-08-07 17:16:10 +01:00
Dave Hrycyszyn 50805a9b0e Removing .DS_Store files 2020-07-15 16:14:43 +01:00
Kevin Foesenek 2d6812afa8 Added react example (#275)
Added react example in addition to the basic js example.
2020-07-15 16:11:52 +01:00
Jędrzej Stuczyński 6cc2bc6f91 Feature/ws send confirmation removal (#280)
* Removed send confirmation

* Updated websocket examples
2020-07-13 12:07:06 +01:00
Jędrzej Stuczyński 5ef96aa241 Updated blake3 dependency to 0.3.5 (#281) 2020-07-13 12:04:25 +01:00
Jędrzej Stuczyński a53d0a4aac Feature/topology refactor (#274)
* VersionFilterable for HashMap

* Removed NymTopology trait in favour of concrete type

* Removed providers from NymTopology

* Made gateway conversion use reference, similarly to mixes

* Using more concrete types in topology rather than b58 strings

* Allowing gateways to have DNS-resolvable mix listener address

* Error propagation for gateway key conversion
2020-07-07 10:56:50 +01:00
Jędrzej Stuczyński e849e45b12 Feature/gateway shared key generation (#272)
* Changed identity keypair to use ed25519

* Encryption key is now x25519 based + compatibiltiy with sphinx

* Pathing and import fixes

* Moved all asymmetric keys to sub-module in crypto

* Extracted aes to separate module

* kdf module in crypto

* Ability to perform diffie hellman on encryption keys

* ecdsa on identity keys

* Extremely rough and incomplete registration handshake

* Authentication primitives

* Creating new random authenticationIV

* Wrapper type for the derived shared key

* Removed AuthToken in favour of using SharedKey for authentication

* Gateway identity keys

* Registration handshake without error mapping

* Gateway address in client config

* Added extra key for gateway presence

* Updated pemstore to work on borrows instead

* Gateway client trying to perform the handshake

* Gateway changes to allow for handshake and shared key

* Debug trait on sharedkey

* native client using updated gateway client

* Slightly updated gateway API

* Minor cleanup

* Fixed pemstore to correctly save multiple keypairs

* Gateway actually deriving shared key during handshake

* Gateway sending correct mid-handshake message

* Missing quotation mark in client config template

* Fixed template for correct shared key serialization

* Fixed gateway authentication

* Fixed tests

* Using correct gateway key when converting to sphinx node

* "get_all_clients" takes them from gateways as opposed to providers now

* cargo fmt

* Renamed pemstore methods

* Unused import

* Encryption of forward requests between client and gateway

* Updated sphinx dependency to use public revision

* Sending 'error' on handshake processing error

* Removed some dead code
2020-06-30 12:01:45 +01:00
Dave Hrycyszyn cf2c200116 Removed the healthcheck module, it's no longer in use. (#271) 2020-06-19 16:02:12 +01:00
Dave Hrycyszyn 26ee30e252 Adding description field to wasm client to kill warning (#270) 2020-06-19 16:01:59 +01:00
Dave Hrycyszyn e0cf35a9c3 Running npm audit on js examples (#269) 2020-06-19 16:01:48 +01:00
dependabot[bot] a47ce33dcf build(deps): bump websocket-extensions (#261)
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-18 10:59:53 +01:00
Jędrzej Stuczyński 3c7a01e1e6 Feature/constant length packet payloads (#268)
* Reducing ACK packet size to exactly what we need

* Made fragmentidentifier into an array

* Padding all sent messages so they'd be split into constant length packets
2020-06-18 10:50:31 +01:00
jstuczyn 68f7b1a042 Added local scripts to .gitignore 2020-06-16 13:03:35 +01:00
Jędrzej Stuczyński fcfe463efa Feature/wasm topology duplication (#265)
* Removed constructor from NymTopology trait + split directory_client

* Removed bunch of duplicate wasm topology code

* Post-merge changes
2020-06-16 12:12:19 +01:00
Jędrzej Stuczyński b57a548350 Feature/packet retransmission (#263)
* Ability to send sphinx packets of different sizes + more efficient decoding

* Closing connection on connection corruption

* Missing semicolons

* Missing license notices

* Default for packetsize

* Split nymsphinx

* Replaced Mutex with RwLock for TopologyAccessor + impl Deref

* Sphinx update + import cleanup

* Moved packet_sizes file

* Updated NymTopology API

* sphinx version bump

* Missing license notice

* nymsphinx-params crate

* Changes due to ibid.

* Chunking rework to allow variable size fragments

* Initial ack crate

* Version bump to new dev build

* Cargo lock changes

* random_route_to_gateway by node address

* exposing getting read permit

* Very initial draft on ack control

* Correctly dereferencing out of topology read permit

* All pending changes + compilation todo!s

* Restricted scope of deref on TopologyAccessorInner

* Type path alias for generate_key

* Derived traits for MessageChunker

* Ack control starting to take shape!

* Awaiting callbacks

* Most of work done on acks. Now to wire it all together

* Import cleanup

* rng generalization

* Connected real traffic together; only acks from gateway left

* Removed redundant things from nymsphinx::utils

* nymsphinx-cover crate

* Ack-related fields in client config

* Decreased packet store log level

* Restored forward sphinx request

* Slight adjustements to surb acks

* Changed TopologyReadPermit from type alias into a struct

* Changes due to ibid.

* Sphinx version upgrade

* Gateway being able to understand and handle acks

* Special Cover FragmentIdentifier + removal of dead code

* Initial packet router for gateway client

* Kill client if it fails to send to gateway too many times

* Cover messages with acks

* Moved out gateway client errors

* Ignoring cover traffic acks

* Changes in ack control

* Another sphinx version upgrade

* websocket handler delegating message chunking

* Using config defined ack wait additions

* Other minor changes I should have been more dilligent with splitting

* Import path fix

* sphinx_receiver => mixnet_receiver

* Missing renamed variable instance

* Updated aes-ctr to 0.4.0

* Removed concept of 'unfragmented' single fragment

* Replay fragments detection

* Long method split

* typo

* Cleaner client init

* Fixed race condition

* Fixed similar issue for retransmission

* Cargo fmt

* Minor clenaup
2020-06-16 11:22:02 +01:00
hyperfekt db5540677c add disabling feature 'offline-test' for network-dependent tests (#260) 2020-06-15 15:53:52 +01:00
Stefan Steinert 169c995e95 Removed misplaced WorkingDirectory parameter (#264) 2020-06-15 15:53:00 +01:00
Stefan Steinert 9d88c8241e could not count to ten properly (#262) 2020-06-09 10:25:09 +01:00
Dave Hrycyszyn 6aec202938 Merge pull request #259 from nymtech/hotfix/wasm_topology_version_filter
Filtering compatible node versions
v0.7.0
2020-06-08 10:27:35 +01:00
jstuczyn 4e4187ad57 Filtering compatible node versions 2020-06-05 18:06:38 +01:00
Stefan Steinert c1e921db6a systemd service unit example (#257)
* systemd service unit example

* typo

* inconsistent use of sudo
2020-06-05 10:22:40 +01:00
jstuczyn 88eb1fce25 Using testnet directory in jsexample 2020-06-03 09:09:00 +01:00
Dave Hrycyszyn 65eb043c0b Update CHANGELOG.md 2020-06-02 14:20:23 +01:00
jstuczyn 5e78515216 Version bump 2020-06-02 12:21:42 +01:00
Dave Hrycyszyn 4c6181c09d Merge branch 'feature/rename-desktop-client' into develop 2020-06-02 12:06:10 +01:00
Dave Hrycyszyn 8cdc55b266 Changelog for 0.7.0 2020-06-02 12:05:28 +01:00
Dave Hrycyszyn 0c340a2cda renaming desktop to native client (#251) 2020-06-01 16:50:03 +01:00
Dave Hrycyszyn 496f7244ce renaming desktop to native client 2020-06-01 16:20:50 +01:00
Dave Hrycyszyn 2924551bff Cleaning up startup messages in native client (#249)
* Cleaning up startup messages in native client

* Fixed cargo fmt
2020-06-01 16:08:27 +01:00
Dave Hrycyszyn beacd21b46 Adding a pipenv dependencies file to the python client example (#250) 2020-06-01 16:08:01 +01:00
Dave Hrycyszyn 9d3500c0c5 fixing up readme, bumping version number (#246)
* fixing up readme, bumping version number

* Using the newest js
2020-06-01 11:54:03 +01:00
Jędrzej Stuczyński 860a69b246 Feature/sphinx socket packet encoder (#245)
* Ability to send sphinx packets of different sizes + more efficient decoding

* Closing connection on connection corruption

* Missing semicolons

* Missing license notices

* Default for packetsize
2020-05-27 10:08:08 +01:00
Dave Hrycyszyn aeb1a4b22e Merge branch 'feature/document-js-client' into develop 2020-05-26 18:34:22 +01:00
Dave Hrycyszyn dce22ba37c Last docs fixes 2020-05-26 18:32:48 +01:00
Dave Hrycyszyn 5ef2a22cc7 Adding some documentation to the webassembly client (#244)
* Adding some documentation to the webassembly client

* Noting that binary is unsupported for now
2020-05-21 16:57:38 +01:00
Dave Hrycyszyn 53cef63bdb Noting that binary is unsupported for now 2020-05-21 11:44:45 +01:00
Dave Hrycyszyn bfeb787e6f Adding some documentation to the webassembly client 2020-05-21 11:37:42 +01:00
Dave Hrycyszyn 1f749df59d Simplified some names and used the published npm package (#242) 2020-05-20 15:52:36 +01:00
Jędrzej Stuczyński c063cf83a6 Removed redundant console.log (#240) 2020-05-20 12:22:15 +01:00
Dave Hrycyszyn e83c4d3bea Feature/make andrew happy (#241)
* Fixing the path to nym client in node modules

* Updated package lock for latest npm
2020-05-19 13:17:16 +01:00
Jędrzej Stuczyński 54114f03b5 Feature/explicit gateway addressing (#239)
* validator: fixing a warning, untestify this when you need it for real code

* webassembly: minor readme changes.

* README changes in wasm

* Updated wasm version

* clients/webassembly: security vuln updates

* typo fix

* WIP commit

* Significantly simplified the API

* Changed switch to have default branch

* Managed to get rid of `this` bind

* Moved 'Recipient' definition

* Examples update

* Slightly more generalised 'try_from_string' for recipient

* Updated to use client@gateway addressing

* Updated tests

Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
2020-05-19 12:16:04 +01:00
Dave Hrycyszyn 8745fb4230 Feature/clean up (#238)
* validator: fixing a warning, untestify this when you need it for real code

* webassembly: minor readme changes.

* README changes in wasm

* Updated wasm version

* clients/webassembly: security vuln updates

* typo fix

* WIP commit

* Significantly simplified the API

* Changed switch to have default branch

* Managed to get rid of `this` bind

* Filled in a missing word

Co-authored-by: jstuczyn <jedrzej.stuczynski@gmail.com>
2020-05-19 10:32:52 +01:00
Jędrzej Stuczyński a38a9f604d Feature/addressing update (#237)
* Typo I've never noticed before

* Sphinx version update

* Updated 'address' to be 'recipient' (i.e. address + gateway)

* Updated websocket examples to use the updated structure
2020-05-18 13:01:51 +01:00
Jędrzej Stuczyński 7f99c2828b Added hidden init flag to increase default traffic volume (#234) 2020-05-15 10:09:27 +01:00
Jędrzej Stuczyński 2630629cdb Fixed unwrap on none value (#230) 2020-05-14 11:52:21 +01:00
Jędrzej Stuczyński 106267eb1a Bugfix/gateway crash on incomplete ws handshake (#229)
* Properly checking for errors during websocket handshake

* Unrelated typo

* Fixed similar bug in rust client
2020-05-14 11:51:04 +01:00
Jędrzej Stuczyński c8168adeb2 Bugfix/issue#231 (#233)
* Increasing reconnection attempt after actually computing delay

* Constructor mix-up....

* Replaced poll! macro with poll call (after macro expansion that's syntactically identical)
2020-05-14 11:49:36 +01:00
Jędrzej Stuczyński 3773800133 Feature/start local network improvements (#228)
* Moved directory_server from Debug section of configs

* Using correct variable path

* Updated start_local_network script

* Actually killing gateways on startup

* Removed redundant stop_local_network.sh

* The Canadian appeasement accord
2020-05-13 12:01:51 +01:00
Jędrzej Stuczyński ff2e24afbc Updated directory_client reqwest to 0.10 (#226)
* Updated directory_client reqwest to 0.10

* Using consistent syntax
2020-05-12 12:52:31 +01:00