@omegaengine/verify
v0.2.0
Published
Offline, zero-dependency verifier for OmegaEngine Agent Security Attestations — checks the Ed25519 signature against the published JWKS and the content hash, with no trust in OmegaEngine.
Downloads
131
Maintainers
Readme
@omegaengine/verify
Offline, zero-dependency verifier for OmegaEngine Agent Security Attestations.
It confirms two things, entirely on your machine, with no trust in (and no call to) OmegaEngine:
- Authenticity — the attestation's
signatureV2is a standard EdDSA JWS (RFC 8037) signed by the key published at OmegaEngine's JWKS (/.well-known/jwks.json, RFC 7517). - Integrity — the
attestationIdequals the SHA-256 of the canonical attestation body, so nothing was altered.
Built only on Node's built-in crypto — no third-party dependencies to trust.
CLI
npx @omegaengine/verify attestation.json
# ✓ VERIFIED — issued by https://omegaengine.ai (key 9f3a…)Custom key set (e.g. self-hosted): --jwks=https://your-host/.well-known/jwks.json.
Exit codes: 0 verified · 1 not verified · 2 usage error.
Library
import { verifyAttestation, verifyAttestationRemote } from "@omegaengine/verify";
// fetch the published JWKS and verify
const r = await verifyAttestationRemote(att);
if (r.valid) console.log("issued by", r.issuer);
// or verify against a JWKS you already hold (fully offline)
const r2 = verifyAttestation(att, jwks);Transparency log (inclusion + consistency)
Beyond authenticity, confirm an attestation was recorded in OmegaEngine's public, append-only transparency log (RFC 6962) — so a proof can't have been forged or backdated:
import { verifyInclusion, verifyInclusionRemote, verifyConsistency } from "@omegaengine/verify";
// fetch the inclusion proof + JWKS from a running instance and verify offline
const r = await verifyInclusionRemote(att);
if (r.valid) console.log("publicly logged:", r.reason);
// or verify a proof bundle you already hold (fully offline, no network)
const r2 = verifyInclusion(att, inclusion, jwks);
// monitors: prove the log was never rewritten between two tree sizes
const r3 = verifyConsistency(first, second, firstRoot, secondRoot, proof);verifyInclusion folds the audit path to the signed tree head root (RFC 6962) and
checks the tree head's EdDSA signature against the JWKS — the same key that signs
attestations. Proof bundles come from GET /api/transparency/proof/<id>; the signed head
from GET /api/transparency/sth.
Why a separate package?
The whole point of an attestation is that you don't have to trust the issuer. The old
v1 watermark was an HMAC — only OmegaEngine could check it. v2 is asymmetric: the public
key is published, so anyone can verify with this tool, with their own JOSE library,
or with openssl. This package is just the convenient path.
Attestations are automated red-team evidence, not a third-party certification. See
docs/ATTESTATION_VERIFICATION.mdfor the full method (including the raw path).
Apache-2.0.
