Skip to repository content87 lines · 2.7 KB · text
tenant.openagents/omega
No repository description is available.
OpenAgents Git authority 2026-07-27T23:37:39.549Z Public web read
NIP-34 coordinate
30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omegaMaintainersHidden in public view
References2 branches · 1 tag
Read-only clone
git clone https://openagents.com/git/tenant.openagents/omega.gitBrowse files
validate-omega-identity-recovery-evidence
1#!/usr/bin/env python3
2
3from __future__ import annotations
4
5import argparse
6import json
7import sys
8from pathlib import Path
9
10from omega_identity_evidence import (
11 IdentityEvidenceError,
12 self_test,
13 validate_recovery_evidence,
14)
15
16
17def parse_arguments() -> argparse.Namespace:
18 parser = argparse.ArgumentParser(
19 description="Validate candidate-bound Omega identity recovery evidence"
20 )
21 parser.add_argument("--input", type=Path)
22 parser.add_argument("--candidate-digest")
23 parser.add_argument("--candidate-artifact-sha256")
24 parser.add_argument("--candidate-binary-sha256")
25 parser.add_argument("--evidence-root", type=Path)
26 parser.add_argument("--self-test", action="store_true")
27 return parser.parse_args()
28
29
30def main() -> int:
31 arguments = parse_arguments()
32 try:
33 inputs = (
34 arguments.input,
35 arguments.candidate_digest,
36 arguments.candidate_artifact_sha256,
37 arguments.candidate_binary_sha256,
38 arguments.evidence_root,
39 )
40 if arguments.self_test:
41 if any(value is not None for value in inputs):
42 raise IdentityEvidenceError(
43 "--self-test does not accept recovery evidence inputs"
44 )
45 self_test()
46 return 0
47 if any(value is None for value in inputs):
48 raise IdentityEvidenceError(
49 "--input, --candidate-digest, --candidate-artifact-sha256, "
50 "--candidate-binary-sha256, and --evidence-root are required"
51 )
52 digest = validate_recovery_evidence(
53 arguments.input.absolute(),
54 arguments.candidate_digest,
55 arguments.candidate_artifact_sha256,
56 arguments.candidate_binary_sha256,
57 arguments.evidence_root.absolute(),
58 )
59 print(
60 json.dumps(
61 {
62 "schema": "openagents.omega.identity-recovery-evidence-validation.v1",
63 "status": "passed",
64 "receipt_sha256": digest,
65 },
66 sort_keys=True,
67 )
68 )
69 return 0
70 except (IdentityEvidenceError, OSError) as error:
71 print(
72 json.dumps(
73 {
74 "schema": "openagents.omega.identity-recovery-evidence-validation.v1",
75 "status": "failed",
76 "reason": str(error),
77 },
78 sort_keys=True,
79 ),
80 file=sys.stderr,
81 )
82 return 1
83
84
85if __name__ == "__main__":
86 raise SystemExit(main())
87