Generate a keypair and sign
Verify at runtime
Point the verifier at the public key:HEXGATE_BUNDLE_REQUIRE_SIGNATURE controls strictness — the permissive default
(load rather than refuse) keeps local dev frictionless; opt into refusal for
CI/prod:
Keys are raw Ed25519, base64url-encoded — the same format the platform’s JWKS
endpoint publishes, so production verification reuses the public key your SDK
already trusts for biscuit tokens. One root key, two artifacts.
*.private and *.pem are in .gitignore so a signing key never lands in
version control. Public keys (*.public) are safe to commit.HEXGATE_BUNDLE_SIGN_KEY_PATH=./keys/dev.private so each recompile is signed and
downstream gates that check bundle.is_signed see what they expect.