diff --git a/common.js b/common.js index 80f3803..b871b28 100644 --- a/common.js +++ b/common.js @@ -24,6 +24,16 @@ var ccg = { status: "CG-DRAFT", publisher: "Digital Verification Community Group" }, + "HASHLINK": { + title: "Cryptographic Hyperlinks", + date: "December 2018", + href: "https://tools.ietf.org/html/draft-sporny-hashlink-05", + authors: [ + "Manu Sporny" + ], + status: "Internet-Draft", + publisher: "IETF" + }, "DATA-INTEGRITY": { title: "Verifiable Credential Data Integrity 1.0", href: "https://www.w3.org/TR/vc-data-integrity/", diff --git a/index.html b/index.html index 828cb0f..1925f41 100644 --- a/index.html +++ b/index.html @@ -185,6 +185,149 @@
+ The DID URL syntax supports a simple format for parameters + (see section Query + in [[DID-CORE]]). Adding a DID + parameter to a DID URL means that the parameter becomes part of the + identifier for a resource. +
+ ++did:example:123?versionTime=2021-05-10T17:00:00Z ++ +
+did:example:123?service=files&relativeRef=/resume.pdf ++ +
+ Some DID parameters are completely independent of of any specific DID + method and function the same way for all DIDs. Other DID parameters + are not supported by all DID methods. Where optional parameters are + supported, they are expected to operate uniformly across the DID methods + that do support them. The following table provides common DID parameters that + function the same way across all DID methods. Support for all + DID Parameters is OPTIONAL. +
+ ++ Parameter Name + | ++ Description + | +
---|---|
+ service
+ |
+ + Identifies a service from the DID document by service ID. + If present, the associated value MUST be an ASCII string. + | +
+ relativeRef
+ |
+
+ A relative URI reference according to RFC3986 Section 4.2 that identifies a
+ resource at a service endpoint, which is selected from a DID
+ document by using the service parameter.
+ If present, the associated value MUST be an ASCII string and MUST use percent-encoding for
+ certain characters as specified in RFC3986
+ Section 2.1.
+ |
+
+ versionId
+ |
+ + Identifies a specific version of a DID document to be resolved (the + version ID could be sequential, or a UUID, or method-specific). + If present, the associated value MUST be an ASCII string. + | +
+ versionTime
+ |
+
+ Identifies a certain version timestamp of a DID document to be resolved.
+ That is, the DID document that was valid for a DID at a certain
+ time. If present, the associated value
+ MUST be an ASCII string which is a valid XML
+ datetime value, as defined in section 3.3.7 of W3C XML Schema Definition Language
+ (XSD) 1.1 Part 2: Datatypes [[XMLSCHEMA11-2]]. This datetime value MUST be
+ normalized to UTC 00:00:00 and without sub-second decimal precision.
+ For example: 2020-12-20T19:17:47Z .
+ |
+
+ hl
+ |
+ + A resource hash of the DID document to add integrity protection, as + specified in [[?HASHLINK]]. This parameter is non-normative. + If present, the associated value MUST be an + ASCII string. + | +
+ Implementers as well as DID method specification authors might use + additional DID parameters that are not listed here. For maximum + interoperability, it is RECOMMENDED that DID parameters use the DID + Specification Registries mechanism [[?DID-SPEC-REGISTRIES]], to avoid collision + with other uses of the same DID parameter with different semantics. +
+ ++ DID parameters might be used if there is a clear use case where the parameter + needs to be part of a URL that references a resource with more + precision than using the DID alone. It is expected that DID parameters + are not used if the same functionality can be expressed by passing + input metadata to a DID resolver. +
+ ++ The DID resolution and the DID URL dereferencing functions can + be influenced by passing or + to a DID resolver that are + not part of the DID URL. This is comparable to + HTTP, where certain parameters could either be included in an HTTP URL, or + alternatively passed as HTTP headers during the dereferencing process. The + important distinction is that DID parameters that are part of the DID + URL should be used to specify what resource is being + identified, whereas input metadata that is not part of the DID URL + should be used to control how that resource is resolved or + dereferenced. +
+ +If an invalid DID is detected during DID Resolution, the value of the DID Resolution Metadata error property MUST be invalidDid - as defined in section DID Resolution Metadata in [[DID-CORE]]. + as defined in section .
If an invalid DID URL is detected during DID Resolution or DID URL dereferencing, the value of the DID Resolution or DID URL Dereferencing Metadata error property MUST be invalidDidUrl - as defined in section DID URL Dereferencing Metadata in [[DID-CORE]]. + as defined in section .
If during DID Resolution or DID URL dereferencing a DID or DID URL doesn't exist, the value of the DID Resolution or DID URL dereferencing Metadata error property MUST be notFound as - defined in sections DID Resolution Metadata and - DID URL Dereferencing Metadata in [[DID-CORE]]. + defined in sections and + .
If a DID document representation is not supported during DID Resolution or DID URL dereferencing, the value of the DID Resolution Metadata error property MUST be representationNotSupported as - defined in section DID Resolution Metadata in [[DID-CORE]]. + defined in section .
If a DID method is not supported during DID Resolution or DID URL dereferencing, diff --git a/terms.html b/terms.html index 324885a..7cd93b4 100644 --- a/terms.html +++ b/terms.html @@ -262,4 +262,18 @@ There are guarantees about the integrity and correctness of the result to the extent possible under the applicable DID method. See Section . +