diff --git a/common.js b/common.js index d275283a..dcdf5a80 100644 --- a/common.js +++ b/common.js @@ -41,6 +41,16 @@ var ccg = { status: "FPWD", publisher: "Verifiable Claims Working Group" }, + "DID-CORE-REGISTRIES": { + title: "Decentralized Identifier Core Registries", + href: "https://w3c.github.io/did-core-registries/", + authors: [ + "Orie Steele", + "Manu Sporny" + ], + status: "ED", + publisher: "Decentralized Identifier Working Group" + }, "DID-USE-CASES": { title: "Decentralized Identifier Use Cases", href: "https://w3c.github.io/did-use-cases/", diff --git a/index.html b/index.html index 53d42641..90e2c2c1 100644 --- a/index.html +++ b/index.html @@ -652,6 +652,10 @@

DID Resolvers

DID document (and associated metadata) as output in a process called DID resolution.

+ + +
+

DID Dereferencers

The inputs and outputs of the DID resolution process are defined in . Additional considerations for implementing a @@ -735,6 +739,19 @@

Security and Privacy

when consuming non-conforming DIDs or DID Documents.

+

+A conforming DID resolver MUST be capable of performing the DID +resolution process, as described in , for at +least one DID method and MUST return a conforming DID document in +at least one conformant representation. +

+ +

+A conforming DID URL dereferencer MUST implement the DID URL +dereferencing process, as described in +for at least one conformant representation. +

+
@@ -986,7 +1003,7 @@

Generic DID URL Parameters

Additional considerations for processing these parameters are discussed in -[?DID-RESOLUTION]. +[[?DID-RESOLUTION]].

@@ -2694,12 +2711,196 @@

DID Resolution

+ +

+The DID resolution process takes a DID and resolution options as +input, and produces a DID document and resolution metadata as output. The +process utilizes the "Read" operation of the applicable DID method, as +described in . The DID method-specific details +of how this process is accomplished is outside the scope of this specification. +

+ +
+

+Generic DID Resolution Algorithm +

+ +

+The generic DID resolution algorithm takes a conforming DID +(did) and resolution options (resolutionOptions) as input and +produces a conforming DID Document (didDocument), DID Document +Metadata (didDocumentMetadata), and resolution metadata +(resolutionMetadata) as output. +

+ +

+Any errors encountered during the execution of this algorithm MUST be expressed +using the error property in resolutionMetadata. +

+ +

+When resolving a DID to a DID document, the following algorithm, +or one producing an equivalent result, MUST be used: +

+ +
    +
  1. +Ensure that the did conforms to . +If the did does not conform, an invalid did error MUST be +returned. +
  2. +
  3. +Ensure that the each value in resolutionOptions conforms to . If an option does not conform, an invalid +resolution option error MUST be returned. +
  4. +
  5. +Execute the DID method-specific "Read" operation, from the concrete +binding, as described in using the +did and resolutionOptions as input. If the operation +operation is unsuccessful, a resolution failure error MUST be +returned. +
  6. +
  7. +If successful, store the resulting DID document +(didDocument), the DID Document Metadata +(didDocumentMetadata), and the resolution metadata +(resolutionMetadata). +
  8. +
  9. +Ensure that didDocument is a conforming DID document. If the +didDocument does not conform, an invalid did document +error MUST be returned. +
  10. +
  11. +Ensure that the each value in didDocumentMetadata conforms to +. If an option does not conform, an +invalid did document metadata error MUST be returned. +
  12. +
  13. +Ensure that the each value in didResolutionMetadata conforms to . If an option does not conform, an +invalid did resolution metadata error MUST be returned. +
  14. +
  15. +Return the conforming DID document (didDocument), the DID +Document Metadata (didDocumentMetadata), and the resolution metadata +(resolutionMetadata). +
  16. +
+
+ +
+

+Resolution Options +

+

+This specification defines the following properties that can be passed as +resolution options into : +

+ +
+
accept
+
+The MIME type of the preferred representation of the DID document. The +DID resolver MUST use this value to generate the representation of the +returned DID document if such a representation is supported and +available. If the MIME type representation is not available, a DID +resolver SHOULD produce an alternate representation. +
+
+ +

+Additional properties that can be passed to the DID Resolution algorithm +are defined in the DID Core Registries [[?DID-CORE-REGISTRIES]]. +

+
+ +
+

+DID Document Metadata +

+ +

+When a DID document is returned as a part of , the corresponding metadata +associated with the DID document is also returned. This metadata +contains information about the input DID and the returned DID +document. The metadata typically does not change between invocations of the +. This section defines common +DID Document Metadata properties: +

+ +

+The contents of the DID document metadata still needs to be defined within this document. +

+ +

+Additional DID Document Metadata properties can be found in +[[DID-CORE-REGISTRIES]]. +

+
+ +
+

+Resolution Metadata +

+ +

+DID resolution metadata is returned as a part of the . This metadata contains +information about the results of the resolution process and typically changes +between invocations of the . +

+ +

+This specification defines the following properties that can be passed as +resolution options into the : +

+ +
+
content-type
+
+The MIME type of the returned conforming DID document. The DID +resolver MUST provide this value when a DID document is returned. The +value MUST be used when determining how to parse and process the representation +returned by the . +
+ +
error
+
+The error code from the resolution process. The DID resolver MUST supply +this value when there is an error. Additional values for this field are defined +in the DID Core Registry [[?DID-CORE-REGISTRIES]]. This specification defines the +following error values: + +
+
invalid-did
+
+The DID supplied to the DID resolution function does not conform +to valid syntax. (See .) +
+ +
unauthorized
+
+The caller is not authorized to resolve this DID with this DID +resolver.
+
+
+
+ +

+Additional Resolution Metadata properties can be found in +[[DID-CORE-REGISTRIES]]. +

+

DID URL Dereferencing

+