Skip to main content

Module identity

Module identity 

Source
Expand description

RFC-001 §1: operator / organization identity certs.

Two cert kinds, both Ed25519 signatures over UTF-8 bytes of a DID:

  • op_cert — operator’s root key signs the session DID, binding the session under the operator. Carried on the session’s agent card alongside op_did.
  • member_cert — org’s root key signs an operator’s op_did, binding the operator into the org. Carried on the session’s agent card alongside the operator’s op_did, as an entry in org_memberships[].

Both certs are leaf-level signatures: a single key-check verifies one link. The trust chain session_did → op_did → org_did is two independent verifications, not a chained walk. This matches the NATS / OIDF / Keybase convergence noted in the RFC’s prior-art analysis (§Prior art): membership = signed statement, not roster lookup.

Verification is cryptographic only. Whether a pinned-and-verified op_did or org_did actually grants ORG_VERIFIED is a separate policy decision in trust.rs — gated on attestation status (DNS-TXT or SSO, see amendments) and per-org operator opt-in (filtering amendment §3). The split keeps the cryptographic floor honest: “the cert verifies” is a fact about bytes; “we accept this cert as authority” is a fact about operator policy.

Enums§

CertError

Functions§

sign_did_cert
Sign payload_did with signing_key. Returns the base64 cert ready to drop into op_cert or member_cert.
sign_succession_cert
Sign a key-rotation succession statement (RFC-001 §T19/§T20): the OLD key attests “old_did hands off to new_did”. Because a wire DID commits to its key, rotating the key mints a new DID — this cert is what lets a peer who pinned old_did follow the handoff to new_did. The new key is not part of this signature; the verifier separately checks that new_pubkey commits to new_did.
verify_member_cert
Verify member_cert was produced by org_pubkey over the UTF-8 bytes of op_did. Caller must independently ensure org_pubkey is the correct key for the claimed org_did (typically by checking the wireup-registered org attestation, RFC-001 §2).
verify_op_cert
Verify op_cert (b64 Ed25519 signature) was produced by op_pubkey over the UTF-8 bytes of session_did. Caller must independently ensure op_pubkey is the correct key for the claimed op_did (typically by looking it up in a pinned operator record or by pulling it from the wireup registry’s GET /v1/op/<op_did> endpoint).
verify_succession_cert
Verify a succession cert: old_pubkey (which the caller must independently confirm commits to old_did) signed the canonical old_did → new_did handoff for kind. A cert for a different new_did, kind, or signer fails.