radicle-heartwood-lfs/crates
Fintan Halpenny d3bc868e84 radicle/sigrefs: Rewrite Signed References
Split up signed references into its read and write components.

On the write side:
 - Preserve the old behavior of writing references to the blob `/refs`
   and sign over the blob.
 - Ensure `refs/rad/root` is contained in the `/refs` blob.
 - Ensure `refs/rad/sigrefs` is *not* contained in the `/refs` blob.
 - Introduce a new (internal) reference `refs/rad/sigrefs-parent`
   so that no two `/refs` blob are equal, even if they contain
   the same set of (non-internal) refs.

On the read side:
 - Preserve the verification of the signature in `/signature` and
   the reference `refs/rad/root` (if present).
 - Fail verification of `refs/rad/root` is not present.
 - Protect against replay attacks by walking the history of the
   head of `refs/rad/sigrefs`, skipping interpretation of `/refs`
   blobs in case they are identical to a previous `/refs` blob.
   This is achieved by searching for repeated contents of the
   `/signature` blob.

The reference `refs/rad/sigrefs-parent` is never read from or written to
the Git repository in storage.

The pre-existing implementation of signed references did not include
a nonce, thus duplicate but legitimate sets of references could not
be distinguished from maliciously replayed sets of references.

The new implementation uses `radicle-git-metadata` which is moved from
`dev-dependencies` to `dependencies`.
2026-03-17 21:31:42 +01:00
..
radicle radicle/sigrefs: Rewrite Signed References 2026-03-17 21:31:42 +01:00
radicle-cli Use humantime to parse timeouts 2026-03-17 11:39:09 +00:00
radicle-cli-test cli-test: Move `let mut args` closer to its uses 2026-02-17 20:19:26 +01:00
radicle-cob cob: Update to 0.18.0 2026-02-19 21:06:43 +01:00
radicle-core core: use "data-types" instead of "data types" 2026-02-20 13:38:34 +00:00
radicle-crypto crypto: Require `Signer: signature::Signer` 2026-03-16 14:30:48 +01:00
radicle-dag repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
radicle-fetch radicle/storage: Improve `Validation` error 2026-03-16 14:30:48 +01:00
radicle-git-metadata git-metadata: Add parsing of `CommitData` 2026-03-16 14:30:48 +01:00
radicle-git-ref-format git-ref-format: New crate 2025-10-13 13:34:15 +02:00
radicle-localtime localtime: add description in Cargo.toml 2026-02-20 13:48:14 +00:00
radicle-node node/test: Set `RAD_RNG_SEED` 2026-03-17 19:17:03 +01:00
radicle-oid Update gix-* crates 2026-02-16 17:13:39 +00:00
radicle-protocol radicle/storage/refs: Strengthen Encapsulation 2026-03-16 14:30:48 +01:00
radicle-remote-helper remote-helper: Rename `to_branch_name` 2026-02-18 00:07:49 +01:00
radicle-schemars crypto: Optionally provide JSON Schema 2026-02-10 09:39:34 +00:00
radicle-signals signals: Add support for Windows 2026-02-13 15:38:02 +00:00
radicle-ssh hooks: Enable typos, fix reported errors 2026-02-17 11:35:28 +00:00
radicle-systemd systemd: Update to 0.12.0 2026-02-20 13:11:50 +00:00
radicle-term use `CONIN$` instead of `/dev/tty` on windows 2026-03-17 10:27:30 +00:00
radicle-windows signals: Add support for Windows 2026-02-13 15:38:02 +00:00