Skip to main content

warrant_core/
lib.rs

1//! Core engine for Warrant signed capability policies.
2//!
3//! This crate is intentionally UI/framework neutral: it parses, verifies, and evaluates
4//! policies, and provides lock/elevation state primitives. Interactive prompting belongs
5//! in higher-level integration crates.
6
7mod canonical;
8mod crypto;
9mod elevation;
10mod engine;
11mod error;
12mod lock;
13mod model;
14mod parser;
15mod paths;
16mod payload;
17mod store;
18
19pub use canonical::canonical_json_bytes;
20pub use crypto::verify_ed25519_signature;
21pub use elevation::{
22    ElevationOptions, clear_elevation_session, create_elevation_session, is_elevated,
23};
24pub use engine::{CheckContext, Decision, DenyReason, check};
25pub use error::{Error, Result};
26pub use lock::{
27    LockOptions, LockResult, LockReview, ReviewDiffEntry, ReviewDiffKind, load_installed_warrant,
28    load_installed_warrant_for_tool, lock_warrant_from_draft_path, review_lock_from_draft_path,
29};
30pub use model::{ParsedWarrant, SignatureBlock, WarrantMeta};
31pub use parser::parse_toml_warrant;
32pub use paths::{ToolId, ToolPaths};
33
34/// Parse and verify a warrant TOML document in one step.
35pub fn verify_toml_warrant(input: &str) -> Result<ParsedWarrant> {
36    let parsed = parse_toml_warrant(input)?;
37    parsed.verify_signature()?;
38    Ok(parsed)
39}