mirror of
https://codeberg.org/fediverse/fep.git
synced 2026-08-08 13:35:51 +00:00
Deploying from 926adb3b2d [SKIP CI]
This commit is contained in:
+8
-4
@@ -6,7 +6,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
||||
<meta name="description" content="This proposal describes how ActivityPub servers and clients could create self-authenticating activities and objects. HTTP signatures are often used for authentication during server-to-server interactions. However, this ties authentication to activity delivery, and limits the flexibility of the protocol. Integrity proofs are sets of attributes that represent digital signatures and parameters required to verify them. These proofs can be added to any activity or object, allowing recipients to verify the identity of the actor and integrity of the data. That decouples authentication from the transport, and enables various protocol improvements such as activity relaying, embedded objects and client-side signing.">
|
||||
<meta name="description" content="This proposal describes how ActivityPub servers and clients could create self-authenticating activities and objects. HTTP signatures are often used for authentication during server-to-server interactions. However, this ties authentication to activity delivery, and limits the flexibility of the protocol. Integrity proofs are sets of attributes that represent digital signatures and parameters required to verify them. These proofs can be added to any activity or object, allowing recipients to verify the identity of the actor and integrity of the data. That decouples authentication from the transport, and enables various protocol improvements such as offline verification and client-side signing.">
|
||||
|
||||
|
||||
|
||||
@@ -734,7 +734,7 @@
|
||||
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h2>
|
||||
<p>This proposal describes how <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> servers and clients could create self-authenticating activities and objects.</p>
|
||||
<p>HTTP signatures are often used for authentication during server-to-server interactions. However, this ties authentication to activity delivery, and limits the flexibility of the protocol.</p>
|
||||
<p>Integrity proofs are sets of attributes that represent digital signatures and parameters required to verify them. These proofs can be added to any activity or object, allowing recipients to verify the identity of the actor and integrity of the data. That decouples authentication from the transport, and enables various protocol improvements such as activity relaying, embedded objects and client-side signing.</p>
|
||||
<p>Integrity proofs are sets of attributes that represent digital signatures and parameters required to verify them. These proofs can be added to any activity or object, allowing recipients to verify the identity of the actor and integrity of the data. That decouples authentication from the transport, and enables various protocol improvements such as offline verification and client-side signing.</p>
|
||||
<h2 id="history">History<a class="headerlink" href="#history" title="Permanent link">¶</a></h2>
|
||||
<p>Mastodon supports Linked Data signatures <a href="https://github.com/mastodon/mastodon/pull/4687">since 2017</a>, and a number of other platforms added support for them later. These signatures are similar to integrity proofs, but are based on outdated <a href="https://github.com/w3c-ccg/ld-signatures/">Linked Data Signatures 1.0</a> specification, which has been superseded by other standards.</p>
|
||||
<h2 id="requirements">Requirements<a class="headerlink" href="#requirements" title="Permanent link">¶</a></h2>
|
||||
@@ -749,13 +749,16 @@
|
||||
<li><strong>Hashing</strong> is a process that calculates an identifier for the transformed data using a cryptographic hash function.</li>
|
||||
<li><strong>Signature generation</strong> is a process that calculates a value that protects the integrity of the input data from modification.</li>
|
||||
</ul>
|
||||
<p>The resulting proof is added to the original JSON object under the key <code>proof</code>. Objects SHOULD NOT contain more than one integrity proof.</p>
|
||||
<p>The resulting proof is added to the original JSON object under the key <code>proof</code>.</p>
|
||||
<p>The list of attributes used in integrity proof is defined in <em>Data Integrity</em> specification, section <a href="https://www.w3.org/TR/vc-data-integrity/#proofs">2.1 Proofs</a>. The proof type SHOULD be <code>DataIntegrityProof</code>, as specified in section <a href="https://www.w3.org/TR/vc-data-integrity/#dataintegrityproof">3.1 DataIntegrityProof</a>. The value of <code>proofPurpose</code> attribute MUST be <code>assertionMethod</code>.</p>
|
||||
<p>The value of the <code>verificationMethod</code> attribute of the proof can be an HTTP(S) URI or a <a href="https://www.w3.org/TR/did-core/#did-url-syntax">DID URL</a>.</p>
|
||||
<p>The <a href="https://www.w3.org/TR/cid/">controlled identifier document</a> where the verification method is expressed MUST be an actor object or a <a href="https://www.w3.org/TR/did-core/">DID</a> document that is provably associated with an <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> actor (e.g. using a mechanism described in <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/c390/fep-c390.md">FEP-c390</a> or <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/ef61/fep-ef61.md">FEP-ef61</a>). The verification method MUST be associated with the <code>assertionMethod</code> property of the controlled identifier document. If controlled identifier document is an actor object, implementers SHOULD use <code>assertionMethod</code> property as described in <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/521a/fep-521a.md">FEP-521a</a>.</p>
|
||||
<p>Objects identified using <a href="https://en.wikipedia.org/wiki/URI_fragment">fragment identifiers</a> SHOULD NOT contain integrity proofs.</p>
|
||||
<p>Objects SHOULD NOT contain more than one integrity proof.</p>
|
||||
<h3 id="proof-verification">Proof verification<a class="headerlink" href="#proof-verification" title="Permanent link">¶</a></h3>
|
||||
<p>Recipients of an object SHOULD perform proof verification if it contains integrity proofs. Verification process MUST follow the <em>Data Integrity</em> specification, section <a href="https://www.w3.org/TR/vc-data-integrity/#verify-proof">4.4 Verify Proof</a>. It starts with the removal of the <code>proof</code> value from the JSON object. Then verification method is retrieved from the controlled identifier document as described in <em>Controlled Identifiers</em> specification, section <a href="https://www.w3.org/TR/cid/#retrieve-verification-method">3.3 Retrieve Verification Method</a>. Then the object is canonicalized, hashed and signature verification is performed according to the parameters specified in the proof.</p>
|
||||
<p>The subject of the controlled identifier document where the verification method is expressed MUST be the <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/fe34/fep-fe34.md#ownership">owner</a> of the signed object, or a <a href="https://www.w3.org/TR/did-core/">DID</a> that is provably associated with that actor (e.g. using a mechanism described in <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/c390/fep-c390.md">FEP-c390</a> or <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/ef61/fep-ef61.md">FEP-ef61</a>).</p>
|
||||
<p>If a verifier encounters an integrity proof that uses a verification method or cryptosuite that it doesn't support, it SHOULD ignore the proof and try other authentication methods.</p>
|
||||
<p>If both HTTP signature and integrity proof are used, the integrity proof MUST be given precedence over HTTP signature. The HTTP signature MAY be dismissed.</p>
|
||||
<h3 id="algorithms">Algorithms<a class="headerlink" href="#algorithms" title="Permanent link">¶</a></h3>
|
||||
<p>Implementers are expected to pursue broad interoperability when choosing algorithms for integrity proofs.</p>
|
||||
@@ -773,6 +776,7 @@
|
||||
<p>Implementers using integrity proofs as an authentication mechanism are advised to follow the recommendations given in <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/fe34/fep-fe34.md">FEP-fe34: Origin-based security model</a>.</p>
|
||||
<h3 id="privacy-considerations">Privacy considerations<a class="headerlink" href="#privacy-considerations" title="Permanent link">¶</a></h3>
|
||||
<p>If a private object is signed, its authenticity can be proven if it is distributed beyond the intended recipients. This risk can be mitigated by encrypting private content.</p>
|
||||
<p>Integrity proofs can be repudiated by rotating the verification method.</p>
|
||||
<h2 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">¶</a></h2>
|
||||
<h3 id="signed-object">Signed object<a class="headerlink" href="#signed-object" title="Permanent link">¶</a></h3>
|
||||
<div class="highlight"><pre><span></span><code><span class="p">{</span>
|
||||
@@ -889,7 +893,7 @@
|
||||
<li><a href="https://github.com/AmaseCocoa/apsig/blob/af7af0e106132a51356fc92ed034b1152a1caea8/docs/proof.md">apsig</a></li>
|
||||
<li><a href="https://github.com/dimkr/tootik/blob/v0.19.0/FEDERATION.md#data-portability">tootik</a></li>
|
||||
<li>Gush! (<a href="https://codeberg.org/gush/gush/commit/98c04c8d5cb3528b01eaf6949ec76584c9798ccb">commit</a>)</li>
|
||||
<li><a href="https://code.lag.net/robey/squidcity/src/branch/main/FEDERATION.md">squidcity</a> </li>
|
||||
<li><a href="https://code.lag.net/robey/squidcity/src/commit/485299c2306c7c3d359185728e8f9eff08cb9d90/FEDERATION.md#supported-feps">squidcity</a></li>
|
||||
</ul>
|
||||
<h2 id="use-cases">Use cases<a class="headerlink" href="#use-cases" title="Permanent link">¶</a></h2>
|
||||
<ul>
|
||||
|
||||
+69
-61
@@ -555,11 +555,39 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#dereferencing-ap-uris" class="md-nav__link">
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#portable-objects" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
Dereferencing 'ap' URIs
|
||||
Portable objects
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="Portable objects">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#retrieving-objects" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
Retrieving objects
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#authentication-and-authorization" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
Authentication and authorization
|
||||
|
||||
</span>
|
||||
</a>
|
||||
@@ -569,17 +597,6 @@
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#authentication-and-authorization" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
Authentication and authorization
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -630,17 +647,6 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#portable-objects" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
Portable objects
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -922,7 +928,41 @@ scheme authority path query fragment
|
||||
<p>To maintain backward compatibility with existing <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> implementations that rely on an origin-based security model and do not canonicalize IDs before comparison, implementers MUST generate DIDs using the base58-btc alphabet, even though the specification <a href="https://w3c-ccg.github.io/did-key-spec/#did-key-identifier-syntax">allows both base58-btc and base64url</a>. Using both alphabets in practice could prevent such servers from recognizing that a post whose <code>attributedTo</code> value is <code>https://base64url.example/.well-known/apgateway/did:key:u7QGwDY2Tjn93PVFWWq02piP1NE9_XRlg-c8-jhJiDqKBDw/actor</code> belongs to <code>https://base58.example/.well-known/apgateway/did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2/actor</code>.</p>
|
||||
<p>DID documents SHOULD contain Ed25519 public keys represented as verification methods with <code>Multikey</code> type (as defined in the <a href="https://www.w3.org/TR/cid/#Multikey">Controlled Identifiers</a> specification).</p>
|
||||
<p>Any <a href="https://www.w3.org/TR/did-core/#did-url-syntax">DID URL</a> capabilities of a DID method MUST be ignored when working with 'ap' URIs.</p>
|
||||
<h3 id="dereferencing-ap-uris">Dereferencing 'ap' URIs<a class="headerlink" href="#dereferencing-ap-uris" title="Permanent link">¶</a></h3>
|
||||
<h2 id="portable-objects">Portable objects<a class="headerlink" href="#portable-objects" title="Permanent link">¶</a></h2>
|
||||
<p>Example of a portable object:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="p">{</span>
|
||||
<span class="w"> </span><span class="nt">"@context"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||||
<span class="w"> </span><span class="s2">"https://www.w3.org/ns/activitystreams"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="s2">"https://w3id.org/security/data-integrity/v1"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="s2">"https://w3id.org/fep/ef61"</span>
|
||||
<span class="w"> </span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Note"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ap://did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2/objects/dc505858-08ec-4a80-81dd-e6670fd8c55f"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"attributedTo"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ap://did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2/actor?gateways=https%3A%2F%2Fserver1.example,https%3A%2F%2Fserver2.example"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"inReplyTo"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ap://did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK/objects/f66a006b-fe66-4ca6-9a4c-b292e33712ec"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"content"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Hello!"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"attachment"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||||
<span class="w"> </span><span class="p">{</span>
|
||||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Image"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hl:zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"mediaType"</span><span class="p">:</span><span class="w"> </span><span class="s2">"image/png"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"digestMultibase"</span><span class="p">:</span><span class="w"> </span><span class="s2">"zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n"</span>
|
||||
<span class="w"> </span><span class="p">}</span>
|
||||
<span class="w"> </span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="nt">"to"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||||
<span class="w"> </span><span class="s2">"ap://did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK/actor"</span>
|
||||
<span class="w"> </span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="nt">"proof"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DataIntegrityProof"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"cryptosuite"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eddsa-jcs-2022"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"created"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2023-02-24T23:36:38Z"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"verificationMethod"</span><span class="p">:</span><span class="w"> </span><span class="s2">"did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2#z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"proofPurpose"</span><span class="p">:</span><span class="w"> </span><span class="s2">"assertionMethod"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"proofValue"</span><span class="p">:</span><span class="w"> </span><span class="s2">"..."</span>
|
||||
<span class="w"> </span><span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre></div>
|
||||
<h3 id="retrieving-objects">Retrieving objects<a class="headerlink" href="#retrieving-objects" title="Permanent link">¶</a></h3>
|
||||
<p>To dereference an 'ap' URI, the client MUST make HTTP GET request to a gateway endpoint at <a href="https://datatracker.ietf.org/doc/html/rfc8615">well-known</a> location <code>/.well-known/apgateway</code>. The <code>ap://</code> prefix MUST be removed from the URI and the rest of it appended to a gateway URI. The client MUST specify an <code>Accept</code> header with the <code>application/ld+json; profile="https://www.w3.org/ns/activitystreams"</code> media type.</p>
|
||||
<p>Example of a request to a gateway:</p>
|
||||
<div class="highlight"><pre><span></span><code>GET https://social.example/.well-known/apgateway/did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2/path/to/object
|
||||
@@ -931,11 +971,12 @@ scheme authority path query fragment
|
||||
<p>If object identified by 'ap' URI is stored on the server, it MUST return a response with status <code>200 OK</code> containing the requested object. The value of a <code>Content-Type</code> header MUST be <code>application/ld+json; profile="https://www.w3.org/ns/activitystreams"</code>.</p>
|
||||
<p>If object identified by 'ap' URI is not stored on the server, it MUST return <code>404 Not Found</code>.</p>
|
||||
<p>If an object is not public, the server MUST NOT serve it unless the request is signed by an actor who belongs to object's intended audience.</p>
|
||||
<p>When working with portable objects, the server SHOULD treat 'ap' URIs as opaque identifiers (<a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/ae49/fep-ae49.md">semantic routing</a>).</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>This document describes web gateways, which use HTTP transport. However, the data model and authentication mechanism are transport-agnostic and other types of gateways could exist.</p>
|
||||
</div>
|
||||
<h2 id="authentication-and-authorization">Authentication and authorization<a class="headerlink" href="#authentication-and-authorization" title="Permanent link">¶</a></h2>
|
||||
<h3 id="authentication-and-authorization">Authentication and authorization<a class="headerlink" href="#authentication-and-authorization" title="Permanent link">¶</a></h3>
|
||||
<p>Authentication and authorization are performed in accordance with <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/fe34/fep-fe34.md">FEP-fe34</a> origin-based security model, but with two important differences:</p>
|
||||
<ul>
|
||||
<li>Cryptographic origins are used. They are similar to web origins described in <a href="https://www.rfc-editor.org/rfc/rfc6454.html">RFC-6454</a> but computed using a different algorithm.</li>
|
||||
@@ -1006,40 +1047,6 @@ scheme authority path query fragment
|
||||
<h2 id="collections">Collections<a class="headerlink" href="#collections" title="Permanent link">¶</a></h2>
|
||||
<p>Collections identified by 'ap' URIs (including inbox and outbox collections) MAY be served without <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/8b32/fep-8b32.md">FEP-8b32</a> integrity proofs. Consuming implementations MUST NOT process unsecured collections attributed to a portable actor if they were retrieved from a server that is not listed in the <code>gateways</code> array of the actor document.</p>
|
||||
<p>Portable collections can be filtered and paginated in a same way as non-portable collections. A gateway MUST remove the integrity proof when generating a view of a collection created by a <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/ae97/fep-ae97.md">FEP-ae97</a> client.</p>
|
||||
<h2 id="portable-objects">Portable objects<a class="headerlink" href="#portable-objects" title="Permanent link">¶</a></h2>
|
||||
<p>Example:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="p">{</span>
|
||||
<span class="w"> </span><span class="nt">"@context"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||||
<span class="w"> </span><span class="s2">"https://www.w3.org/ns/activitystreams"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="s2">"https://w3id.org/security/data-integrity/v1"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="s2">"https://w3id.org/fep/ef61"</span>
|
||||
<span class="w"> </span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Note"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ap://did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2/objects/dc505858-08ec-4a80-81dd-e6670fd8c55f"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"attributedTo"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ap://did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2/actor?gateways=https%3A%2F%2Fserver1.example,https%3A%2F%2Fserver2.example"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"inReplyTo"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ap://did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK/objects/f66a006b-fe66-4ca6-9a4c-b292e33712ec"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"content"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Hello!"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"attachment"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||||
<span class="w"> </span><span class="p">{</span>
|
||||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Image"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hl:zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"mediaType"</span><span class="p">:</span><span class="w"> </span><span class="s2">"image/png"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"digestMultibase"</span><span class="p">:</span><span class="w"> </span><span class="s2">"zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n"</span>
|
||||
<span class="w"> </span><span class="p">}</span>
|
||||
<span class="w"> </span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="nt">"to"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||||
<span class="w"> </span><span class="s2">"ap://did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK/actor"</span>
|
||||
<span class="w"> </span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="nt">"proof"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DataIntegrityProof"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"cryptosuite"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eddsa-jcs-2022"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"created"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2023-02-24T23:36:38Z"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"verificationMethod"</span><span class="p">:</span><span class="w"> </span><span class="s2">"did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2#z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"proofPurpose"</span><span class="p">:</span><span class="w"> </span><span class="s2">"assertionMethod"</span><span class="p">,</span>
|
||||
<span class="w"> </span><span class="nt">"proofValue"</span><span class="p">:</span><span class="w"> </span><span class="s2">"..."</span>
|
||||
<span class="w"> </span><span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre></div>
|
||||
<h2 id="media">Media<a class="headerlink" href="#media" title="Permanent link">¶</a></h2>
|
||||
<p>Integrity of an external resource is attested with a digest. When a portable object contains a reference to an external resource (such as image), it MUST also contain a <a href="https://w3c.github.io/vc-data-integrity/#resource-integrity"><code>digestMultibase</code></a> property representing the integrity digest of that resource. The digest MUST be computed using the SHA-256 algorithm.</p>
|
||||
<p>The URI of an external resource SHOULD be a <a href="https://datatracker.ietf.org/doc/html/draft-sporny-hashlink-07">hashlink</a>.</p>
|
||||
@@ -1115,6 +1122,7 @@ scheme authority path query fragment
|
||||
<li>silverpill, <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/ae97/fep-ae97.md">FEP-ae97: Client-side activity signing</a>, 2023</li>
|
||||
<li>silverpill, <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/fe34/fep-fe34.md">FEP-fe34: Origin-based security model</a>, 2024</li>
|
||||
<li>A. Barth, <a href="https://www.rfc-editor.org/rfc/rfc6454.html">The Web Origin Concept</a>, 2011</li>
|
||||
<li>Steve Bate, <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/ae49/fep-ae49.md">FEP-ae49: Semantic Routing for ActivityPub</a>, 2026</li>
|
||||
<li>silverpill, <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/2277/fep-2277.md">FEP-2277: ActivityPub core types</a>, 2025</li>
|
||||
<li>M. Sporny, L. Rosenthol, <a href="https://datatracker.ietf.org/doc/html/draft-sporny-hashlink-07">Cryptographic Hyperlinks</a>, 2021</li>
|
||||
<li>silverpill, <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/521a/fep-521a.md">FEP-521a: Representing actor's public keys</a>, 2023</li>
|
||||
|
||||
File diff suppressed because one or more lines are too long
+170
-170
@@ -2,682 +2,682 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/draft/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/final/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/withdrawn/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0151/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0391/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0391/contextProof/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0391/inReplyToProof/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0391/relationshipProof/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/03c1/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/044f/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0499/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0499/multibox/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/07d7/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0837/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/0ea0/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1042/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/11dd/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1311/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1580/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/171b/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1970/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1985/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1985/ForwardChronological/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1985/OrderingClass/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1985/ReverseChronological/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1985/orderType/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/19b3/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1a11/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/1b12/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/2100/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/2277/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/22b6/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/2677/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/268d/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/2931/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/2c59/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/2e40/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/2e40/namespace/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/3264/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/34c1/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/34ec/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/35b7/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/37f2/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/3ab2/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/3b86/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/400e/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/4adb/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/4ccd/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/4f05/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/521a/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/521a/fep-521a-test-case/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/5624/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/5711/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/5bf0/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/5e53/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/5feb/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/612d/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/61cf/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/6481/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/6606/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/67ff/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/6fcd/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/73cd/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/7458/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/7502/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/7628/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/76ea/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/7888/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/7952/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/7b29/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/7d8c/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/82f6/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/844e/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/888d/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/888d/SomeType/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/888d/exampleA/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/888d/exampleB/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/888d/exampleC/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8967/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/AttendeesCollection/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventCancelled/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventMovedOnline/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventPostponed/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventRescheduled/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventScheduled/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventStatusType/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventTentative/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/OrganizersCollection/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/attendees/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/category/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/displayEndTime/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/eventStatus/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/externalParticipationUrl/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/isBannerImage/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/joinMode/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/organizers/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/previousStartTime/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/requiredJoinVisibility/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/timezone/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8a8e/upcomingEvents/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8b32/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8c3f/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/8fcf/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/9091/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/9098/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/96ff/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/9967/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/9f9f/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/9fde/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/a070/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/a1d1/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/a427/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/a4ed/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/a5c5/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/a974/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/ae0c/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/ae49/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/ae97/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/b06c/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/b2b8/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/bad1/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c07e/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c0e0/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c118/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c16b/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c180/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c195/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c390/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c4ad/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c551/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c551/tests/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c5a1/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c648/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c7d3/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c81b/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/c893/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/cb76/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/cd47/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/d36d/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/d556/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/d767/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/d8c2/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/d8c8/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/d8c8/implementation/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/d9ad/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/db0e/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/db70/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/dc88/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/dd4b/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/e229/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/e232/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/e3e9/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/e965/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/e965/fep-e965-test-case/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/eb22/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/eb48/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/ee3a/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/ef61/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/efda/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/f011/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/f06f/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/f15d/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/f1d5/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/f228/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/fb2a/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/fc48/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/fe34/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://helge.codeberg.page/fep/fep/fffd/</loc>
|
||||
<lastmod>2026-04-25</lastmod>
|
||||
<lastmod>2026-04-28</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
Binary file not shown.
Reference in New Issue
Block a user