summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-10-07wip checkpoint; nearly round-trip kmsStuart Stock
2018-10-07checkpointStuart Stock
2018-10-07start work on envelope encryption for long-term seedStuart Stock
2018-10-07Land KMS support, yay!Stuart Stock
AWS KMS for now, work-in-progress
2018-10-07Give client and server binaries more distinctive namesStuart Stock
As pointed out in #10, the binary names are quite generic. Rename `client` to `roughenough-client` and `server` to `roughenough-server`. Fixes #10
2018-10-07prep 1.0.5 releaseStuart Stock
2018-10-02Minor Rustdoc updatesStuart Stock
2018-10-02Final touches and bow-tieing on configuration. Update README to reflect.Stuart Stock
2018-09-30Work-in-progress; still working to clean up configStuart Stock
2018-09-30Separate trait objects for file- and environment-based server configStuart Stock
2018-09-30Report unknown configuration key in FileConfigStuart Stock
2018-09-29Bump version in lib.rsStuart Stock
2018-09-29Major refeactoring for better code structureStuart Stock
* Extract distinct types for online and long-term keys * Extract and create separate configuration trait and implementation(s) * Clean-ups, renames, tidying
2018-07-28bump version constant to 1.0.4, oopsStuart Stock
2018-03-28Version 1.0.3Stuart Stock
2018-03-28limit message tag count to 1024Stuart Stock
2018-03-24Release 1.0.2Stuart Stock
2018-03-24Fix incorrect range check in multi_tag_message()Stuart Stock
9656fda introduced a buggy range check when ensuring that the value's end offset does not extend past the end of the payload.
2018-03-24Release 1.0.1Stuart Stock
2018-03-24Additional documentationStuart Stock
2018-03-24Check single tag message lengthStuart Stock
2018-03-24Restructure from_bytes; check length and alignment earlyStuart Stock
2018-03-24Check that value offset does not extend pass end of messageStuart Stock
2018-03-24Merge branch 'fuzz' of github.com:int08h/roughenough into fuzzStuart Stock
2018-03-24add docstring for from_bytes()Stuart Stock
2018-03-20Handle malformed message with truncated tag bytesStuart Stock
2018-03-20Validate offsets do not point beyond end of messageStuart Stock
2018-03-20Reject messages with zero tagsStuart Stock
2018-03-18Return Error on invalid offset instead of panic'ingStuart Stock
2018-03-17Apply default rustfmt style to the project.Stuart Stock
2018-03-15Missed updating lib.rs version constant to 1.0.0Stuart Stock
2018-03-15Merge pull request #3 from Aaron1011/batch_finalStuart Stock
Add support for batch-signing requests
2018-03-12Cleanly handle receive errors from socketAaron Hill
2018-03-12Use an Arc to share response counterAaron Hill
2018-03-12Update docs to include clientStuart Stock
2018-03-12Fix merkle testsAaron Hill
2018-03-12Remove unecessary flat_mapAaron Hill
This gives another ~50,000 reqs/second on my machine
2018-03-12Only sign SREP once per batchAaron Hill
2018-03-11Update documentation for new batch_size optionAaron Hill
2018-03-11Add support for batch-signing requestsAaron Hill
As documented in the Roughtime spec, servers can batch together requests, only signing the root of a computed Merkle tree, in order to increase efficiency. Following the example of the reference Roughtime implementation, the default batch size is set to 64. However, this value can be changed in the config. Two pieces of benchmark infrastructure are added - a simple "benchmark mode" on the server, and a "stress test mode" on the client. These features can be used to help pick an optimal batch size for the server. In "benchmark mode", the server does not log any requests. Instead, it prints out the current request processing speed every second. This helps to keep the output manageable when using the client's "stress test" mode. In "stress test mode", the client sends the same message to the server in a loop. To prevent accidental flooding of the users's local network, or a remote server, only loopback addresses are supported in this mode.
2018-03-10version 0.3.1Stuart Stock
2018-03-10Read server socket until `WouldBlock`Stuart Stock
Using the `-n` feature of @Aaron1011's excellent client I was able to find and fix a nagging bug. Post conversion from the hand-rolled event loop to a `mio` based one, the server would intermittently fail to respond to client requests. The server's UDP socket is edge-triggered and the `mio` docs clearly state that [operations must be performed until `WouldBlock`](https://carllerche.github.io/mio/mio/struct.Poll.html#edge-triggered-and-level-triggered) otherwise `poll` might not return subsequent events. Fix is to loop inside the MESSAGE token match until `recv_from` returns `WouldBlock`. The resulting code is excessively nested; a cleanup will follow.
2018-03-10Correct a Missed conversion to hex::encodeStuart Stock
2018-03-10Additional changes on top of client contribution in #1Stuart Stock
2018-03-10Merge pull request #1 from Aaron1011/final_clientStuart Stock
Add client implementation
2018-03-10Use a consistent version constant for server and clientStuart Stock
2018-03-10Convert to use of hex crate (https://crates.io/crates/hex)Stuart Stock
As part of landing #1, make existing server and test code consistent with client by using hex crate instead of forked copy of 'hex.rs'.
2018-03-10Log bytes retured from send_to() and the nonce prefix when respondingStuart Stock
2018-03-01Add client implementationAaron Hill
2018-02-25Initialize logger at INFO levelStuart Stock
Artifact of switching from fern. Init logging at INFO so mio's timeout TRACE statements do not spam the log.