tlog: Add shared primitives for MTC transparency logs#8792
Draft
beautifulentropy wants to merge 1 commit into
Draft
tlog: Add shared primitives for MTC transparency logs#8792beautifulentropy wants to merge 1 commit into
beautifulentropy wants to merge 1 commit into
Conversation
e009da2 to
f1fa2e6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add tlog, a library that three forthcoming components will share: the MTCA, which writes the tree; the MTPublisher, which reads it and pushes it to mirrors; and the tlog-mirror-test-srv, which receives it and provides cosignatures. It implements the common parts of the C2SP tlog-tiles, tlog-checkpoint, and tlog-cosignature specifications, plus the Merkle Tree Certificate subtree extension.
Most of the primitives come from golang.org/x/mod/sumdb/tlog and golang.org/x/mod/sumdb/note, which already cover RFC 6962 hashing, proofs, tile reading, and signed notes. This package adds the rest:
Proof generation reads hashes through a caller-supplied tlog.HashReader, verification takes only public keys, and signing goes through a caller-supplied note.Signer.