From 28bfa317c9f941141c1f153e6acdb53eefd06fd1 Mon Sep 17 00:00:00 2001 From: Manu Sporny Date: Sun, 4 Aug 2024 20:52:30 -0400 Subject: [PATCH] Reorder Verifiable Credential section to top. --- index.html | 454 ++++++++++++++++++++++++++--------------------------- 1 file changed, 227 insertions(+), 227 deletions(-) diff --git a/index.html b/index.html index 34f81d3f3..3d8521fb8 100644 --- a/index.html +++ b/index.html @@ -1181,6 +1181,69 @@

Getting Started

+
+

Verifiable Credentials

+ +

+[=Verifiable credentials=] are used to express properties of one or more +[=subjects=] as well as properties of the [=credential=] itself. The following +properties are defined in this specification for a [=verifiable credential=]: +

+ +
+
@context
+
+Defined in Section [[[#contexts]]]. +
+
id
+
+Defined in Section [[[#identifiers]]]. +
+
type
+
+Defined in Section [[[#types]]]. +
+
name
+
+Defined in Section [[[#names-and-descriptions]]]. +
+
description
+
+Defined in Section [[[#names-and-descriptions]]]. +
+
issuer
+
+Defined in Section [[[#issuer]]]. +
+
credentialSubject
+
+Defined in Section [[[#credential-subject]]]. +
+
validFrom
+
+Defined in Section [[[#validity-period]]]. +
+
validUntil
+
+Defined in Section [[[#validity-period]]]. +
+
status
+
+Defined in Section [[[#status]]]. +
+
credentialSchema
+
+Defined in Section [[[#data-schemas]]]. +
+
+ +

+A [=verifiable credential=] can be extended to have additional properties +through the extension mechanism defined in Section [[[#extensibility]]]. +

+ +
+

Contexts

@@ -1730,33 +1793,33 @@

Names and Descriptions

-

Credential Subject

+

Issuer

-A [=verifiable credential=] contains [=claims=] about one or more [=subjects=]. -This specification defines a `credentialSubject` [=property=] for the expression -of [=claims=] about one or more [=subjects=]. +This specification defines a property for expressing the [=issuer=] of +a [=verifiable credential=].

-A [=verifiable credential=] MUST contain a `credentialSubject` [=property=]. +A [=verifiable credential=] MUST have an `issuer` [=property=].

-
credentialSubject
+
issuer
-The value of the `credentialSubject` [=property=] is a set of objects where each -object MUST be the [=subject=] of one or more [=claims=], which MUST be -serialized inside the `credentialSubject` [=property=]. Each object MAY also -contain an `id` [=property=] to identify the [=subject=], as described in -Section [[[#identifiers]]]. +The value of the `issuer` [=property=] MUST be either a +[=URL=], or an object containing an `id` [=property=] +whose value is a [=URL=]; in either case, the issuer selects this +[=URL=] to identify itself in a globally unambiguous +way. It is RECOMMENDED that the [=URL=] be one which, if dereferenced, results +in a controller document, as defined in [[CONTROLLER-DOCUMENT]], about the +[=issuer=] that can be used to [=verify=] the information expressed in the +[=credential=].
-
+        
 {
   "@context": [
     "https://www.w3.org/ns/credentials/v2",
@@ -1764,9 +1827,9 @@ 

Credential Subject

], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], - "issuer": "https://university.example/issuers/565049", - "validFrom": "2010-01-01T00:00:00Z", - "credentialSubject": { + "issuer": "https://university.example/issuers/14", + "validFrom": "2010-01-01T19:23:24Z", + "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", @@ -1777,65 +1840,72 @@

Credential Subject

-It is possible to express information related to multiple [=subjects=] in a -[=verifiable credential=]. The example below specifies two [=subjects=] -who are spouses. Note the use of array notation to associate multiple -[=subjects=] with the `credentialSubject` property. +It is also possible to express additional information about the issuer by +associating an object with the issuer property:

-
+        
 {
   "@context": [
     "https://www.w3.org/ns/credentials/v2",
     "https://www.w3.org/ns/credentials/examples/v2"
   ],
   "id": "http://university.example/credentials/3732",
-  "type": ["VerifiableCredential", "RelationshipCredential"],
-  "issuer": "https://example.com/issuer/123",
-  "validFrom": "2010-01-01T00:00:00Z",
-  "credentialSubject": [{
+  "type": ["VerifiableCredential", "ExampleDegreeCredential"],
+  "issuer": {
+    "id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
+    "name": "Example University"
+  },
+  "validFrom": "2010-01-01T19:23:24Z",
+  "credentialSubject": {
     "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
-    "name": "Jayden Doe",
-    "spouse": "did:example:c276e12ec21ebfeb1f712ebc6f1"
-  }, {
-    "id": "https://subject.example/subject/8675",
-    "name": "Morgan Doe",
-    "spouse": "https://subject.example/subject/7421"
-  }]
+    "degree": {
+      "type": "ExampleBachelorDegree",
+      "name": "Bachelor of Science and Arts"
+    }
+  }
 }
         
+

+The value of the `issuer` [=property=] can also be a JWK (for +example, `"https://example.com/keys/foo.jwk"`) or a [=DID=] (for +example, `"did:example:abfe13f712120431c276e12ecab"`). +

+
-

Issuer

+

Credential Subject

-This specification defines a property for expressing the [=issuer=] of -a [=verifiable credential=]. +A [=verifiable credential=] contains [=claims=] about one or more [=subjects=]. +This specification defines a `credentialSubject` [=property=] for the expression +of [=claims=] about one or more [=subjects=].

-A [=verifiable credential=] MUST have an `issuer` [=property=]. +A [=verifiable credential=] MUST contain a `credentialSubject` [=property=].

-
issuer
+
credentialSubject
-The value of the `issuer` [=property=] MUST be either a -[=URL=], or an object containing an `id` [=property=] -whose value is a [=URL=]; in either case, the issuer selects this -[=URL=] to identify itself in a globally unambiguous -way. It is RECOMMENDED that the [=URL=] be one which, if dereferenced, results -in a controller document, as defined in [[CONTROLLER-DOCUMENT]], about the -[=issuer=] that can be used to [=verify=] the information expressed in the -[=credential=]. +The value of the `credentialSubject` [=property=] is a set of objects where each +object MUST be the [=subject=] of one or more [=claims=], which MUST be +serialized inside the `credentialSubject` [=property=]. Each object MAY also +contain an `id` [=property=] to identify the [=subject=], as described in +Section [[[#identifiers]]].
-
+        
 {
   "@context": [
     "https://www.w3.org/ns/credentials/v2",
@@ -1843,9 +1913,9 @@ 

Issuer

], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], - "issuer": "https://university.example/issuers/14", - "validFrom": "2010-01-01T19:23:24Z", - "credentialSubject": { + "issuer": "https://university.example/issuers/565049", + "validFrom": "2010-01-01T00:00:00Z", + "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", @@ -1856,42 +1926,35 @@

Issuer

-It is also possible to express additional information about the issuer by -associating an object with the issuer property: +It is possible to express information related to multiple [=subjects=] in a +[=verifiable credential=]. The example below specifies two [=subjects=] +who are spouses. Note the use of array notation to associate multiple +[=subjects=] with the `credentialSubject` property.

-
+        
 {
   "@context": [
     "https://www.w3.org/ns/credentials/v2",
     "https://www.w3.org/ns/credentials/examples/v2"
   ],
   "id": "http://university.example/credentials/3732",
-  "type": ["VerifiableCredential", "ExampleDegreeCredential"],
-  "issuer": {
-    "id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
-    "name": "Example University"
-  },
-  "validFrom": "2010-01-01T19:23:24Z",
-  "credentialSubject": {
+  "type": ["VerifiableCredential", "RelationshipCredential"],
+  "issuer": "https://example.com/issuer/123",
+  "validFrom": "2010-01-01T00:00:00Z",
+  "credentialSubject": [{
     "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
-    "degree": {
-      "type": "ExampleBachelorDegree",
-      "name": "Bachelor of Science and Arts"
-    }
-  }
+    "name": "Jayden Doe",
+    "spouse": "did:example:c276e12ec21ebfeb1f712ebc6f1"
+  }, {
+    "id": "https://subject.example/subject/8675",
+    "name": "Morgan Doe",
+    "spouse": "https://subject.example/subject/7421"
+  }]
 }
         
-

-The value of the `issuer` [=property=] can also be a JWK (for -example, `"https://example.com/keys/foo.jwk"`) or a [=DID=] (for -example, `"did:example:abfe13f712120431c276e12ecab"`). -

-
@@ -1972,104 +2035,6 @@

Validity Period

-
-

Securing Mechanisms

- -

-This specification recognizes two classes of -securing mechanisms: -those that use enveloping proofs and those that use embedded proofs. -

- -

-An enveloping proof is one that wraps a serialization -of this data model. One such RECOMMENDED enveloping proof mechanism is defined -in [[[VC-JOSE-COSE]]] [[VC-JOSE-COSE]]. -

- -

-An embedded proof is a mechanism where the proof is -included in the serialization of the data model. One such RECOMMENDED embedded -proof mechanism is defined in [[[VC-DATA-INTEGRITY]]] [[VC-DATA-INTEGRITY]]. -

- -

-These two classes of securing mechanisms are not mutually exclusive. Additional -securing mechanism specifications might also be defined according to the rules -in Section [[[#securing-mechanism-specifications]]]. -

- -
-{
-  "@context": [
-    "https://www.w3.org/ns/credentials/v2",
-    "https://www.w3.org/ns/credentials/examples/v2"
-  ],
-  "id": "http://example.gov/credentials/3732",
-  "type": ["VerifiableCredential", "ExampleDegreeCredential"],
-  "issuer": "did:example:6fb1f712ebe12c27cc26eebfe11",
-  "validFrom": "2010-01-01T19:23:24Z",
-  "credentialSubject": {
-    "id": "https://subject.example/subject/3921",
-    "degree": {
-      "type": "ExampleBachelorDegree",
-      "name": "Bachelor of Science and Arts"
-    }
-  },
-  "proof": {
-    "type": "DataIntegrityProof",
-    "cryptosuite": "eddsa-rdfc-2022",
-    "created": "2021-11-13T18:19:39Z",
-    "verificationMethod": "https://university.example/issuers/14#key-1",
-    "proofPurpose": "assertionMethod",
-    "proofValue": "z58DAdFfa9SkqZMVPxAQp...jQCrfFPP2oumHKtz"
-  }
-}
-        
- -
-eyJhbGciOiJFUzM4NCIsImtpZCI6IkdOV2FBTDJQVlVVMkpJVDg5bTZxMGM3U3ZjNDBTLWJ2UjFTT0
-Q3REZCb1UiLCJ0eXAiOiJ2YytsZCtqc29uK3NkLWp3dCIsImN0eSI6InZjK2xkK2pzb24ifQ
-.
-eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwcz
-ovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6
-Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLT
-AxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiX3NkIjpbIlNFOHp4bmduZTNNbWEwLUNm
-S2dlYW1rNUVqU1NfOXRaNlN5NDdBdTdxRWMiLCJjT3lySEVrSlZwdEtSdURtNkNZVTREajJvRkExd0
-JQRjFHcTJnWEo1NXpzIl19LCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsibmFtZSI6IkJh
-Y2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMiLCJfc2QiOlsibVNfSVBMa0JHcTIxbVA3Z0VRaHhOck
-E0ZXNMc1ZKQ1E5QUpZNDFLLVRQSSJdfSwiX3NkIjpbIlhTSG9iU05Md01PVl9QNkhQMHNvMnZ1clNy
-VXZ3UURYREJHQWtyTXk3TjgiXX0sIl9zZCI6WyJQNE5qWHFXa2JOc1NfRzdvdmlLdm1NOG0yckhDTm
-5XVVV2SXZBbW9jb2RZIiwieFNvSHBKUXlCNGV1dmg4SkFJdDFCd1pjNFVEOHY5S3ZOTmVLMk9OSjFC
-QSJdLCJfc2RfYWxnIjoic2hhLTI1NiIsImlzcyI6Imh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2
-lzc3VlcnMvNTY1MDQ5IiwiaWF0IjoxNzAzNjI1OTAxLCJleHAiOjE3MzUyNDgzMDEsImNuZiI6eyJq
-d2siOnsia3R5IjoiRUMiLCJjcnYiOiJQLTM4NCIsImFsZyI6IkVTMzg0IiwieCI6Inl1Zlo1SFUzcU
-NfOTRMbkI3Zklzd0hmT0swQlJra0Z5bzVhd1QyX21ld0tJWUpLMVNfR0QySVB3UjRYUTZpdFEiLCJ5
-IjoiRmEtV2pOd2NLQ1RWWHVDU2tCY3RkdHJOYzh6bXdBTTZWOWxudmxxd1QyQnRlQ0ZHNmR6ZDJoMF
-VjeXluTDg0dCJ9fX0
-.
-M7BFJB9LEV_xEylSJpP00fd_4WjrOlXshh0dUv3QgOzw2MEGIfSfi9PoCkHJH7TI0InsqkD6XZVz38
-MpeDKekgBW-RoDdJmxnifYOEJhKpJ5EN9PvA007UPi9QCaiEzX
-~
-WyJFX3F2V09NWVQ1Z3JNTkprOHNXN3BBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbG
-UvY3JlZGVudGlhbHMvMTg3MiJd
-~
-WyJTSEc4WnpfRDVRbFMwU0ZrZFUzNXlRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIi
-wgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d
-~
-WyJqZzJLRno5bTFVaGFiUGtIaHV4cXRRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbX
-BsZXMvZGVncmVlLmpzb24iXQ
-~
-WyItQmhzaE10UnlNNUVFbGt4WGVXVm5nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJ0SEFxMEUwN
-nY2ckRuUlNtSjlSUWRBIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd
-~
-WyJ1Ynd6bi1kS19tMzRSMGI0SG84QTBBIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ
-        
- -
-

Status

@@ -2216,66 +2181,101 @@

Status

-

Verifiable Credentials

+

Securing Mechanisms

-[=Verifiable credentials=] are used to express properties of one or more [=subjects=] -as well as properties of the [=credential=] itself. The following properties -are defined in this specification for a [=verifiable credential=]: +This specification recognizes two classes of +securing mechanisms: +those that use enveloping proofs and those that use embedded proofs.

-
-
@context
-
-Defined in Section [[[#contexts]]]. -
-
id
-
-Defined in Section [[[#identifiers]]]. -
-
type
-
-Defined in Section [[[#types]]]. -
-
name
-
-Defined in Section [[[#names-and-descriptions]]]. -
-
description
-
-Defined in Section [[[#names-and-descriptions]]]. -
-
issuer
-
-Defined in Section [[[#issuer]]]. -
-
validFrom
-
-Defined in Section [[[#validity-period]]]. -
-
validUntil
-
-Defined in Section [[[#validity-period]]]. -
-
status
-
-Defined in Section [[[#status]]]. -
-
credentialSchema
-
-Defined in Section [[[#data-schemas]]]. -
-
credentialSubject
-
-Defined in Section [[[#credential-subject]]]. -
-
+

+An enveloping proof is one that wraps a serialization +of this data model. One such RECOMMENDED enveloping proof mechanism is defined +in [[[VC-JOSE-COSE]]] [[VC-JOSE-COSE]]. +

-A [=verifiable credential=] can be extended to have additional properties -through the extension mechanism defined in Section [[[#extensibility]]]. +An embedded proof is a mechanism where the proof is +included in the serialization of the data model. One such RECOMMENDED embedded +proof mechanism is defined in [[[VC-DATA-INTEGRITY]]] [[VC-DATA-INTEGRITY]]. +

+ +

+These two classes of securing mechanisms are not mutually exclusive. Additional +securing mechanism specifications might also be defined according to the rules +in Section [[[#securing-mechanism-specifications]]].

+
+{
+  "@context": [
+    "https://www.w3.org/ns/credentials/v2",
+    "https://www.w3.org/ns/credentials/examples/v2"
+  ],
+  "id": "http://example.gov/credentials/3732",
+  "type": ["VerifiableCredential", "ExampleDegreeCredential"],
+  "issuer": "did:example:6fb1f712ebe12c27cc26eebfe11",
+  "validFrom": "2010-01-01T19:23:24Z",
+  "credentialSubject": {
+    "id": "https://subject.example/subject/3921",
+    "degree": {
+      "type": "ExampleBachelorDegree",
+      "name": "Bachelor of Science and Arts"
+    }
+  },
+  "proof": {
+    "type": "DataIntegrityProof",
+    "cryptosuite": "eddsa-rdfc-2022",
+    "created": "2021-11-13T18:19:39Z",
+    "verificationMethod": "https://university.example/issuers/14#key-1",
+    "proofPurpose": "assertionMethod",
+    "proofValue": "z58DAdFfa9SkqZMVPxAQp...jQCrfFPP2oumHKtz"
+  }
+}
+        
+ +
+eyJhbGciOiJFUzM4NCIsImtpZCI6IkdOV2FBTDJQVlVVMkpJVDg5bTZxMGM3U3ZjNDBTLWJ2UjFTT0
+Q3REZCb1UiLCJ0eXAiOiJ2YytsZCtqc29uK3NkLWp3dCIsImN0eSI6InZjK2xkK2pzb24ifQ
+.
+eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwcz
+ovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6
+Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLT
+AxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiX3NkIjpbIlNFOHp4bmduZTNNbWEwLUNm
+S2dlYW1rNUVqU1NfOXRaNlN5NDdBdTdxRWMiLCJjT3lySEVrSlZwdEtSdURtNkNZVTREajJvRkExd0
+JQRjFHcTJnWEo1NXpzIl19LCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsibmFtZSI6IkJh
+Y2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMiLCJfc2QiOlsibVNfSVBMa0JHcTIxbVA3Z0VRaHhOck
+E0ZXNMc1ZKQ1E5QUpZNDFLLVRQSSJdfSwiX3NkIjpbIlhTSG9iU05Md01PVl9QNkhQMHNvMnZ1clNy
+VXZ3UURYREJHQWtyTXk3TjgiXX0sIl9zZCI6WyJQNE5qWHFXa2JOc1NfRzdvdmlLdm1NOG0yckhDTm
+5XVVV2SXZBbW9jb2RZIiwieFNvSHBKUXlCNGV1dmg4SkFJdDFCd1pjNFVEOHY5S3ZOTmVLMk9OSjFC
+QSJdLCJfc2RfYWxnIjoic2hhLTI1NiIsImlzcyI6Imh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2
+lzc3VlcnMvNTY1MDQ5IiwiaWF0IjoxNzAzNjI1OTAxLCJleHAiOjE3MzUyNDgzMDEsImNuZiI6eyJq
+d2siOnsia3R5IjoiRUMiLCJjcnYiOiJQLTM4NCIsImFsZyI6IkVTMzg0IiwieCI6Inl1Zlo1SFUzcU
+NfOTRMbkI3Zklzd0hmT0swQlJra0Z5bzVhd1QyX21ld0tJWUpLMVNfR0QySVB3UjRYUTZpdFEiLCJ5
+IjoiRmEtV2pOd2NLQ1RWWHVDU2tCY3RkdHJOYzh6bXdBTTZWOWxudmxxd1QyQnRlQ0ZHNmR6ZDJoMF
+VjeXluTDg0dCJ9fX0
+.
+M7BFJB9LEV_xEylSJpP00fd_4WjrOlXshh0dUv3QgOzw2MEGIfSfi9PoCkHJH7TI0InsqkD6XZVz38
+MpeDKekgBW-RoDdJmxnifYOEJhKpJ5EN9PvA007UPi9QCaiEzX
+~
+WyJFX3F2V09NWVQ1Z3JNTkprOHNXN3BBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbG
+UvY3JlZGVudGlhbHMvMTg3MiJd
+~
+WyJTSEc4WnpfRDVRbFMwU0ZrZFUzNXlRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIi
+wgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d
+~
+WyJqZzJLRno5bTFVaGFiUGtIaHV4cXRRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbX
+BsZXMvZGVncmVlLmpzb24iXQ
+~
+WyItQmhzaE10UnlNNUVFbGt4WGVXVm5nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJ0SEFxMEUwN
+nY2ckRuUlNtSjlSUWRBIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd
+~
+WyJ1Ynd6bi1kS19tMzRSMGI0SG84QTBBIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ
+        
+