Skip to repository content

tenant.openagents/omega

No repository description is available.

OpenAgents Git authority 2026-07-28T00:51:49.064Z Public web read
NIP-34 coordinate30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omega
MaintainersHidden in public view
References2 branches · 1 tag
Read-only clonegit clone https://openagents.com/git/tenant.openagents/omega.git
Browse files

validate-omega-identity-recovery-evidence

87 lines · 2.7 KB · text
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
Served at tenant.openagents/omega Member data and write actions are omitted.