Skip to main content

verify_commit_with_bundle_json

Function verify_commit_with_bundle_json 

Source
pub async fn verify_commit_with_bundle_json(
    commit_text: &str,
    bundle_json: &str,
    pinned_roots_json: &str,
    now: DateTime<Utc>,
    provider: &dyn CryptoProvider,
) -> String
Expand description

Verify a raw git commit object against an identity bundle, fully stateless, returning the tagged JSON envelope (kind: "verdict" | "error").

The bundle is attacker-controlled input: it is parsed into a BundleTrust (freshness + RT-005 self-certification + RT-002 KEL authentication) and is evidence only — its root must already be in pinned_roots_json or verification refuses before any signature check. The commit’s Auths-Id/Auths-Device trailers may only select the bundle identity: a trailer naming any other DID cannot be resolved without an identity store and fails closed.

Args:

  • commit_text: The raw git commit object (headers + message + gpgsig), exactly as produced by git cat-file commit <sha>.
  • bundle_json: The identity bundle JSON (from auths id export-bundle).
  • pinned_roots_json: JSON array of independently pinned did:keri: roots.
  • now: Current time, injected at the boundary.
  • provider: Crypto provider for in-process SSH-signature verification.