<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chapman-a2a-mls-01" category="exp" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Confidential Agent Messaging">End-to-End Encryption and Purpose-Bound Governance for Agent-to-Agent Messaging</title>
    <seriesInfo name="Internet-Draft" value="draft-chapman-a2a-mls-01"/>
    <author initials="L. D." surname="Chapman" fullname="Luke Daniel Chapman">
      <organization>Qwixl</organization>
      <address>
        <email>luke.chapman@qwixl.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="31"/>
    <area>Security</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>MLS</keyword>
    <keyword>agent</keyword>
    <keyword>end-to-end encryption</keyword>
    <keyword>data minimisation</keyword>
    <keyword>A2A</keyword>
    <abstract>
      <?line 63?>

<t>Agent-to-agent protocols increasingly carry messages between autonomous software
agents acting on behalf of distinct principals, including across organisational
boundaries. Existing protocols in this space secure the transport hop and
authenticate the calling party, but do not provide message-level
confidentiality, do not provide non-repudiable evidence of what a counterparty
asserted, and do not carry machine-enforceable constraints on how a recipient
may use the data conveyed.</t>
      <t>This document specifies a profile that addresses those three gaps. It defines a
Governed Object: a signed, purpose-bound, expiring message envelope identified
by a decentralised identifier. It specifies how such objects are exchanged
inside end-to-end encrypted sessions established using the Messaging Layer
Security (MLS) protocol <xref target="RFC9420"/>, and how the MLS credential is
cryptographically bound to the sending agent's identity. It defines the
encapsulation of these constructs as an extension to an agent-to-agent
transport, using the Agent2Agent (A2A) protocol <xref target="A2A"/> as the reference
binding, and specifies mandatory receiver-side processing rules including
replay rejection and purpose enforcement.</t>
    </abstract>
  </front>
  <middle>
    <?line 84?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>Deployments of agent-to-agent messaging are moving from single-organisation
orchestration towards interactions between agents that represent different
principals: a person and a business, two businesses, or a citizen and a public
body. Three properties that are routinely required in such interactions are not
provided by the agent-to-agent protocols currently in use.</t>
        <dl>
          <dt>Confidentiality against intermediaries.</dt>
          <dd>
            <t>Current practice secures the transport hop, typically with TLS, and
authenticates the caller, typically with OAuth 2.0, OpenID Connect, or mutual
TLS. Any intermediary that terminates TLS -- a gateway, a broker, a hosting
provider, or the platform operating either agent -- can read the full message
content. Where the two principals are mutually independent and the message
content is confidential, commercially sensitive, or personal data, transport
security is insufficient.</t>
          </dd>
          <dt>Non-repudiable assertion.</dt>
          <dd>
            <t>A recipient frequently needs durable evidence of what the counterparty's
agent asserted, and needs it to remain verifiable after the session has
ended, after key rotation, and independently of any log held by an
intermediary. Transport-level authentication does not produce such evidence,
because it authenticates a connection rather than a statement.</t>
          </dd>
          <dt>Machine-enforceable use constraints.</dt>
          <dd>
            <t>When an agent discloses data to a counterparty, the disclosing principal
frequently intends the disclosure to be limited: to a stated purpose, and for
a bounded period. Today that intent, if expressed at all, is expressed in
prose outside the protocol and is therefore not available to the receiving
implementation at the moment of processing.</t>
          </dd>
        </dl>
        <t>These are not hypothetical requirements. In several jurisdictions the second and
third are closely related to statutory obligations; see <xref target="regulatory"/>.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies:</t>
        <ul spacing="normal">
          <li>
            <t>a signed message envelope, the Governed Object, carrying a semantic type, a
payload, a declared purpose, and an expiry (<xref target="governed-object"/>);</t>
          </li>
          <li>
            <t>an agent identity scheme based on Ed25519 <xref target="RFC8032"/> decentralised
identifiers, and a mandatory cryptographic binding between that identity and
the agent's MLS credential (<xref target="identity"/>);</t>
          </li>
          <li>
            <t>establishment of MLS <xref target="RFC9420"/> sessions between agents, including
publication and retrieval of MLS KeyPackages (<xref target="sessions"/>);</t>
          </li>
          <li>
            <t>encapsulation of MLS wire messages and Governed Objects as an extension to an
agent-to-agent transport, with A2A <xref target="A2A"/> as the reference binding
(<xref target="encapsulation"/>);</t>
          </li>
          <li>
            <t>mandatory receiver-side processing rules, including signature verification,
expiry rejection, replay rejection, and purpose enforcement
(<xref target="processing"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="non-goals">
        <name>Non-Goals</name>
        <t>This document does not:</t>
        <ul spacing="normal">
          <li>
            <t>define a new agent-to-agent transport, discovery mechanism, or capability
description format; it layers on an existing one;</t>
          </li>
          <li>
            <t>define agent tool invocation or local resource access, for which the Model
Context Protocol <xref target="MCP"/> and comparable mechanisms are used;</t>
          </li>
          <li>
            <t>provide cryptographic enforcement of purpose limitation. The purpose field is
signed, tamper-evident, and mandatory to enforce at the receiver, but a
non-conforming receiver that has decrypted a message can disregard it. This
is a deliberate limitation, discussed in <xref target="security"/>;</t>
          </li>
          <li>
            <t>specify authorisation policy, business semantics, or user interface
behaviour;</t>
          </li>
          <li>
            <t>specify how a decentralised identifier is bound to a legal or natural
identity. That binding, where required, is provided by credential
presentation layered above this specification and is out of scope.</t>
          </li>
        </ul>
      </section>
      <section anchor="relationship-to-existing-work">
        <name>Relationship to Existing Work</name>
        <t>MLS <xref target="RFC9420"/> provides the group key establishment and message protection
used here. This document does not modify MLS. It specifies a ciphersuite
constraint, a credential-binding requirement, and a transport encapsulation.</t>
        <t>A2A <xref target="A2A"/> provides agent discovery, capability description, and message
transport. A2A version 1.0 supports declared protocol extensions, and this
document is specified as such an extension; <xref target="protocol-version"/> states the
version this binding targets. Nothing here requires changes to A2A itself.</t>
        <t>The mechanism is transport-agnostic in principle. A2A is used as the reference
binding because it is widely deployed and because its extension mechanism makes
the binding expressible without protocol changes.</t>
      </section>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<dl>
        <dt>Agent:</dt>
        <dd>
          <t>A software process that sends and receives messages on behalf of a principal.</t>
        </dd>
        <dt>Principal:</dt>
        <dd>
          <t>The natural person, legal person, or organisation on whose behalf an agent
acts.</t>
        </dd>
        <dt>Agent Identity:</dt>
        <dd>
          <t>A <tt>did:key</tt> identifier <xref target="DIDKEY"/> encoding an Ed25519 public key, used to
identify an agent and to verify its signatures.</t>
        </dd>
        <dt>Governed Object:</dt>
        <dd>
          <t>The signed message envelope specified in <xref target="governed-object"/>.</t>
        </dd>
        <dt>Purpose:</dt>
        <dd>
          <t>A short string in a Governed Object declaring the use for which the payload is
disclosed.</t>
        </dd>
        <dt>Relying Receiver:</dt>
        <dd>
          <t>An implementation that accepts a Governed Object and acts upon its payload.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>Two agents, each holding an Ed25519 key pair, establish an MLS group containing
exactly two members (a pair session) or more than two members (a group
session). Application messages within that group carry Governed Objects
serialised as JSON <xref target="RFC8259"/>.</t>
      <t>The MLS wire bytes are carried inside the agent-to-agent transport as opaque
data. The transport therefore learns the identity of the endpoints and the size
and timing of messages, but not the content.</t>
      <figure anchor="fig-arch">
        <name>Confidential agent messaging</name>
        <artwork><![CDATA[
  Principal A                                     Principal B
      |                                                 |
  +---v-----------+                             +-------v-------+
  |   Agent A     |                             |   Agent B     |
  |               |                             |               |
  | Ed25519 key   |                             | Ed25519 key   |
  | did:key:zA..  |                             | did:key:zB..  |
  +---+-----------+                             +-----------+---+
      |                                                     |
      |  (1) retrieve KeyPackage                            |
      |---------------------------------------------------->|
      |  (2) MLS Welcome + ratchet tree                     |
      |---------------------------------------------------->|
      |                                                     |
      |  (3) MLS application message                        |
      |      = AEAD( JSON( GovernedObject ) )               |
      |<--------------------------------------------------->|
      |                                                     |
   +--+-----------------------------------------------------+--+
   |          agent-to-agent transport (e.g. A2A over HTTPS)   |
   |          sees: endpoints, size, timing. not: content      |
   +----------------------------------------------------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="identity">
      <name>Agent Identity</name>
      <section anchor="identifier-construction">
        <name>Identifier Construction</name>
        <t>An Agent Identity is a <tt>did:key</tt> identifier <xref target="DIDKEY"/> encoding an Ed25519
public key. The identifier is the string <tt>did:key:</tt> followed by the multibase
base58btc encoding (prefix <tt>z</tt>) of the multicodec <tt>ed25519-pub</tt> header
(<tt>0xed 0x01</tt>) concatenated with the 32-byte public key.</t>
        <t>Verifiers <bcp14>MUST</bcp14> derive the public key from the identifier itself. Conforming
implementations <bcp14>MUST NOT</bcp14> require network resolution of the identifier in order
to verify a signature. This property is required so that a Governed Object
remains verifiable offline and after the issuer's service has ceased to
operate.</t>
        <t>Implementations <bcp14>MAY</bcp14> support additional DID methods. Implementations <bcp14>MUST</bcp14> support
<tt>did:key</tt>.</t>
      </section>
      <section anchor="mls-ciphersuite">
        <name>MLS Ciphersuite</name>
        <t>Implementations <bcp14>MUST</bcp14> support MLS ciphersuite
<tt>MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519</tt> (value <tt>0x0001</tt> in the MLS
Ciphersuites registry established by <xref target="RFC9420"/>).</t>
        <t>This ciphersuite is mandatory because its signature scheme is Ed25519, matching
the Agent Identity key type and enabling the binding specified in
<xref target="credential-binding"/>. Implementations <bcp14>MAY</bcp14> negotiate other ciphersuites,
subject to that section.</t>
      </section>
      <section anchor="credential-binding">
        <name>Credential Binding</name>
        <t>An agent's MLS credential <bcp14>MUST</bcp14> be a <tt>basic</tt> credential whose identity is the
UTF-8 encoding of the agent's Agent Identity.</t>
        <t>Furthermore, the MLS <tt>signature_key</tt> in the agent's LeafNode <bcp14>MUST</bcp14> be the same
Ed25519 public key that is encoded in that Agent Identity.</t>
        <t>This requirement is the load-bearing element of this section. Without it, an
attacker who can publish a KeyPackage may assert an arbitrary DID string in the
credential, and a receiver has no cryptographic basis for concluding that
messages from that MLS member originate from the holder of the corresponding
DID. With it, MLS membership and Governed Object authorship are bound to a
single key.</t>
        <t>On receiving a KeyPackage or LeafNode, an implementation <bcp14>MUST</bcp14> verify that the
credential identity parses as a <tt>did:key</tt> Ed25519 identifier and that the
public key so derived is octet-for-octet equal to the LeafNode
<tt>signature_key</tt>. If the check fails, the implementation <bcp14>MUST</bcp14> reject the
KeyPackage and <bcp14>MUST NOT</bcp14> add the member to a group.</t>
        <t>Where a ciphersuite whose signature scheme is not Ed25519 is negotiated, the
binding of <xref target="credential-binding"/> cannot be expressed by key equality. In that
case implementations <bcp14>MUST</bcp14> instead require the credential identity to be
accompanied by a proof of possession: a signature, made with the Agent
Identity key, over the MLS <tt>signature_key</tt>. Definition of that proof's
encoding is deferred to a future revision of this document; until it is
specified, implementations that require the binding <bcp14>MUST</bcp14> use ciphersuite
<tt>0x0001</tt>.</t>
      </section>
    </section>
    <section anchor="governed-object">
      <name>The Governed Object</name>
      <section anchor="structure">
        <name>Structure</name>
        <t>A Governed Object is a JSON object <xref target="RFC8259"/> with the following members. All
listed members are mandatory unless stated otherwise.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>version</tt></td>
              <td align="left">number</td>
              <td align="left">Format version. <bcp14>MUST</bcp14> be <tt>1</tt> for this specification.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">string</td>
              <td align="left">Unique object identifier. <bcp14>MUST</bcp14> be unique per issuer.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuerDid</tt></td>
              <td align="left">string</td>
              <td align="left">Agent Identity of the signer.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuedAt</tt></td>
              <td align="left">string</td>
              <td align="left">Issuance time, RFC 3339 date-time in UTC.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>semantic</tt></td>
              <td align="left">object</td>
              <td align="left">Type descriptor; see below.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>payload</tt></td>
              <td align="left">object</td>
              <td align="left">Application data.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>governance</tt></td>
              <td align="left">object</td>
              <td align="left">Use constraints; see <xref target="governance"/>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signatureAlgorithm</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>MUST</bcp14> be <tt>"ed25519"</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signature</tt></td>
              <td align="left">string</td>
              <td align="left">Base64 <xref target="RFC4648"/> Ed25519 signature.</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>semantic</tt> member has a mandatory <tt>schema</tt> member containing an absolute
URI identifying the payload type, and <bcp14>OPTIONAL</bcp14> <tt>version</tt> and <tt>embeddingHint</tt>
members.</t>
        <t>The <tt>id</tt> member <bcp14>MUST</bcp14> be unique per issuer and <bcp14>SHOULD</bcp14> be a UUID or other value
with negligible collision probability. Receivers rely on this for replay
rejection (<xref target="replay"/>).</t>
      </section>
      <section anchor="governance">
        <name>Governance</name>
        <t>The <tt>governance</tt> member carries:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>purpose</tt></td>
              <td align="left">string</td>
              <td align="left">Mandatory. Declared use for the payload.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ttlSeconds</tt></td>
              <td align="left">number</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>. Lifetime in seconds from <tt>issuedAt</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>expiresAt</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>. Absolute expiry, RFC 3339 date-time.</td>
            </tr>
          </tbody>
        </table>
        <t>If both <tt>ttlSeconds</tt> and <tt>expiresAt</tt> are present, the earlier resulting instant
is the effective expiry. If neither is present, the object does not expire, and
receivers <bcp14>SHOULD</bcp14> apply a locally configured maximum lifetime.</t>
        <t>Purpose strings are lowercase, colon-delimited, and hierarchical, for example
<tt>comms:message</tt> or <tt>coordination:proposal</tt>. Purpose values are application
domain vocabulary; this document does not define a registry, but see
<xref target="iana"/> for a discussion of whether one is warranted.</t>
      </section>
      <section anchor="canonical">
        <name>Canonical Serialisation</name>
        <t>The signature is computed over a canonical serialisation of the object's
content, excluding <tt>signatureAlgorithm</tt> and <tt>signature</tt>.</t>
        <t>The canonical form is produced by serialising the JSON object consisting of
exactly the members <tt>version</tt>, <tt>id</tt>, <tt>issuerDid</tt>, <tt>issuedAt</tt>, <tt>semantic</tt>,
<tt>payload</tt>, and <tt>governance</tt>, such that:</t>
        <ol spacing="normal" type="1"><li>
            <t>object members are ordered lexicographically by their UTF-16 code unit
sequence;</t>
          </li>
          <li>
            <t>members whose value is undefined or absent are omitted;</t>
          </li>
          <li>
            <t>array element order is preserved;</t>
          </li>
          <li>
            <t>no insignificant whitespace is emitted;</t>
          </li>
          <li>
            <t>strings and numbers are serialised as specified by <xref target="RFC8259"/>.</t>
          </li>
        </ol>
        <t>Implementations <bcp14>SHOULD</bcp14> use JSON Canonicalization Scheme <xref target="RFC8785"/> where
available; it satisfies the requirements above for the value space used by this
specification.</t>
        <t>Nested objects within <tt>semantic</tt>, <tt>payload</tt>, and <tt>governance</tt> are canonicalised
recursively by the same rules.</t>
        <t>Payload authors <bcp14>SHOULD</bcp14> avoid floating-point numbers, because canonical
serialisation of floating-point values is a known source of cross-language
interoperability failure. Where numeric precision matters, payloads <bcp14>SHOULD</bcp14>
encode values as strings or as integers in a stated minor unit.</t>
      </section>
      <section anchor="signing">
        <name>Signing</name>
        <t>The signature is <tt>Ed25519(privateKey, UTF8(canonicalForm))</tt> as specified in
<xref target="RFC8032"/>, encoded per <xref target="RFC4648"/> Section 4 (base64 with padding).</t>
      </section>
      <section anchor="verification">
        <name>Verification</name>
        <t>A verifier <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>confirm <tt>version</tt> equals <tt>1</tt>;</t>
          </li>
          <li>
            <t>confirm <tt>signatureAlgorithm</tt> equals <tt>"ed25519"</tt>;</t>
          </li>
          <li>
            <t>derive the Ed25519 public key from <tt>issuerDid</tt> per <xref target="identity"/>;</t>
          </li>
          <li>
            <t>recompute the canonical form per <xref target="canonical"/>;</t>
          </li>
          <li>
            <t>verify the signature.</t>
          </li>
        </ol>
        <t>Verification failure <bcp14>MUST</bcp14> cause the object to be rejected.</t>
      </section>
    </section>
    <section anchor="sessions">
      <name>Session Establishment</name>
      <section anchor="keypackage-publication">
        <name>KeyPackage Publication</name>
        <t>An agent that accepts incoming sessions publishes MLS KeyPackages. Where the
A2A binding of <xref target="encapsulation"/> is used, the agent <bcp14>SHOULD</bcp14> expose them at the
path <tt>/mls/key-package</tt> relative to its A2A service endpoint, returning a JSON
object with members <tt>did</tt> (the Agent Identity) and <tt>wire</tt> (the base64-encoded
MLS KeyPackage).</t>
        <t>Publishing endpoints <bcp14>MUST</bcp14> rate-limit KeyPackage retrieval. KeyPackages are
single-use in MLS; unbounded retrieval permits exhaustion of an agent's
pre-published supply.</t>
        <t>Retrievers <bcp14>MUST</bcp14> perform the credential binding check of
<xref target="credential-binding"/> on the retrieved KeyPackage before use.</t>
      </section>
      <section anchor="establishing-a-pair-session">
        <name>Establishing a Pair Session</name>
        <t>The initiating agent creates an MLS group containing itself, then commits an Add
proposal for the responding agent using the retrieved KeyPackage, and delivers
the resulting Welcome message and ratchet tree to the responder using the
handshake encapsulation of <xref target="handshake-part"/>.</t>
        <t>Where the responder's identity was learned from an out-of-band invitation that
asserted a specific Agent Identity, the initiator <bcp14>MUST</bcp14> verify that the
retrieved KeyPackage's credential identity equals the asserted identity, and
<bcp14>MUST</bcp14> abort establishment on mismatch. Absent this check, an attacker who
controls the endpoint named in an invitation can substitute their own identity.</t>
      </section>
      <section anchor="group-sessions">
        <name>Group Sessions</name>
        <t>Sessions with more than two members follow MLS group semantics unchanged. Any
member with commit rights, as determined by local policy, <bcp14>MAY</bcp14> add or remove
members. This document places no additional requirements on group membership
policy, but implementations <bcp14>MUST</bcp14> apply the credential binding check of
<xref target="credential-binding"/> to every joining member.</t>
      </section>
      <section anchor="session-persistence">
        <name>Session Persistence</name>
        <t>Implementations that persist MLS group state across process restarts <bcp14>MUST</bcp14>
protect that state at rest with confidentiality and integrity equivalent to the
protection afforded to long-term private keys. Group state contains the secrets
necessary to decrypt past and future epochs.</t>
      </section>
    </section>
    <section anchor="encapsulation">
      <name>Encapsulation</name>
      <t>This section specifies the A2A <xref target="A2A"/> binding.</t>
      <section anchor="protocol-version">
        <name>Protocol Version</name>
        <t>This binding is specified against A2A version 1.0. Two properties of that
version are relied upon: a message part carries a <tt>mediaType</tt> member of its own,
and a message may enumerate the extensions it depends upon.</t>
        <t>A2A version 0.3 provided neither. Implementations <bcp14>MAY</bcp14> interoperate with peers
speaking version 0.3 by applying <xref target="version-compat"/>, and the reference
implementation does so, but a conforming implementation of this document
transmits version 1.0.</t>
        <t>Throughout this section, part and message members are named as they appear in
the JSON serialisation on the wire. An implementation generated from the A2A
protocol buffer schema will present the part content as a language-level tagged
union; that representation is an artefact of code generation and is not
observable by a peer.</t>
      </section>
      <section anchor="extension-declaration">
        <name>Extension Declaration</name>
        <t>An agent supporting the <strong>Governed Object</strong> profile defined in this document
<bcp14>MUST</bcp14> declare the extension URI <tt>https://atom.qwixl.dev/a2a/data-object/v1</tt> in
the <tt>capabilities.extensions</tt> member of its Agent Card, with <tt>required</tt> set to
false.</t>
        <t>A message carrying one or more <strong>Governed Object</strong> parts <bcp14>SHOULD</bcp14> list that URI
in the message's <tt>extensions</tt> member. A message that carries only MLS wire or
MLS handshake parts <bcp14>MUST NOT</bcp14> stamp the Governed Object URI in <tt>extensions</tt>
(the GO claim stays narrow; MLS <bcp14>MAY</bcp14> later ship under its own extension URI).
A receiver <bcp14>MUST NOT</bcp14> require the <tt>extensions</tt> member to be present, since a peer
speaking A2A version 0.3 has no such member to populate, and <bcp14>MUST NOT</bcp14> rely upon
it to identify a part: the media type is authoritative.</t>
        <t>The A2A extension specification for the Governed Object profile alone (without
MLS) is published under <tt>spec/extensions/data-object-v1/</tt> in the reference
implementation repository. This Internet-Draft remains the broader provenance
document covering Governed Objects together with MLS session mechanics.</t>
        <t>Editor's note: this URI reflects the deployed reference implementation. Should
this document be adopted by a standards body, the URI is expected to be
reassigned under that body's namespace. Implementations <bcp14>SHOULD</bcp14> treat the URI as
an opaque identifier.</t>
      </section>
      <section anchor="media-type-placement">
        <name>Media Type Placement</name>
        <t>Each part specified below is identified by one of the media types in <xref target="iana"/>.
A sender <bcp14>MUST</bcp14> set the media type in the part's <tt>mediaType</tt> member, and <bcp14>SHOULD</bcp14>
also set a <tt>mediaType</tt> member within the part's <tt>data</tt> object with the identical
value.</t>
        <t>A receiver <bcp14>MUST</bcp14> determine the media type from the part's <tt>mediaType</tt> member when
that member is present and non-empty, and <bcp14>MUST</bcp14> fall back to the <tt>mediaType</tt>
member within the <tt>data</tt> object otherwise. Where both are present and they
disagree, the receiver <bcp14>MUST</bcp14> reject the part.</t>
        <t>The duplication exists because version 0.3 of A2A had no <tt>mediaType</tt> member on a
part, obliging deployments written against A2A version 0.3 to carry the
media type inside the payload. A receiver that reads only the inner member
therefore continues to interoperate. A sender <bcp14>MAY</bcp14> omit the inner member once no
such receiver remains reachable; this document retains it as a <bcp14>SHOULD</bcp14> rather
than a <bcp14>MUST</bcp14> for that reason.</t>
      </section>
      <section anchor="governed-object-part">
        <name>Governed Object Part</name>
        <t>A Governed Object <bcp14>MAY</bcp14> be carried unencrypted in an A2A message part whose <tt>data</tt>
member is a JSON object with members <tt>mediaType</tt>, set to
<tt>application/vnd.atom.data-object+json;version=1</tt> per
<xref target="media-type-placement"/>, and <tt>object</tt>, set to the Governed Object.</t>
        <artwork><![CDATA[
{
  "data": {
    "mediaType": "application/vnd.atom.data-object+json;version=1",
    "object": { ... Governed Object ... }
  },
  "mediaType": "application/vnd.atom.data-object+json;version=1"
}
]]></artwork>
        <t>Unencrypted carriage provides authenticity and governance metadata but not
confidentiality. Implementations <bcp14>MUST NOT</bcp14> use unencrypted carriage for personal
data or otherwise confidential payloads where an MLS session can be
established. Implementations <bcp14>SHOULD</bcp14> default to encrypted carriage.</t>
      </section>
      <section anchor="mls-wire-part">
        <name>MLS Wire Part</name>
        <t>MLS wire messages are carried in an A2A message part whose <tt>data</tt> member is a
JSON object with members <tt>mediaType</tt>, set to
<tt>application/vnd.atom.mls-wire+cbor;version=1</tt> per <xref target="media-type-placement"/>,
and <tt>wire</tt>, set to the base64 encoding <xref target="RFC4648"/> of the MLSMessage as
serialised per <xref target="RFC9420"/>.</t>
        <artwork><![CDATA[
{
  "data": {
    "mediaType": "application/vnd.atom.mls-wire+cbor;version=1",
    "wire": "<base64 MLSMessage>"
  },
  "mediaType": "application/vnd.atom.mls-wire+cbor;version=1"
}
]]></artwork>
        <t>The decrypted application message plaintext is the UTF-8 encoding of a JSON
object with a member <tt>object</tt> containing a Governed Object. Implementations <bcp14>MAY</bcp14>
define additional members; receivers <bcp14>MUST</bcp14> ignore members they do not
recognise.</t>
      </section>
      <section anchor="handshake-part">
        <name>Handshake Part</name>
        <t>MLS Welcome messages and the accompanying ratchet tree are carried in an A2A
message part whose <tt>data</tt> member is a JSON object with member <tt>mediaType</tt> set to
<tt>application/vnd.atom.mls-handshake+json;version=1</tt> per
<xref target="media-type-placement"/>, and members conveying the base64-encoded Welcome and
ratchet tree.</t>
      </section>
      <section anchor="agent-card">
        <name>Agent Card</name>
        <t>An agent's endpoints are declared in the <tt>supportedInterfaces</tt> member of its
Agent Card, an ordered list in which the first entry is the sender's preferred
interface and each entry states the A2A protocol version that interface speaks.
A2A version 0.3 instead declared a single endpoint in a top-level <tt>url</tt> member;
an implementation reading a card <bcp14>MUST NOT</bcp14> depend on that member.</t>
        <t>An agent <bcp14>MAY</bcp14> declare more than one interface at the same URL in order to serve
more than one protocol version, and the reference implementation does so.</t>
        <t>An Agent Card <bcp14>MAY</bcp14> carry one or more JWS signatures in its <tt>signatures</tt> member.
Where an agent's identity is a <tt>did:key</tt> as specified in <xref target="identity"/>, the
signature's <tt>kid</tt> header parameter <bcp14>SHOULD</bcp14> be that identifier, because the
verifying key is then recoverable from the identifier itself and card
verification requires no key distribution mechanism and no further network
retrieval.</t>
        <t>A relying party that verifies a card signature <bcp14>MUST</bcp14> treat the identifier in
<tt>kid</tt> as the identity that produced the card, and <bcp14>MUST NOT</bcp14> infer from a valid
signature that the card's contents are endorsed by any other identity named
within it. Transport security establishes control of the origin serving a card;
it establishes nothing about the agent the card describes. An unsigned card
therefore permits any party controlling an origin to publish a card asserting
any agent identity, and a relying party that acts on such an assertion -- for
instance, to associate a domain with an agent -- <bcp14>SHOULD</bcp14> require a signature whose
<tt>kid</tt> matches the asserted identity.</t>
      </section>
      <section anchor="version-compat">
        <name>Version Compatibility</name>
        <t>An implementation <bcp14>MAY</bcp14> accept and originate A2A version 0.3 messages in addition
to version 1.0. Where it does:</t>
        <ul spacing="normal">
          <li>
            <t>The version of a received message is determined by the <tt>A2A-Version</tt> header
field. Its absence denotes version 0.3.</t>
          </li>
          <li>
            <t>The version to use towards a given peer is determined by that peer's Agent
Card, per <xref target="agent-card"/>.</t>
          </li>
          <li>
            <t>A part received from a version 0.3 peer carries the media type only within
the <tt>data</tt> object, which <xref target="media-type-placement"/> accommodates.</t>
          </li>
        </ul>
        <t>Deployment order is not symmetric, and this has operational consequence. A
receiver that accepts both versions is compatible with senders of either, but a
sender that has begun transmitting version 1.0 is not compatible with a receiver
that accepts only version 0.3. In a network upgraded incrementally, every
receiver <bcp14>MUST</bcp14> therefore be capable of the newer version before any sender
originates it.</t>
      </section>
      <section anchor="transport-authentication">
        <name>Transport Authentication</name>
        <t>The transport carrying these parts <bcp14>MUST</bcp14> authenticate the calling party using a
mechanism defined by the underlying protocol, such as those enumerated in
<xref target="A2A"/>.</t>
        <t>An unauthenticated transport endpoint permits an unbounded set of parties to
consume the receiver's resources, to enqueue messages, and to attempt session
establishment. End-to-end encryption does not mitigate this: MLS protects
content, not availability. Implementations <bcp14>MUST NOT</bcp14> expose an unauthenticated
message-submission endpoint in production.</t>
      </section>
    </section>
    <section anchor="processing">
      <name>Receiver Processing Rules</name>
      <section anchor="mandatory-ordered-checks">
        <name>Mandatory Ordered Checks</name>
        <t>On receiving a Governed Object, whether from a decrypted MLS application message
or from unencrypted carriage, a Relying Receiver <bcp14>MUST</bcp14> perform the following
checks, and <bcp14>MUST</bcp14> perform them in this order:</t>
        <ol spacing="normal" type="1"><li>
            <t>Structural validation against <xref target="governed-object"/>. Reject on failure.</t>
          </li>
          <li>
            <t>Signature verification per <xref target="governed-object"/>. Reject on failure.</t>
          </li>
          <li>
            <t>Where the object arrived inside an MLS session, confirm that <tt>issuerDid</tt>
equals the Agent Identity in the credential of the MLS member that sent the
message. Reject on mismatch.</t>
          </li>
          <li>
            <t>Expiry evaluation per <xref target="governance"/>. Reject if expired.</t>
          </li>
          <li>
            <t>Replay rejection per <xref target="replay"/>. Reject if already seen.</t>
          </li>
          <li>
            <t>Purpose enforcement per <xref target="purpose-enforcement"/>. Reject if not permitted.</t>
          </li>
        </ol>
        <t>Only after all six checks succeed may the receiver act upon <tt>payload</tt>.</t>
        <t>Check 3 is essential and is easily omitted. Without it, any member of a group
can emit an object bearing another member's <tt>issuerDid</tt>; the signature check
alone does not detect this, because the signature is valid -- it is simply not
made by the party that sent it. Implementations <bcp14>MUST NOT</bcp14> treat a valid signature
as evidence of who transmitted the message.</t>
      </section>
      <section anchor="replay">
        <name>Replay Rejection</name>
        <t>A Relying Receiver <bcp14>MUST</bcp14> reject a Governed Object whose <tt>id</tt> it has previously
accepted from the same <tt>issuerDid</tt>.</t>
        <t>Receivers <bcp14>MUST</bcp14> retain accepted <tt>(issuerDid, id)</tt> pairs for at least the maximum
object lifetime they will accept. Where a receiver applies a maximum accepted
lifetime, retention for that period is sufficient, because an older object is
rejected by check 4 regardless.</t>
        <t>Absent this requirement, a passive observer of unencrypted carriage, or any
member of an MLS group, can re-present a previously valid object. Where objects
convey instructions with side effects -- a payment authorisation, a booking
confirmation, a consent grant -- replay is directly exploitable.</t>
      </section>
      <section anchor="purpose-enforcement">
        <name>Purpose Enforcement</name>
        <t>A Relying Receiver <bcp14>MUST</bcp14> maintain, per processing context, a set of permitted
purpose values, and <bcp14>MUST</bcp14> reject an object whose <tt>governance.purpose</tt> is not in
that set.</t>
        <t>The set <bcp14>MUST</bcp14> be determined by the receiver's own configuration for the context
in which the object is being processed. It <bcp14>MUST NOT</bcp14> be derived from the object
itself, nor from any value under the sender's control.</t>
        <t>Receivers <bcp14>MUST NOT</bcp14> use a payload for a purpose other than the one declared, and
<bcp14>MUST NOT</bcp14> retain it beyond its expiry, save where an independent legal obligation
requires retention.</t>
      </section>
      <section anchor="rejection-behaviour">
        <name>Rejection Behaviour</name>
        <t>A receiver rejecting an object <bcp14>SHOULD</bcp14> emit a diagnostic distinguishable by
cause, for operator use. A receiver <bcp14>SHOULD NOT</bcp14> return to the sender information
that distinguishes between rejection causes beyond what is necessary for
interoperability, because fine-grained rejection reasons assist an attacker in
probing receiver configuration -- in particular in enumerating the permitted
purpose set.</t>
      </section>
    </section>
    <section anchor="regulatory">
      <name>Regulatory Alignment</name>
      <t>This section is informative.</t>
      <t>The constructs specified here correspond to obligations that exist independently
of this document in several jurisdictions. In the European Union, <xref target="GDPR"/>
Article 5(1)(b) requires that personal data be collected for specified purposes
and not further processed incompatibly with them; Article 5(1)(c) requires data
minimisation; and Article 5(1)(e) requires that data be kept no longer than
necessary.</t>
      <t>A Governed Object carries the specified purpose and the retention limit as
signed metadata available to the receiving implementation at the moment of
processing, rather than as prose in an agreement negotiated out of band. The
mandatory receiver-side enforcement of <xref target="purpose-enforcement"/> makes those
constraints operative in code.</t>
      <t>This does not constitute compliance, and this document does not offer legal
advice. It observes only that the mechanism places the relevant facts where an
implementation can act on them, which is a precondition for compliance being
demonstrable rather than merely asserted.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="what-this-specification-provides">
        <name>What This Specification Provides</name>
        <t>Within an MLS session, message content is confidential from the transport and
from any intermediary, with the forward secrecy and post-compromise security
properties of <xref target="RFC9420"/>. Governed Objects are authenticated and integrity
protected by Ed25519 signatures that remain verifiable independently of the
session and after it ends, providing durable evidence of authorship. The
credential binding of <xref target="credential-binding"/> ties MLS membership to the same
key, so that transmission and authorship cannot be separated.</t>
      </section>
      <section anchor="what-it-does-not-provide">
        <name>What It Does Not Provide</name>
        <t>Purpose limitation is not cryptographically enforced. A receiver that has
decrypted a message is in possession of the plaintext and can disregard the
declared purpose and expiry. The mechanism provides a signed, non-repudiable
record of the constraint under which disclosure was made, which converts an
undetectable breach into an attributable one. It does not prevent the breach.
Constructions that would provide stronger enforcement, such as purpose-bound
decryption keys or confidential computing attestation, are out of scope.</t>
        <t>A DID is not an identity. It denotes control of a key. Binding a DID to a legal
or natural person requires a credential presentation layer above this
specification.</t>
        <t>Compromise of an agent's Ed25519 private key compromises both its MLS
membership and its ability to sign Governed Objects, precisely because
<xref target="credential-binding"/> unifies them. Implementations <bcp14>MUST</bcp14> protect this key
accordingly, and <bcp14>SHOULD</bcp14> use non-exportable key storage where the platform
provides it. The unification is a deliberate trade: it eliminates a class of
impersonation attack at the cost of concentrating key-compromise impact.</t>
        <t>MLS provides no protection against traffic analysis, and this specification adds
none. Endpoints, message sizes, and timing are visible to the transport.</t>
      </section>
      <section anchor="availability">
        <name>Availability</name>
        <t>An unauthenticated message-submission endpoint is a denial-of-service vector
regardless of encryption; see <xref target="encapsulation"/>. KeyPackage exhaustion is a
related vector; see <xref target="sessions"/>.</t>
        <t>Implementations that queue messages for offline recipients <bcp14>MUST</bcp14> bound queue size
and <bcp14>MUST</bcp14> apply the checks of <xref target="processing"/> on dequeue rather than only on
enqueue. Deferring validation to dequeue without bounding the queue permits an
attacker to cause unbounded storage consumption with unvalidated input.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>This document uses three media types, currently registered in neither the
standards nor the vendor tree. The deployed reference implementation uses
vendor-tree names.</t>
        <t>If this document advances, the author requests registration of the following in
the standards tree, with the vendor-tree names retained as deprecated aliases:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Proposed</th>
              <th align="left">Deployed</th>
              <th align="left">Purpose</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>application/governed-object+json</tt></td>
              <td align="left">
                <tt>application/vnd.atom.data-object+json</tt></td>
              <td align="left">Governed Object</td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/mls-wire+cbor</tt></td>
              <td align="left">
                <tt>application/vnd.atom.mls-wire+cbor</tt></td>
              <td align="left">MLS wire message</td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/mls-handshake+json</tt></td>
              <td align="left">
                <tt>application/vnd.atom.mls-handshake+json</tt></td>
              <td align="left">Welcome and ratchet tree</td>
            </tr>
          </tbody>
        </table>
        <t>Complete registration templates will be supplied in a subsequent revision.</t>
      </section>
      <section anchor="purpose-value-registry">
        <name>Purpose Value Registry</name>
        <t>This document does not establish a registry of purpose values. Purpose
vocabulary is application domain specific, and premature centralisation would
impede the domain experimentation that ought to inform any eventual registry.</t>
        <t>The author solicits input on whether a registry of a small number of
cross-domain purposes -- for instance a value denoting an authorisation to
effect a payment -- would be of sufficient value to warrant the coordination
cost, given that such values are the ones for which cross-implementation
misinterpretation is most consequential.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publication as an RFC, per <xref target="RFC7942"/>.</t>
      <t>An open source implementation exists under the Apache License 2.0 at
<tt>https://github.com/Qwixl/Atom</tt>, and is deployed in a small public network.</t>
      <t>Implemented and interoperability-tested between two independent processes over
HTTP:</t>
      <ul spacing="normal">
        <li>
          <t>Governed Object construction, canonical serialisation, Ed25519 signing, and
verification, including tamper and expiry rejection.</t>
        </li>
        <li>
          <t><tt>did:key</tt> Ed25519 identity derivation without network resolution.</t>
        </li>
        <li>
          <t>MLS pair and group sessions using ciphersuite <tt>0x0001</tt> via the <tt>ts-mls</tt>
library, including KeyPackage publication and retrieval, Welcome and ratchet
tree delivery, application message encryption and decryption, and group state
persistence.</t>
        </li>
        <li>
          <t>The A2A binding of <xref target="encapsulation"/> at protocol version 1.0, including
extension declaration in the Agent Card and per message, all three part
encodings, and media type placement in both positions per
<xref target="media-type-placement"/>.</t>
        </li>
        <li>
          <t>Version compatibility with A2A version 0.3 per <xref target="version-compat"/>, in both
directions, tested against the published version 0.3 implementation rather
than against a substitute: a version 1.0 sender delivering to a version 0.3
receiver, and a version 0.3 sender delivering to a version 1.0 receiver.</t>
        </li>
        <li>
          <t>Agent Card signing and verification per <xref target="agent-card"/>, with <tt>kid</tt> set to the
agent's <tt>did:key</tt> and the verifying key recovered from that identifier without
network retrieval. The relying check described there -- requiring the signing
identity to match an asserted identity before associating a domain with an
agent -- is applied.</t>
        </li>
        <li>
          <t>Purpose enforcement by receiver-configured allowlist, and expiry rejection.</t>
        </li>
        <li>
          <t>Out-of-band invitation with identity assertion, and abort on identity
mismatch.</t>
        </li>
        <li>
          <t>Transport authentication on the message-submission endpoint
(<xref target="encapsulation"/>): Agent Cards declare an HTTP Bearer scheme
(<tt>atomDidBearer</tt>), and <tt>/a2a/jsonrpc</tt> requires an Atom DID Bearer token
(<tt>Authorization: Bearer atom.&lt;payload&gt;.&lt;sig&gt;</tt>) signed by the caller's
<tt>did:key</tt>, with audience bound to the peer's public base URL.</t>
        </li>
      </ul>
      <t>Previously deferred and now implemented in the reference libraries:</t>
      <ul spacing="normal">
        <li>
          <t>The credential binding key-equality check of <xref target="credential-binding"/>
(<tt>@qwixl/protocol</tt> + <tt>@qwixl/mls-session</tt> KeyPackage generation and admission).</t>
        </li>
        <li>
          <t>Replay rejection (<xref target="replay"/>) via <tt>ReplayGuard</tt> in <tt>@qwixl/protocol</tt>, wired
through the agent backend receive paths.</t>
        </li>
        <li>
          <t>Check 3 of <xref target="processing"/>, confirming <tt>issuerDid</tt> against the sending MLS
member's LeafNode credential (<tt>decrypt</tt> returns <tt>senderDid</tt>;
<tt>verifyDataObject({ expectedMlsSenderDid })</tt>).</t>
        </li>
        <li>
          <t>Validation on dequeue for messages queued to offline recipients
(<xref target="security"/>): <tt>dequeueAsleepMessages</tt> applies <xref target="processing"/> when the
agent wakes; the queue remains size-bounded at enqueue.</t>
        </li>
      </ul>
      <t>The author notes that several of these items were identified by the exercise
of writing this specification, having not been apparent from the working
implementation. This is offered as evidence for the general proposition that
specification and implementation are not redundant activities.</t>
      <t>A further instance arose in preparing this document. The reference
implementation's own documentation described a part using the tagged-union form
produced by its code generator, rather than the JSON actually transmitted. The
discrepancy was invisible to that implementation, which both produced and
consumed the same internal representation, and would have been discovered only
by a second implementation in another language attempting to interoperate from
the description. The requirement in <xref target="protocol-version"/> that members be named
as they appear on the wire, and the encapsulation vectors of <xref target="vectors"/>, exist
to prevent a recurrence.</t>
    </section>
    <section anchor="changes-from-draft-chapman-a2a-mls-00">
      <name>Changes from draft-chapman-a2a-mls-00</name>
      <ul spacing="normal">
        <li>
          <t>Clarified <xref target="encapsulation"/> Extension Declaration: messages carrying only MLS
wire or MLS handshake parts <bcp14>MUST NOT</bcp14> stamp the Governed Object extension URI;
GO-carrying messages <bcp14>SHOULD</bcp14> list it. The Agent Card declaration for the GO
URI uses <tt>required</tt> false.</t>
        </li>
        <li>
          <t>Noted the separately published GO-only A2A extension profile under
<tt>spec/extensions/data-object-v1/</tt> in the reference implementation repository.
This document remains the broader GO+MLS provenance draft.</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="A2A" target="https://a2a-protocol.org/">
          <front>
            <title>Agent2Agent (A2A) Protocol Specification, Version 1.0</title>
            <author>
              <organization>A2A Project (Linux Foundation)</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="DIDKEY" target="https://w3c-ccg.github.io/did-method-key/">
          <front>
            <title>The did:key Method</title>
            <author>
              <organization>W3C Credentials Community Group</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/">
          <front>
            <title>Model Context Protocol</title>
            <author>
              <organization>Anthropic</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GDPR" target="https://eur-lex.europa.eu/eli/reg/2016/679/oj">
          <front>
            <title>Regulation (EU) 2016/679 (General Data Protection Regulation)</title>
            <author>
              <organization>European Union</organization>
            </author>
            <date year="2016"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 865?>

<section anchor="vectors">
      <name>Test Vectors</name>
      <t>Machine-readable test vectors accompany this document, comprising: signed
Governed Objects with known Ed25519 key pairs and their canonical
serialisations; objects with mutated payloads that <bcp14>MUST</bcp14> fail verification;
expired objects; objects whose declared purpose is outside a stated permitted
set; a replayed object pair; and a KeyPackage whose credential identity does not
match its signature key, which <bcp14>MUST</bcp14> be rejected per <xref target="credential-binding"/>.</t>
      <t>A second group of vectors covers the encapsulation of <xref target="encapsulation"/> as
serialised JSON, independently of any Governed Object contained within: parts
carrying the media type in the part member, in the <tt>data</tt> member, and in both;
a part whose two media type members disagree, which <bcp14>MUST</bcp14> be rejected per
<xref target="media-type-placement"/>; and a part bearing no media type in either position.
These vectors exist because the encapsulation is the layer at which two
implementations in different languages first fail to interoperate, and it is the
layer least well served by reading either implementation's source.</t>
      <t>Vectors are published at <tt>https://github.com/Qwixl/Atom</tt> under <tt>spec/vectors/</tt>.
An implementation claiming conformance to this document <bcp14>SHOULD</bcp14> produce the
specified outcome for every vector.</t>
      <t>The vectors were derived from this document's text rather than generated from the
reference implementation, so that the two are capable of disagreeing. On first
execution they did: the reference implementation treated <tt>governance.expiresAt</tt>
as authoritative whenever present and never compared it to the interval implied
by <tt>ttlSeconds</tt>, so a sender could extend a short-lived object's lifetime
indefinitely by supplying an additional distant absolute expiry. Because the
governance block is covered by the signature, the resulting object was valid
under every other check. This is the origin of the requirement in
<xref target="governance"/> that the earlier instant govern, and it is offered as a
concrete instance of why vectors written from specification text are worth the
effort of producing.</t>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This work builds directly on the MLS protocol <xref target="RFC9420"/> and on the A2A
protocol <xref target="A2A"/>. The author thanks the authors and contributors of both.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V96XYbR5Lu/3yKvPIPkxYAbV4pt2doSW1rWrLUomTfPnPm
GAVUAiyrUIWuhRSaVj/LfZb7ZDe+iMilCoDs9sw5V72QBKpyjYz1i8jpdGq6
oivdmb31pMqnXT2lH/ZJtWx2266oK5vRny/7Zlu3bvpt3dNf39VXrqmyauns
qm7s+dpVHV7kX+xz17bZuqjWt0y2WDTuilp+VFerIqdvi6y0e4/l9bLKNjSC
vMlW3XR5mW03WTXN7mfTTdlO794zy6xz67rZnVn3bmvafrEp2pYG93q3pdeK
KndbV6F9Y4ptc2a7pm+7+3fvfnX3vskal53ZC7fsm6Lbmeu6ebtu6n57Zp/G
9+xFaNO8dTt6KD8zdmqfP7vAjwxDxi9Oloh+0K9+ifBFnnWZ3RRVQa1k/sPz
++fGtB2t4M9ZWVc01J1rTbvJmu7nv/d159ozW9VmW5zZ/+zq5cS2ddM1btXS
b7sNfvkvY7K+u6wbjMZY+ldU9NKzmX08s49kofhjWcBn/VtnH2dV4crBt3Wz
pg//wQM7s3+9Lt6V/LnbZEV5Zkt6babL/u9/x7ezZb0xpqqbDb1z5ah3++rP
j+7fu/eV/vrlvS8+1V+/+vT+Xf/p3Qf3/a/3P/PPfvr5p1+e0c5Uq1F7X9Cr
/vEvvvwMv9KSnfHQPFEytdwXmjmhb0/ty6amxapLe7F1y2JVLHlaE/uja7B/
9t7s7i1pImvWrjuzl123bc/u3AFBbfXlGS3JHX4qrC//m2Kt0O39c3T0i1tS
t8+Kqn9n/wzi575OpX36g0Z4/+79z+nPx08f/+XJ34Zjf33pbF7kZ0RRRO/U
TX54YNcPltPlcj1bF91lv5gV9R16a7rhN6b08ocG+tODR/ZR4/RwtfZRvdn0
FVG6/Q5Ujg6fP3o5HNfzOgeB1FXn3nVhPQ+PbYNnl/JoWDwa4YfWruoum3pb
LNHid49fvhr2/sqt+5LX0Z48eXNKC3jv8zuff/GVPfnOVa4hDvEYhwnDotXH
Y/GN08ODdH0zLd27Gf2stxn9uOPK4k7j1nd843fqXz4w4id4z2WVfVNRJ8Pd
vfe5MdMp8YBF2zXZklhMYHjMFqxflZbO5pKYTUtMrdzZZdY0O7thNudau3Dd
tXMVBlBX9abuWzrtq+6a2JPhdlpLjdOrlia8cJdZubL1isinpQ+X6IV+FFva
4gn6Kfscz2bLpm5bPd/CeLLSLJhSm8K1M/vkHbewHgzTdpcF9b/NiIW34IyO
PqH/NVnVbokH2ct6C8bPzAeUBQbMjyyzsuTWiIftJnbRdzaviYnxMlwRj/cz
pv24cqVZJpy/wBujp6u6mjZuS7PJFqWzDh9CsNDUry+zzmZ2SZPpXMMdmqxt
XdO5fMJiSdvSlc6Wl0XliDcTm1k6bo56x6YVWF1a1sv6mhpsiGtsCzD0Tbaz
fSsTYwZOz1+5nctnxrzGCpFk6jfY41ZYDe1jhqGvihJvYXx53tCE6QuiK26q
cc6usy0t/VNaG7eiMdFbRoSmy+2LBZjKGTXUFusKU9mqdOVtm0DEFQ3WWFeS
JA2tJNGnlYWkYeRmsaMGcrekD+jEFC01HL5tuOs4ZEy77ZeXtuauaTS03+4d
MfxqTU2RRMFO7Is2apMmBp7aWkdibEH9XNKHPSicFy0Icfss27nGeClrT0hw
ngaSszc3Kifev5edw5C4gWcXdhm4ly1awz3X6ybbXhYgtp3lZbFdzS+0ND4m
fByZj1uddLcbrDY9aGgOtAme0RA50Yetp4ieV4H+W9E6dK5iuUE90N/Z4HCb
cCQmybT3ZVIyU/r7/Xs0jidJhrsGBG0WBQ9cph/3hiQuUR6pNiBLR6KxmfJu
UINLrD312PSla+OZN3RcygzP/6LsES0qDVmlfhDtTPjWpsjz0hnzEek7XVPn
Pb9Ef38EFkunZGMvOjreG1afHlPj9W7D/IgWbbgaSpG8/kRCGzrC9OuqqTeW
mZ6bpozI0EBozWkFO1le4nU5JkKnOeNBJFxROCAfKZofHSl0lxcrXr7ORO6H
g7MlSa/zzogFtdh0YovddR3+cvQ36aZ0pIuu+IfzD297IuIlMcicKOY1n9Ut
WH/TFU67x8xIchLPdCVW+e990eB0VXKGBsPHs8SBjHKz3NKxxLZnxyQEHQ/M
hxqm9oj10B49GnJIepf4VdtJRxtHjJEZuTmzj+Rlag79B9bd7vNuWovdVo/P
NSkV9vWzC6Y8IxLQs/Q28HTX7L3z4pyetPdndyf2BanJTx9DY6iI5nhlN33X
Z9AiqemZPa926YB3spT4u6i4H3rKQogSa+zcdUaCgHauqd+i34yGzDKKWtOV
bLgPDI5ovYPeaLFLGUsyR6NzjSwyGl3SsSW5m/Pzq74sPeek9lhzobNgf6JX
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
pPovRMDM/D9vuZwMA6EAAA==

-->

</rfc>
