* Split text and binary client apis
* Very initial attempt at new serialization
* Defined ser+de for Recipient and ReplySURB
* Response errors
* builds with changes
* Working WS API + moved to separate crate
* updated python examples
* Fixed parsing bug
* Updated go examples
* Updated rust examples
* formatting
* Removed unused imports
* Removed accidentally left panic call
* 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
* Dead code I forgot to remove before
* Extracted AckAes128Key into a struct
* Slight pemstore revamp allowing for symmetric key store
* ibid.
* PemStorableKey for SharedKey
* Introduced single location responsible for key management for client
* WIP
* Sphinx version update
* Stop using NodeAddressBytes for two distinct and confusing purposes
* Abstracting away SocketAddr from sphinx forwarding
* Passing the bool for reply surbs
* Attack plan for replies + encryption
* Comment + removed variable binding
* ReplySURB usage
* Topology import in nymsphinx
* Sphinx version update
* Changed 'Recipient' to contain client's encryption key
* Message preparation taking shape!
* reply surb also containing the encryption key
* Very initial message receiver
* Sphinx version update
* A possibly working way of receiving surbs
* Fixed incorrect field name in client config template
* camel casing all request arguments
* Renamed and moved `MessageMode` to more appropriate file
* Restored reconstruction tests
* Removed dead code from chunking
* Made rust examples compilable
* reply SURB key storage
* Replies as an InputMessage
* Forgotten commented code
* No retransmission processing for cover or replies
* Received reply processing
* Renamed client pathfinder to something more appropriate
* Made HasherOutputSize public
* Added key store path to config
* Reply surb attaching key digest when used
* Changes due to previous renaming
* Removed comment
* Fixed insert_encryption_key
* Assigning initial value of key store path
* Computing key digest with correct algorithm
* Initial and presumably temporary request serialization
* hacky way of introducing 'FragmentIdentifier' for replies
* Moved responsibility of reply encryption, padding, etc, to message preparer
* Optional recipient in try_get_valid_topology_ref
* Handling new reply surbs with acks and padding
* Updated go and python examples to include replies in text and binary cases
* Updated rust examples + binaryserverresponse
* Helpers in rust examples
* And updated JS example
* Moved shared key generation function to crypto crate
* Cover traffic encryption!
* hmac computation in crypto
* Updated aes imports due to new dependencies
* hkdf made more generic
* crypto cleanup + algorithms in params
* Clippy cleanup pass
* Generating encryption+mac shared keys between client and gateway
* MACs attached to forward requests to gateway
* Gateway messages encrypted and mac'd
* Lowered logging level
* compiler warning cleanup
* Some minor cleanup
* Generic stream cipher
* Generic shared key derivation + algorithm definitions
* Project-wide AES clean-up
* Comment fix
* Removed commented imports
* Updated comments
* Fixed topology test fixture