Skip to main content

vgi_core/
lib.rs

1//! Shared primitives for Verifiable Git Infrastructure (VGI).
2//!
3//! Pure, dependency-light building blocks that both the signer
4//! (`did-git-sign`) and the CI verifier (`verify-trust`) rely on, kept in one
5//! crate so their wire formats cannot drift:
6//!
7//! - the PROTOCOL.sshsig encoder ([`create_ssh_signature`]) and the git
8//!   sshsig namespace ([`GIT_SSHSIG_NAMESPACE`]),
9//! - git commit-object handling ([`split_signed_commit`],
10//!   [`normalize_sshsig_armor`]),
11//! - DID-document Ed25519 key extraction ([`ed25519_keys_from_doc`]).
12//!
13//! Nothing here touches the network, a keyring, or a VTA — that is what lets
14//! the CI verifier stay a small, fast dependency.
15
16mod commit;
17mod did;
18mod sshsig;
19
20pub use commit::{normalize_sshsig_armor, split_signed_commit};
21pub use did::{ED25519_MULTICODEC_PREFIX, ed25519_keys_from_doc};
22pub use sshsig::{GIT_SSHSIG_NAMESPACE, create_ssh_signature};