DeepSeekOracle's picture
Phase 9 public mesh v7.0 TLS LDQ synthesis
fca4a48 verified
Raw
History Blame Contribute Delete
1.23 kB
#!/usr/bin/env python3
"""LYGO Phase 9 — TPM attestation CLI (Keylime bridge)."""
from __future__ import annotations
import argparse
import json
import os
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from protocol6_quantum_attest.keylime_bridge import KeylimeAttestation # noqa: E402
def main() -> int:
ap = argparse.ArgumentParser(description="LYGO Keylime / TPM attestation")
ap.add_argument("--node-id", default=os.environ.get("LYGO_NODE_ID", "LYGO_NODE"))
ap.add_argument("--register", action="store_true")
ap.add_argument("--quote", action="store_true")
ap.add_argument("--agent-url", default="http://127.0.0.1:9002/v2/")
args = ap.parse_args()
kl = KeylimeAttestation(args.node_id, args.agent_url)
out: dict = {"node_id": args.node_id}
if args.register:
out["registered"] = kl.register_node()
if args.quote or not args.register:
quote = kl.get_quote()
out["quote"] = quote
out["quote_valid"] = KeylimeAttestation.verify_quote(quote)
print(json.dumps(out, indent=2))
return 0 if out.get("quote_valid", True) else 1
if __name__ == "__main__":
raise SystemExit(main())