1
0
mirror of https://codeberg.org/fediverse/fep.git synced 2026-08-05 19:55:46 +00:00

FEP-521a: Update proposal (#606)

- Key identifiers MUST be URIs.
- Actor MAY have no keys.
- Updated RFC-2119 link.

Reviewed-on: https://codeberg.org/fediverse/fep/pulls/606
Co-authored-by: silverpill <silverpill@firemail.cc>
Co-committed-by: silverpill <silverpill@firemail.cc>
This commit is contained in:
silverpill
2025-05-27 23:31:56 +02:00
committed by silverpill
parent 3fa59da52a
commit 7bc97c995b
+8 -2
View File
@@ -36,6 +36,8 @@ The `Multikey` object MAY contain the `expires` property indicating the expirati
### Key IDs
Key identifiers MUST be absolute [URIs][RFC-3986].
Identifiers SHOULD be generated by appending a fragment identifier to the actor ID. That allows consumers to retrieve both actor object and associated keys with a single HTTP request. If actor's keys are identified using fragment identifiers, each key MUST have a unique fragment identifier.
Resolution of a URI containing a fragment identifier is performed using the algorithm specified in section *3.4 Fragment Resolution* of [Controlled Identifiers][FragmentResolution] specification.
@@ -46,7 +48,7 @@ Implementers can use cryptographic keys of any type for which a [Multicodec] pre
## Adding keys to an actor object
`Multikey` objects MUST be added to the actor object, which is considered a controlled identifier document, as described in [Controlled Identifiers][ControlledIdentifiers] specification.
`Multikey` objects are added to the actor object, which is considered a controlled identifier document, as described in [Controlled Identifiers][ControlledIdentifiers] specification.
If the key is intended to be used for signing ActivityPub objects, it MUST be added to the [`assertionMethod`][Assertion] array in the actor object.
@@ -54,6 +56,8 @@ Other use cases are out of scope of this proposal.
Implementations are discouraged from adding any objects to the `assertionMethod` array that do not conform to this specification. Implementations encountering non-conformant entries in the `assertionMethod` array SHOULD ignore them.
An actor MAY have no associated public keys.
### Example
```json
@@ -95,16 +99,18 @@ See [fep-521a.feature](./fep-521a.feature)
- S. Bradner, [Key words for use in RFCs to Indicate Requirement Levels][RFC-2119], 1997
- Dave Longley, Manu Sporny, Markus Sabadello, Drummond Reed, Orie Steele, Christopher Allen, [Controlled Identifiers v1.0][ControlledIdentifiers], 2025
- Protocol Labs, [Multicodec][Multicodec]
- T. Berners-Lee, R. Fielding, L. Masinter, [Uniform Resource Identifier (URI): Generic Syntax][RFC-3986], 2005
[ActivityPub]: https://www.w3.org/TR/activitypub/
[SecurityVocabulary]: https://www.w3.org/2025/credentials/vcdi/vocab/v2/vocabulary.html
[RFC-2119]: https://tools.ietf.org/html/rfc2119.html
[RFC-2119]: https://datatracker.ietf.org/doc/html/rfc2119.html
[ControlledIdentifiers]: https://www.w3.org/TR/cid-1.0/
[Multikey]: https://www.w3.org/TR/cid-1.0/#Multikey
[Multibase]: https://www.w3.org/TR/cid-1.0/#multibase-0
[Assertion]: https://www.w3.org/TR/cid-1.0/#assertion
[FragmentResolution]: https://www.w3.org/TR/cid-1.0/#fragment-resolution
[Multicodec]: https://github.com/multiformats/multicodec/
[RFC-3986]: https://datatracker.ietf.org/doc/html/rfc3986
## Copyright