from __future__ import annotations import json import time import hmac import hashlib class GovernanceLedger: def __init__(self, key: bytes): self.key = key self.entries = [] # list of dicts def attest(self, data: dict) -> dict: # produce a simple HMAC signature over the serialized data payload = json.dumps(data, sort_keys=True).encode("utf-8") signature = hmac.new(self.key, payload, hashlib.sha256).hexdigest() entry = {"timestamp": time.time(), "data": data, "signature": signature} self.entries.append(entry) return entry def verify(self, entry: dict) -> bool: payload = json.dumps(entry["data"], sort_keys=True).encode("utf-8") expected = hmac.new(self.key, payload, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, entry.get("signature", "")) def to_json(self) -> str: return json.dumps(self.entries, default=str) def create_attestation(ledger: GovernanceLedger, data: dict) -> dict: return ledger.attest(data)