From 000f67befd5fab71202e729a0615263901e0b5cb Mon Sep 17 00:00:00 2001 From: Markus Sabadello Date: Thu, 12 Dec 2024 23:16:38 +0900 Subject: [PATCH 1/5] Add details to results of the dereferencing algorithm. --- index.html | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 476984e..7ae5b35 100644 --- a/index.html +++ b/index.html @@ -1016,13 +1016,22 @@

Dereferencing the Resource

  • contentStream: null
  • contentMetadata: «[ ]»
  • +
  • Obtain the DID document for the input DID by executing the DID resolution algorithm as defined in . All DID parameters of the input DID URL MUST be passed as resolution options to the - DID Resolution algorithm. If the input DID does not exist, return a null result. - Otherwise, the result is called the resolved DID document.
  • + DID Resolution algorithm. If the input DID does not exist, the DID URL dereferencer + MUST return the following result: + +
      +
    1. dereferencingMetadata: «[ "error" → "notFound" ]»
    2. +
    3. contentStream: null
    4. +
    5. contentMetadata: «[ ]»
    6. +
    + + Otherwise, the result is called the resolved DID document.
  • If present, separate the DID fragment from the input DID URL and continue @@ -1030,8 +1039,13 @@

    Dereferencing the Resource

  • If the input DID URL contains no DID path and no DID query:
    did:example:1234
    + The DID URL dereferencer MUST return the resolved DID document and + resolved as follows: +
      -
    1. Return the resolved DID document.
    2. +
    3. dereferencingMetadata: «[ derefencingMetadata ]»
    4. +
    5. contentStream: resolved didDocumentStream
    6. +
    7. contentMetadata: «[ resolved didDocumentMetadata ]»
  • From b24073f3fa48180915b38e5a610b2cf2bd84b959 Mon Sep 17 00:00:00 2001 From: Markus Sabadello Date: Fri, 13 Dec 2024 00:39:08 +0900 Subject: [PATCH 2/5] Fix small markup bug. --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 7ae5b35..f9dc9a4 100644 --- a/index.html +++ b/index.html @@ -1040,7 +1040,7 @@

    Dereferencing the Resource

  • If the input DID URL contains no DID path and no DID query:
    did:example:1234
    The DID URL dereferencer MUST return the resolved DID document and - resolved as follows: + resolved as follows:
    1. dereferencingMetadata: «[ derefencingMetadata ]»
    2. From 7f5c23b3f31d030aff008820f52233c9666acd15 Mon Sep 17 00:00:00 2001 From: Markus Sabadello Date: Fri, 13 Dec 2024 03:38:47 +0900 Subject: [PATCH 3/5] Update index.html Co-authored-by: Joe Andrieu --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index f9dc9a4..145dcc0 100644 --- a/index.html +++ b/index.html @@ -1022,7 +1022,7 @@

      Dereferencing the Resource

      DID resolution algorithm as defined in . All DID parameters of the input DID URL MUST be passed as resolution options to the - DID Resolution algorithm. If the input DID does not exist, the DID URL dereferencer + DID Resolution algorithm. If the input DID does not exist in the VDR, the DID URL dereferencer MUST return the following result:
        From d76e0ad6ffde44c002cdefbd6cbb5948e2d41b14 Mon Sep 17 00:00:00 2001 From: Markus Sabadello Date: Thu, 9 Jan 2025 14:56:33 +0100 Subject: [PATCH 4/5] Add additional details to the dereferencing algorithm. --- index.html | 56 +++++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/index.html b/index.html index 145dcc0..3c3c15a 100644 --- a/index.html +++ b/index.html @@ -690,7 +690,7 @@

        Algorithm

        DID Syntax. If not, the DID resolver MUST return the following result:
          -
        1. didResolutionMetadata: «[ "error" → "invalidDid" ]»
        2. +
        3. didResolutionMetadata: «[ "error" → "invalidDid", ... ]»
        4. didDocument: null
        5. didDocumentMetadata: «[ ]»
        @@ -698,7 +698,7 @@

        Algorithm

      1. Determine whether the DID method of the input DID is supported by the DID resolver that implements this algorithm. If not, the DID resolver MUST return the following result:
          -
        1. didResolutionMetadata: «[ "error" → "methodNotSupported" ]»
        2. +
        3. didResolutionMetadata: «[ "error" → "methodNotSupported", ... ]»
        4. didDocument: null
        5. didDocumentMetadata: «[ ]»
        @@ -713,26 +713,31 @@

        Algorithm

        input DID method.
      2. If the input DID does not exist, return the following result:
          -
        1. didResolutionMetadata: «[ "error" → "notFound" ]»
        2. +
        3. didResolutionMetadata: «[ "error" → "notFound", ... ]»
        4. didDocument: null
        5. didDocumentMetadata: «[ ]»
      3. If the input DID has been deactivated, return the following result:
          -
        1. didResolutionMetadata: «[ ]»
        2. +
        3. didResolutionMetadata: «[ ... ]»
        4. didDocument: null
        5. -
        6. didDocumentMetadata: «[ "deactivated" → true ]»
        7. +
        8. didDocumentMetadata: «[ "deactivated" → true, ... ]»
      4. -
      5. The result of the Read operation - is called the output DID document.
      6. +
      7. Otherwise, the result of the Read operation + is called the output DID document. This result MUST be represented in a + conformant representation that + corresponds to the accept resolution option.
      8. +
      9. Return the following result: +
          +
        1. didResolutionMetadata: «[ ... ]»
        2. +
        3. didDocument: output DID document
        4. +
        5. didDocumentMetadata: «[ "contentType" → output DID document media type, ... ]»
        6. +
        +
      -
    3. Validate that the output DID document conforms to a - conformant representation of the DID document - data model. If not, - the DID resolver MUST raise an error.

    There is discussion how a DID that has been @@ -1010,45 +1015,38 @@

    Dereferencing the Resource

  • Validate that the input DID URL conforms to the `did-url` rule of the DID URL Syntax. If not, the DID URL dereferencer MUST return the following result: -
    1. dereferencingMetadata: «[ "error" → "invalidDidUrl" ]»
    2. contentStream: null
    3. contentMetadata: «[ ]»
  • -
  • Obtain the DID document for the input DID by executing the DID resolution algorithm as defined in . All DID parameters of the input DID URL MUST be passed as resolution options to the - DID Resolution algorithm. If the input DID does not exist in the VDR, the DID URL dereferencer + DID Resolution algorithm.
  • +
  • If the input DID does not exist in the VDR, the DID URL dereferencer MUST return the following result: -
      -
    1. dereferencingMetadata: «[ "error" → "notFound" ]»
    2. +
    3. dereferencingMetadata: «[ "error" → "notFound", ... ]»
    4. contentStream: null
    5. contentMetadata: «[ ]»
    - - Otherwise, the result is called the resolved DID document.
  • - +
  • Otherwise, the didDocument result of the DID resolution algorithm is called the resolved DID document.
  • If present, separate the DID fragment from the input DID URL and continue with the adjusted input DID URL.
  • -
  • If the input DID URL contains no DID path and no DID query:
    did:example:1234
    The DID URL dereferencer MUST return the resolved DID document and resolved as follows: -
      -
    1. dereferencingMetadata: «[ derefencingMetadata ]»
    2. -
    3. contentStream: resolved didDocumentStream
    4. -
    5. contentMetadata: «[ resolved didDocumentMetadata ]»
    6. +
    7. dereferencingMetadata: «[ ... ]»
    8. +
    9. contentStream: resolved DID document
    10. +
    11. contentMetadata: «[ resolved DID document metadata
  • -
  • Otherwise, if the input DID URL contains the DID parameter service and optionally the relativeRef DID parameter: @@ -1067,7 +1065,13 @@

    Dereferencing the Resource

  • The result is called the output service endpoint URL.
  • -
  • Return the output service endpoint URL.
  • +
  • Return the following result: +
      +
    1. dereferencingMetadata: «[ ... ]»
    2. +
    3. content: output service endpoint URL
    4. +
    5. contentMetadata: «[ "contentType" → "text/uri-list", ... ]»
    6. +
    +
  • Otherwise, if the input DID URL contains a DID path and/or DID query: From 8f64678e333f3abb7d6bdc2dc12d0f97eb9bcfa7 Mon Sep 17 00:00:00 2001 From: Markus Sabadello Date: Thu, 9 Jan 2025 15:00:48 +0100 Subject: [PATCH 5/5] Explain how path and/or query can be dereferenced. --- index.html | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 3c3c15a..dad5c18 100644 --- a/index.html +++ b/index.html @@ -1078,12 +1078,22 @@

    Dereferencing the Resource

    did:example:1234/custom/path?customquery
    1. The applicable DID method MAY specify how to dereference - the input DID URL.
    2. + the DID path and/or DID query of the input DID URL. +
      did:example:1234/resources/1234
      + +
    3. An extension specification MAY specify how to dereference + the DID path of the input DID URL. +
      did:example:1234/whois
      +
    4. +
    5. An extension specification MAY specify how to dereference + the DID query of the input DID URL. +
      did:example:1234?transformKey=JsonWebKey
      +
    6. The client MAY be able to dereference the input DID URL - in an application-specific way.
    7. + in an application-specific way.
  • -
  • If neither this algorithm, nor the applicable DID method, nor the client +
  • If neither this algorithm, nor the applicable DID method, nor an extension, nor the client is able to dereference the input DID URL, return the following result:
    1. dereferencingMetadata: «[ "error" → "notFound" ]»