Skip to content

Latest commit

 

History

History
147 lines (103 loc) · 5.66 KB

CHANGELOG.md

File metadata and controls

147 lines (103 loc) · 5.66 KB

Version 1.2.0-draft-5

  • Roughenough (mostly) implements the Roughtime protocol as specified in the draft-5 RFC.

    Important differences from the draft RFC

    1. 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.
    2. The server and client send/expect RFC protocol version 1 (VER tag is 0x00000001) instead of the draft's suggested 0x80000000 + 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 of roughenough-client controls the protocol version to use in requests (0 = classic protocol, 1 = RFC protocol). The default is 0 the "classic" protocol, until the RFC is finalized:

    # send RFC protocol Roughtime requests
    $ roughenough-client -p 1 roughtime.int08h.com 2002
    
  • Added -d/--dump to roughenough-client that will pretty-print text representations of the messages it sends and receives.

  • Add support for IPv6 in roughtime-client. Contributed by @unrelentingtechn #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.

Version 1.1.9

Housekeeping:

  • 8f088f1 Overdue Ring update 0.13 -> 0.16
  • 43b1de3 GCK KMS updated to the latest dependencies
  • 7ff2e53 AWS KMS also updated to latest dependencies

Version 1.1.8

New feature:

  • 407f12d client: output local time by default, add -z/--zulu for UTC

Housekeeping:

  • 02212e2 Switch to std::time and drop use of 'time' crate
  • d42db50 Upgrade several dependencies to latest versions
  • e13d6fd Remove deprecated std::error::Error::description calls
  • 32f11aa Update Dockerfile to Rust 1.42

Version 1.1.7

  • Improved options for client output thanks to @zicklag (f1f834e8c).

    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
    

Version 1.1.6

  • Fix several Clippy items (266f1adc9)
  • Update to latest Rusoto (6ff01af52)
  • Update to latest google-cloudkms (a0165c019)
  • Update Dockerfile to Rust 1.38 (a14c2e8)

Version 1.1.5

  • Improved error messages (3841942)
  • Update fuzzer server target to sync with roughenough-fuzz
  • Add Dockerfile to create a server container

Version 1.1.4

  • Implement Roughtime ecosystem response mangling (177372f, f851deb)
  • Doc fix from @Muncan90 (20ba144)

Version 1.1.3

  • Add decrypt option to roughenough-kms

Version 1.1.2

  • Add client request statistics tracking.
  • Clean-up and simplification of server inner loop.
  • Rust 2018 edition required to compile.

Version 1.1.1

Version 1.1.0

  • Optional HTTP health check (requested in #8), see the feature's documentation
  • Support AWS and Google Key Management Systems (KMS) to protect the server's long-term key. See the KMS documentation.
  • Numerous refactorings and clean ups to support fuzzing of server components (b801eda, thanks to @Aaron1011)

Version 1.0.6

  • As pointed out in #10, the client and server binary names were too generic. Rename them to be packaging friendly. Thank you @grempe. (b43bcb27ad)

Version 1.0.5

Version 1.0.4

  • Update untrusted dependency to incorporate security fix (see rustsec/advisory-db#24). Fixes #6 reported by @tirkarthi (383b0347).

Release 1.0.3

  • Limit the number of tags in a message to 1024 (0b8c965)

Release 1.0.2

  • Merge input validation and error handling improvements from #5. Fuzzing FTW.
  • Misc docstring and README updates
  • Fix incorrect range-check introduced in 9656fda and released as 1.0.1.

Release 1.0.1 (yanked)

  • Release 1.0.1 was removed from Github and yanked from crates.io due to a range-check bug. 1.0.2 is its replacement.

Release 1.0.0

Thanks to @Aaron1011's work, Roughenough has 1.0 level of functionality.

  • Server batches responses and signs Merkle tree root (3471e04, ee38933f, and 31bf8b3)
  • mio error handling improvement (613fb01f)
  • Build on Rust Nightly (350b23a)