vauban-claim 0.1.0

Vauban Claim Algebra — reference implementation of draft-vauban-claim-algebra-00 (post-quantum claim sextuplet + 5 composition operators, canonical CBOR/JSON codec).
Documentation
1
2
3
4
5
6
7
8
9
10
11
use vauban_claim::*;
fn main() {
    let s = Subject::new(SubjectType::Wallet, SubjectId::Bytes(vec![0x12, 0x34, 0x56, 0x78].into_iter().chain(std::iter::repeat(0).take(28)).collect()), None).unwrap();
    let p = Predicate::new(PredicateType::Equality, "urn:vauban:test", vec![0xab; 4]).unwrap();
    let e = Evidence::new(EvidenceScheme::Stark, vec![0x01; 8], None).unwrap();
    let t = TemporalFrame::new(1700000000, Some(1700000000), Some(1700100000)).unwrap();
    let m = RevelationMask::new(vec!["age".into()], vec![], None).unwrap();
    let a = Anchor::new(vec![AnchorEntry { anchor_type: AnchorType::StarknetL3, r#ref: vec![0xa1; 32], epoch: Some(123), nullifier: None, meta: None }]).unwrap();
    let c = ClaimBuilder::new().subject(s).predicate(p).evidence(e).temporal_frame(t).revelation_mask(m).anchor(a).build().unwrap();
    println!("{}", String::from_utf8(vauban_claim::codec::to_json(&c).unwrap()).unwrap());
}