- Dependencies were upgraded.
-
Added
SubtreeHash,ValidSubtree,CoverInterval, and subtree proofs. -
Added ML-DSA-44 cosignature support.
-
Added
CosignatureSigner.SignSubtreeandCosignatureVerifier.VerifySubtreeto sign and verify subtree cosignatures. -
Added
NewCosignatureVerifierFromKeyto produce a verifier from acrypto.PublicKeyinstead of a vkey. -
Added
HashReaderOverlay, atlog.HashReaderthat extends a tree with the stored hashes of appended records, held in memory.
- New package with a Merkle Patricia Trie implementation.
-
The
-bastionflag was removed. Configure per-log bastions instead, for example with the newset-bastionswitnessctl command. -
Added Prometheus metrics and
-listen-metricsflag. -
The bastion certificate is now generated once at startup.
- Added
set-bastionscommand, which adds the given bastion(s) to every log that has none configured (for example afterpull-logs), or replaces the bastions of every log with-all.
- Comments and empty lines are now allowed in the backends file.
-
Added
FormatProof,FormatProofWithExtraDataandProofExtraDatato format c2sp.org/tlog-proof@v1 inclusion proofs ("spicy signatures"). -
Added
Policyinterface andVerifyProof/VerifyCheckpointto verify proofs and checkpoints against a configurable (co)signature policy. -
Added
ParsePolicyto parse policies from a format based on the Sigsum textual policies, but using vkeys instead of raw public keys.
- New package with a
TileReaderadapter fortessera.LogReader.
-
-listen-httpnow acceptshost:portin addition to a bare port number. -
ACME now works correctly when using
-listen-http. -
Added
-tls-certand-tls-keyflags to use a provided TLS certificate instead of ACME.-testcertwas removed. -
The backends file is now allowed to be empty.
-
Added
-obscurityflag to disable the/logzendpoint.
- Added
-obscurityflag to disable the/and/logzendpoints.
-
add-keynow rejects duplicate keys. -
list-logsno longer shows duplicate keys and bastions.
- Added new tlog demo implementing an age keyserver (see https://words.filippo.io/keyserver-tlog/).
-
Added
TileFS, aTileReaderimplementation that reads tiles from a filesystem. Supports optional gzip decompression of data tiles. -
Added
TileArchiveFS, anfs.FSimplementation that reads files from a set of zip archives.
Updated golang.org/x/... dependencies.
-
Added
NewCosignatureVerifierto parse tlog-cosignature vkeys. -
Added
Client.AllEntriesto fetch all entries from a log without stopping at the last full tile boundary. This is useful for one-shot monitors that don't tail the log.
- Added support for per-log bastions and
-no-listenflag. Use the newadd-bastionanddel-bastionwitnessctl commands to manage them.
- Added
-listen-httpflag to accept requests on localhost instead of the public port witnesses use to connect to the bastion.
- Fix
CosignatureSigner/CosignatureVerifierto correctly sign and verify checkpoints with extension lines, according to c2sp.org/tlog-cosignature.
Switched to Go project LICENSE (BSD-3-Clause).
Updated minimum Go version to Go 1.24.
-
Added tlog client, tiles fetcher, and permanent cache.
-
Added
HashProofto prove inclusion of arbitrary tree interior nodes. -
Added
ReadTileEntryandAppendTileEntryto read and write entry bundles, andReadSumDBEntryto read Go sumdb entries.
- Switched to zombiezen.com/go/sqlite.
- Added
pull-logscommand to fetch logs from the witness network.
- New experimental prefix trie implementation. Unstable.
Renamed repository to Torchwood.
- Exposed various c2sp.org/signed-note, c2sp.org/tlog-cosignature, c2sp.org/tlog-checkpoint, and c2sp.org/tlog-tiles functions.
-
Fixed SQLite concurrency issue.
-
Redacted IP addresses from
/logz.
- Allow verifier keys that don't match the origin, like the Go sumdb's.
- Redacted IP addresses from
/logz.
-
Fixed vkey encoding in logs and home page.
-
Improved
/logzweb page.
- Improved
/logzweb page.
- Fixed formatting of backend key hashes in logs.
-
Backend connection lifecycle events (including new details about errors) are now logged at the INFO level (the default). Client-side errors and HTTP/2 debug logs are now logged at the DEBUG level.
-
Config.Logis now alog/slog.Loggerinstead of alog.Logger. -
/logznow exposes the debug logs in a simple public web console. At most ten clients can connect to it at a time. -
New
-home-redirectflag redirects the root to the given URL. -
Connections to removed backends are now closed on SIGHUP, using the new
Bastion.FlushBackendConnectionsmethod.
/logznow exposes the debug logs in a simple public web console. At most ten clients can connect to it at a time.
-
Reduced Info log level verbosity, increased Debug log level verbosity.
-
Sending SIGUSR1 (
killall -USR1 litewitness) will toggle log level between Info and Debug. -
-keyis now an SSH fingerprint (withSHA256:prefix) as printed byssh-add -l. The old format is still accepted for compatibility. -
The verifier key of the witness is logged on startup.
-
A small homepage listing the verifier key and the known logs is served at /.
-
New
add-keyanddel-keycommands. -
add-log -keywas removed. The key is now added withadd-key.
- Fix cosignature endianness. #12