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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user