Releases: int08h/roughenough
Version 1.2.1-draft5
- Fixes runtime crash (see #33) when client socket wasn't ready to be written.
- Introduces statistics to track failed send attempts
Version 1.2.0-draft-5
Thank you contributors!
-
Add support for IPv6 in
roughtime-client
. Contributed by @unrelentingtech #28. -
Document how to set the time on FreeBSD. By @unrelentingtech in #29
-
Support base64 encoded public keys in
roughtime-client
. Contributed by @lachesis in #31. -
Added
-d/--dump
toroughenough-client
that will pretty-print text representations of the messages it sends and receives. -
Roughenough (mostly) implements the Roughtime protocol as specified in the draft-5 RFC.
Important differences from the draft RFC
- Roughenough uses SHA-512/256 to compute the Merkle tree. Draft-5 of the RFC uses a bespoke 32-byte SHA-512 prefix without rationale or justification. Given that standardized 32-byte SHA-512/256 exists and is already implemented widely, I'm sticking with it while I advocate for the RFC to move away from the custom prefix and adopt SHA-512/256.
- The server and client send/expect RFC protocol version
1
(VER tag is0x00000001
) instead of the draft's suggested0x80000000 + version
.
-
The Roughenough server operates both the "classic" protocol and the RFC compliant protocol at the same time on a single serving port (the 8-byte magic frame value added by the RFC is used to distinguish classic vs. rfc requests).
The new
-p/--protocol
flag ofroughenough-client
controls the protocol version to use in requests (0
= classic protocol,1
= RFC protocol). The default is0
the "classic" protocol, until the RFC is finalized:# send RFC protocol Roughtime requests $ roughenough-client -p 1 roughtime.int08h.com 2002
Update of major dependencies
Output local or UTC time
Version 1.1.8
New feature:
- 407f12d client: output local time by default, add -z/--zulu for UTC
Housekeeping:
Improved client output
Version 1.1.7
-
Improved options for client output thanks to @zicklag (f1f834e).
By default the client now outputs just the time reported by the queried server. The
-v
or--verbose
flag will print additional information such as the response's midpoint and radius.-j
or--json
outputs responses in JSON format instead.Non-response text output is written to standard error to enable verbose output while redirecting the response(s) to a file or pipe like so:
$ roughenough-client -v roughtime.int08h.com 2002 > time.txt Requesting time from: "roughtime.int08h.com":2002 Received time from server: midpoint="Oct 08 2019 18:40:38", radius=1000000, verified=No (merkle_index=0) $ cat time.txt Oct 08 2019 18:40:38
Clippy fixes; dependencies updated; Dockerfile to Rust 1.38
Fuzzing related changes; container build; better error message
Version 1.1.5
- Improved error messages (3841942)
- Update fuzzer server target to sync with roughenough-fuzz
- Add Dockerfile to create a server container
Implement Roughtime ecosystem response mangling
Add decryption to KMS command-line tool
Version 1.1.3
- Add decrypt option to
roughenough-kms
Now with tracking of client requests
Version 1.1.2
- Add client request statistics tracking.
- Clean-up and simplification of server inner loop.
- Rust 2018 edition required to compile.