mirror of
https://codeberg.org/fediverse/fep.git
synced 2026-08-05 11:46:04 +00:00
FEP-521a: Update proposal
- Set the normative definition of Multikey to the Data Integrity spec - Fix link to publicKey definition. - Add detailed description of Multikey object. - Add links to verification relationships. - Fix JSON-LD context in example.
This commit is contained in:
+11
-8
@@ -13,9 +13,9 @@ This proposal describes how to represent public keys associated with [ActivityPu
|
||||
|
||||
## Rationale
|
||||
|
||||
Historically, Fediverse services used [publicKey](https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.html#publicKey) property to represent actor's public key. Implementations usually allow only one key per actor, therefore a new approach is needed to support use cases where additional keys are required.
|
||||
Historically, Fediverse services used [publicKey](https://w3c-ccg.github.io/security-vocab/#publicKey) property to represent actor's public key. Implementations usually allow only one key per actor, therefore a new approach is needed to support use cases where additional keys are required.
|
||||
|
||||
Furthermore, `publicKey` property is marked as deprecated in the latest version of [Security Vocabulary](https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.html).
|
||||
Furthermore, `publicKey` property was removed from the latest version of [Security Vocabulary](https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.html).
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -23,9 +23,12 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
|
||||
|
||||
## Multikey
|
||||
|
||||
Actor's key MUST be represented as an object with `Multikey` type and properties `id`, `controller` and `publicKeyMultibase`, as defined in section **2.1.1 Multikey** of [EdDSA Cryptosuite v2022](https://w3c.github.io/vc-di-eddsa/#multikey) specification.
|
||||
Actor's public key MUST be represented as an object with `Multikey` type, as defined in section **2.3.1.2 Multikey** of [Data Integrity](https://www.w3.org/TR/vc-data-integrity/#multikey) specification. This object MUST have the following properties:
|
||||
|
||||
The value of `controller` property MUST match actor ID.
|
||||
- `id`: the unique global identifier of the public key.
|
||||
- `type`: the value of this property MUST contain the string `Multikey`.
|
||||
- `controller`: the value of this property MUST match actor ID.
|
||||
- `publicKeyMultibase`: a [Multibase](https://www.w3.org/TR/vc-data-integrity/#multibase-0) encoded value of the key. Implementations MUST use `base-58-btc` alphabet.
|
||||
|
||||
### Key types
|
||||
|
||||
@@ -33,9 +36,9 @@ Implementers can use cryptographic keys of any type for which [Multicodec](https
|
||||
|
||||
### Key purposes
|
||||
|
||||
If the key is intended to be used for signing ActivityPub objects, it MUST be added to the `assertionMethod` property of actor object.
|
||||
If the key is intended to be used for signing ActivityPub objects, it MUST be added to the [`assertionMethod`](https://www.w3.org/TR/vc-data-integrity/#assertion) array of the actor object.
|
||||
|
||||
If the key is intended to be used for authentication, it MUST be added to the `authentication` property of actor object.
|
||||
If the key is intended to be used for authentication, it MUST be added to the [`authentication`](https://www.w3.org/TR/vc-data-integrity/#authentication) array of the actor object.
|
||||
|
||||
Other use cases are currently out of scope of this proposal.
|
||||
|
||||
@@ -45,7 +48,7 @@ Other use cases are currently out of scope of this proposal.
|
||||
{
|
||||
"@context": [
|
||||
"https://www.w3.org/ns/activitystreams",
|
||||
"https://w3id.org/security/data-integrity/v1",
|
||||
"https://www.w3.org/ns/did/v1",
|
||||
"https://w3id.org/security/multikey/v1"
|
||||
],
|
||||
"type": "Person",
|
||||
@@ -74,7 +77,7 @@ This proposal describes how to represent actor's public keys. The corresponding
|
||||
- [ActivityPub] Christine Lemmer Webber, Jessica Tallon, [ActivityPub](https://www.w3.org/TR/activitypub/), 2018
|
||||
- [Security Vocabulary] Ivan Herman, Manu Sporny, Dave Longley [Security Vocabulary](https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.html), 2023
|
||||
- [RFC-2119] S. Bradner, [Key words for use in RFCs to Indicate Requirement Levels](https://tools.ietf.org/html/rfc2119.html), 1997
|
||||
- [EdDSA Cryptosuite v2022] Dave Longley, Manu Sporny, [EdDSA Cryptosuite v2022](https://w3c.github.io/vc-di-eddsa/), 2023
|
||||
- [Data Integrity] Dave Longley, Manu Sporny, [Verifiable Credential Data Integrity 1.0](https://www.w3.org/TR/vc-data-integrity/), 2023
|
||||
- [Multicodec] Protocol Labs, [Multicodec](https://github.com/multiformats/multicodec/)
|
||||
|
||||
## Copyright
|
||||
|
||||
Reference in New Issue
Block a user