From b555ccd8c30d0d9d1c577628ebc0ce3d768d8cdb Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Fri, 31 Mar 2023 19:18:51 +0900 Subject: [PATCH 01/13] add examples --- examples/vc-2.0/credential-metadata.json | 6 --- examples/vc-2.0/generate.js | 39 +++++++++++++------ examples/vc-2.0/package.json | 2 +- .../vc+jwt/claimset.json} | 1 + examples/vc-2.0/templates/vc+jwt/header.json | 5 +++ .../vc-2.0/templates/vc+ld+jwt/claimset.json | 16 ++++++++ .../vc-2.0/templates/vc+ld+jwt/header.json | 6 +++ .../vc-2.0/templates/vp+ld+jwt/claimset.json | 10 +++++ .../vc-2.0/templates/vp+ld+jwt/header.json | 6 +++ examples/vc-2.0/vc+jwt.jose | 1 + examples/vc-2.0/vc+ld+jwt.jose | 1 + examples/vc-2.0/verifiable-credential.jwt | 1 - examples/vc-2.0/vp+ld+jwt.jose | 1 + 13 files changed, 75 insertions(+), 20 deletions(-) delete mode 100644 examples/vc-2.0/credential-metadata.json rename examples/vc-2.0/{credential.json => templates/vc+jwt/claimset.json} (69%) create mode 100644 examples/vc-2.0/templates/vc+jwt/header.json create mode 100644 examples/vc-2.0/templates/vc+ld+jwt/claimset.json create mode 100644 examples/vc-2.0/templates/vc+ld+jwt/header.json create mode 100644 examples/vc-2.0/templates/vp+ld+jwt/claimset.json create mode 100644 examples/vc-2.0/templates/vp+ld+jwt/header.json create mode 100644 examples/vc-2.0/vc+jwt.jose create mode 100644 examples/vc-2.0/vc+ld+jwt.jose delete mode 100644 examples/vc-2.0/verifiable-credential.jwt create mode 100644 examples/vc-2.0/vp+ld+jwt.jose diff --git a/examples/vc-2.0/credential-metadata.json b/examples/vc-2.0/credential-metadata.json deleted file mode 100644 index 974aaf8e..00000000 --- a/examples/vc-2.0/credential-metadata.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "kid": "urn:example:issuer#key-0", - "alg": "ES256", - "typ": "verifiable-credential+jwt", - "cty": "credential-claims-set+json" -} \ No newline at end of file diff --git a/examples/vc-2.0/generate.js b/examples/vc-2.0/generate.js index c74894be..0f594b47 100644 --- a/examples/vc-2.0/generate.js +++ b/examples/vc-2.0/generate.js @@ -1,6 +1,7 @@ const jose = require('jose'); const fs = require('fs'); + const privateKeyJwk = { "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:GNcrpR6vVHCzTe7W-9ntbJx_5hHfhiVCHWHEUaC4E_c", "kty": "EC", @@ -11,19 +12,33 @@ const privateKeyJwk = { "d": "bAv9YrE443mH36LnzixS3Kv5ThM5m9mH7Ab_BiU3JZc" }; -const credentialMetadata = require('./credential-metadata.json'); -const credential = require('./credential.json'); +const examples = { + 'vc+jwt': { + header: require('./templates/vc+jwt/header.json'), + claimset: require('./templates/vc+jwt/claimset.json') + }, + 'vc+ld+jwt': { + header: require('./templates/vc+ld+jwt/header.json'), + claimset: require('./templates/vc+ld+jwt/claimset.json') + }, + 'vp+ld+jwt': { + header: require('./templates/vp+ld+jwt/header.json'), + claimset: require('./templates/vp+ld+jwt/claimset.json') + }, +}; -(async ()=>{ +const issue = async (header, claimset) => { const privateKey = await jose.importJWK(privateKeyJwk); - const issuer = `urn:example:issuer` - const audience = `urn:example:audience` - const jwt = await new jose.SignJWT(credential) - .setProtectedHeader(credentialMetadata) - .setIssuedAt() - .setIssuer(issuer) - .setAudience(audience) - .setExpirationTime('2h') + const jwt = await new jose.CompactSign(Buffer.from(JSON.stringify(claimset))) + .setProtectedHeader(header) .sign(privateKey) - fs.writeFileSync('./verifiable-credential.jwt', jwt); + return jwt; +} + +(async ()=>{ + for (const typ in examples){ + const {header, claimset} = examples[typ]; + const jwt = await issue(header, claimset) + fs.writeFileSync(`./${typ}.jose`, jwt); + } })() \ No newline at end of file diff --git a/examples/vc-2.0/package.json b/examples/vc-2.0/package.json index f279fb0b..32aa3a99 100644 --- a/examples/vc-2.0/package.json +++ b/examples/vc-2.0/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "test": "node generate.js" + "generate:examples": "node generate.js" }, "author": "Orie Steele", "license": "ISC", diff --git a/examples/vc-2.0/credential.json b/examples/vc-2.0/templates/vc+jwt/claimset.json similarity index 69% rename from examples/vc-2.0/credential.json rename to examples/vc-2.0/templates/vc+jwt/claimset.json index 81b4e04e..423842c8 100644 --- a/examples/vc-2.0/credential.json +++ b/examples/vc-2.0/templates/vc+jwt/claimset.json @@ -1,4 +1,5 @@ { + "iss": "https://example.edu/issuers/14", "sub": "1234567890", "name": "John Doe", "iat": 1516239022, diff --git a/examples/vc-2.0/templates/vc+jwt/header.json b/examples/vc-2.0/templates/vc+jwt/header.json new file mode 100644 index 00000000..9d7d58c8 --- /dev/null +++ b/examples/vc-2.0/templates/vc+jwt/header.json @@ -0,0 +1,5 @@ +{ + "kid": "https://example.edu/issuers/14#key-0", + "alg": "ES256", + "typ": "vc+jwt" +} \ No newline at end of file diff --git a/examples/vc-2.0/templates/vc+ld+jwt/claimset.json b/examples/vc-2.0/templates/vc+ld+jwt/claimset.json new file mode 100644 index 00000000..06dd1b96 --- /dev/null +++ b/examples/vc-2.0/templates/vc+ld+jwt/claimset.json @@ -0,0 +1,16 @@ +{ + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "id": "http://example.edu/credentials/3732", + "type": ["VerifiableCredential", "UniversityDegreeCredential"], + "issuer": "https://example.edu/issuers/14", + "issuanceDate": "2010-01-01T19:23:24Z", + "credentialSubject": { + "id": "did:example:123", + "degree": { + "type": "BachelorDegree", + "name": "Bachelor of Science and Arts" + } + } +} \ No newline at end of file diff --git a/examples/vc-2.0/templates/vc+ld+jwt/header.json b/examples/vc-2.0/templates/vc+ld+jwt/header.json new file mode 100644 index 00000000..a8fe1d68 --- /dev/null +++ b/examples/vc-2.0/templates/vc+ld+jwt/header.json @@ -0,0 +1,6 @@ +{ + "kid": "urn:example:issuer#key-0", + "alg": "ES256", + "typ": "vc+ld+jwt", + "cty": "vc+ld+json" +} \ No newline at end of file diff --git a/examples/vc-2.0/templates/vp+ld+jwt/claimset.json b/examples/vc-2.0/templates/vp+ld+jwt/claimset.json new file mode 100644 index 00000000..ef760eb8 --- /dev/null +++ b/examples/vc-2.0/templates/vp+ld+jwt/claimset.json @@ -0,0 +1,10 @@ +{ + "@context": [ + "https://www.w3.org/ns/credentials/v2" + ], + "id": "urn:uuid:3978344f-8596-4c3a-a978-8fcaba3903c5", + "type": ["VerifiablePresentation"], + "verifiableCredential": [ + "eyJraWQiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvMTQja2V5LTAiLCJhbGciOiJFUzI1NiIsInR5cCI6InZjK2p3dCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvMTQiLCJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJ1cm46ZXhhbXBsZTpjbGFpbSI6dHJ1ZX0.H3v8sm9_sOClSA65h_MK_ZsoBiuJ0z2pPNS-yfqXdUIWl0n5VlZlfANsMYaTycF-Fdkdqjts6H-q4LO27vxFnA" + ] +} \ No newline at end of file diff --git a/examples/vc-2.0/templates/vp+ld+jwt/header.json b/examples/vc-2.0/templates/vp+ld+jwt/header.json new file mode 100644 index 00000000..feb5c137 --- /dev/null +++ b/examples/vc-2.0/templates/vp+ld+jwt/header.json @@ -0,0 +1,6 @@ +{ + "kid": "urn:example:holder#key-0", + "alg": "ES256", + "typ": "vp+ld+jwt", + "cty": "vp+ld+json" +} \ No newline at end of file diff --git a/examples/vc-2.0/vc+jwt.jose b/examples/vc-2.0/vc+jwt.jose new file mode 100644 index 00000000..75c08bfc --- /dev/null +++ b/examples/vc-2.0/vc+jwt.jose @@ -0,0 +1 @@ +eyJraWQiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvMTQja2V5LTAiLCJhbGciOiJFUzI1NiIsInR5cCI6InZjK2p3dCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvMTQiLCJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJ1cm46ZXhhbXBsZTpjbGFpbSI6dHJ1ZX0.WLD4Qxh629TFkJHzmbkWEefYX-QPkdCmxbBMKNHErxND2QpjVBbatxHkxS9Y_SzBmwffuM2E9i5VvVgpZ6v4Tg \ No newline at end of file diff --git a/examples/vc-2.0/vc+ld+jwt.jose b/examples/vc-2.0/vc+ld+jwt.jose new file mode 100644 index 00000000..0f93a57a --- /dev/null +++ b/examples/vc-2.0/vc+ld+jwt.jose @@ -0,0 +1 @@ +eyJraWQiOiJ1cm46ZXhhbXBsZTppc3N1ZXIja2V5LTAiLCJhbGciOiJFUzI1NiIsInR5cCI6InZjK2xkK2p3dCIsImN0eSI6InZjK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvMTQiLCJpc3N1YW5jZURhdGUiOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmV4YW1wbGU6MTIzIiwiZGVncmVlIjp7InR5cGUiOiJCYWNoZWxvckRlZ3JlZSIsIm5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIn19fQ.pfbhgWlTUZA8WmoFbi8WEIUFyC_lSQaAswoW87D1YeimdWZLq4MiJ3o-CmTkvkEQFhffvRiCzmkhxjS_R_RdOw \ No newline at end of file diff --git a/examples/vc-2.0/verifiable-credential.jwt b/examples/vc-2.0/verifiable-credential.jwt deleted file mode 100644 index dce4779b..00000000 --- a/examples/vc-2.0/verifiable-credential.jwt +++ /dev/null @@ -1 +0,0 @@ -eyJraWQiOiJ1cm46ZXhhbXBsZTppc3N1ZXIja2V5LTAiLCJhbGciOiJFUzI1NiIsInR5cCI6InZlcmlmaWFibGUtY3JlZGVudGlhbCtqd3QiLCJjdHkiOiJjcmVkZW50aWFsK2pzb24ifQ.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNjc1MjAxNTc4LCJ1cm46ZXhhbXBsZTpjbGFpbSI6dHJ1ZSwiaXNzIjoidXJuOmV4YW1wbGU6aXNzdWVyIiwiYXVkIjoidXJuOmV4YW1wbGU6YXVkaWVuY2UiLCJleHAiOjE2NzUyMDg3Nzh9.BELg5BSlmhpltYWlX9TBzuRj8Jwe_i1xvwS0UmyeN1-NHIoElhJKSb3DM66_14GOu9VY8MQ4KsF3caqri7c6ZQ \ No newline at end of file diff --git a/examples/vc-2.0/vp+ld+jwt.jose b/examples/vc-2.0/vp+ld+jwt.jose new file mode 100644 index 00000000..0109704a --- /dev/null +++ b/examples/vc-2.0/vp+ld+jwt.jose @@ -0,0 +1 @@ +eyJraWQiOiJ1cm46ZXhhbXBsZTpob2xkZXIja2V5LTAiLCJhbGciOiJFUzI1NiIsInR5cCI6InZwK2xkK2p3dCIsImN0eSI6InZwK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXSwiaWQiOiJ1cm46dXVpZDozOTc4MzQ0Zi04NTk2LTRjM2EtYTk3OC04ZmNhYmEzOTAzYzUiLCJ0eXBlIjpbIlZlcmlmaWFibGVQcmVzZW50YXRpb24iXSwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlsiZXlKcmFXUWlPaUpvZEhSd2N6b3ZMMlY0WVcxd2JHVXVaV1IxTDJsemMzVmxjbk12TVRRamEyVjVMVEFpTENKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNkluWmpLMnAzZENKOS5leUpwYzNNaU9pSm9kSFJ3Y3pvdkwyVjRZVzF3YkdVdVpXUjFMMmx6YzNWbGNuTXZNVFFpTENKemRXSWlPaUl4TWpNME5UWTNPRGt3SWl3aWJtRnRaU0k2SWtwdmFHNGdSRzlsSWl3aWFXRjBJam94TlRFMk1qTTVNREl5TENKMWNtNDZaWGhoYlhCc1pUcGpiR0ZwYlNJNmRISjFaWDAuSDN2OHNtOV9zT0NsU0E2NWhfTUtfWnNvQml1SjB6MnBQTlMteWZxWGRVSVdsMG41VmxabGZBTnNNWWFUeWNGLUZka2RxanRzNkgtcTRMTzI3dnhGbkEiXX0.XIiemybajGhLwxE6dTsBioYCpb8vxT4x5we_lig2iMRlU2q4oXbvqAi02HpXmzd6LuTy8sOUi4OKjRaOIMb7_w \ No newline at end of file From e631856174ca872722842afad359959c68c7f3f7 Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Fri, 31 Mar 2023 19:19:23 +0900 Subject: [PATCH 02/13] update examples --- index.html | 199 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 134 insertions(+), 65 deletions(-) diff --git a/index.html b/index.html index e583f3f4..462db8dd 100644 --- a/index.html +++ b/index.html @@ -113,8 +113,139 @@
Relation to the Verifiable Credentials Data Model
verifiable presentation MAY be omitted to avoid duplication.

+ - +
+

Securing JSON-LD

+
+

With JOSE

+
+

Securing application/vc+ld+json with JOSE

+

[[rfc7515]] MAY be used to secure this media type.

+

typ MUST be vc+ld+jwt

+

cty MUST be vc+ld+json

+

See Common JOSE Header Parameters for additional details.

+
+

Credential Header

+ +
+
+

Credential

+ +
+
+

Verifiable Credential

+ +
+
+
+

Securing application/vp+ld+json with JOSE

+

[[rfc7515]] MAY be used to secure this media type.

+

typ MUST be vp+ld+jwt

+

cty MUST be vp+ld+json

+

See Common JOSE Header Parameters for additional details.

+
+

Presentation Header

+ +
+
+

Presentation

+ +
+
+

Verifiable Presentation

+ +
+
+
+
+

With COSE

+
+

Securing application/vc+ld+json with COSE

+

[[rfc8152]] MAY be used to secure this media type.

+

type (TBD) MUST be vc+ld+cwt

+

content type (3) MUST be application/vc+ld+json

+

See Common COSE Header Parameters for additional details.

+

See Concise Binary Object Representation (CBOR) Tags for additional details.

+
+

+
+
+ +
+

Securing JSON

+

+ This representation relies on claims registered in the + IANA JSON Web Token Claims Registry whenever possible. +

+

+ Production of this representation does not use credential+ld+json as an input. +

+
+

Credential Header

+

typ MUST use the content type verifiable-credential+jwt.

+

+

If present, cty SHOULD use the content type credential-claims-set+json.

+ +
+
+

Credential

+ +

+ The vc and vp claims MUST NOT be present when using the content type credential-claims-set+json. +

+
+
+

Verifiable Credential

+ +
@@ -154,7 +285,7 @@
JWT Encoding

To encode a verifiable credential as a JWT, specific properties - introduced by this specification MUST be either: + introduced MUST be either:

    @@ -725,69 +856,7 @@

    issuance

-
-

Version 2

-

- This representation relies on claims registered in the - IANA JSON Web Token Claims Registry whenever possible. -

-

- Production of this representation does not use credential+ld+json as an input. -

-
-

Credential Metadata

-

typ MUST use the content type verifiable-credential+jwt.

-

-

If present, cty SHOULD use the content type credential-claims-set+json.

- -
-
-

Credential

- -

- The vc and vp claims MUST NOT be present when using the content type credential-claims-set+json. -

-
-
-

Verifiable Credential

- -
-
- -
-

Securing JSON-LD

-
-

Securing application/credential+ld+json with JOSE

-

[[rfc7515]] MAY be used to secure this media type.

-

typ MUST be vc+ld+jwt

-

cty MUST be credential+ld+json

-

See Common JOSE Header Parameters for additional details.

-
-
-

Securing application/credential+ld+json with COSE

-

[[rfc8152]] MAY be used to secure this media type.

-

type (TBD) MUST be vc+ld+cwt

-

content type (3) MUST be application/credential+ld+json

-

See Common COSE Header Parameters for additional details.

-

See Concise Binary Object Representation (CBOR) Tags for additional details.

-
-
+
From 7367a9f708d883b3a512e3651297cdb7f0a457f2 Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Fri, 31 Mar 2023 17:47:10 -0700 Subject: [PATCH 03/13] Update index.html Co-authored-by: Ted Thibodeau Jr --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 5982d59d..d9d41b89 100644 --- a/index.html +++ b/index.html @@ -108,7 +108,7 @@

Introduction

Verifiable Credentials Data Model

This specification describes how to secure media types - for expressing Verifiable Credentials and Verifiable Presentations + expressing Verifiable Credentials and Verifiable Presentations as described in [[VC-DATA-MODEL]].

From 35ca0fd89f62be07c3a4f5555efb8da392d1feab Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Fri, 31 Mar 2023 18:04:32 -0700 Subject: [PATCH 04/13] Apply suggestions from code review Co-authored-by: Andres Uribe Co-authored-by: Ted Thibodeau Jr --- index.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index d9d41b89..061810f9 100644 --- a/index.html +++ b/index.html @@ -132,7 +132,7 @@

Securing JSON

Credential Header

-

typ MUST use the content type vc+jwt.

+

typ MUST use the media type vc+jwt.

- The vc and vp claims MUST NOT be present when using the content type credential-claims-set+json. + The vc and vp claims MUST NOT be present when the content type header parameter is set to credential-claims-set+json.

@@ -290,7 +290,7 @@
JWT Encoding

To encode a verifiable credential as a JWT, specific properties - introduced MUST be either: + MUST be either:

    @@ -689,14 +689,14 @@

    In addition to...

    - If a member is not present in the application/vc+ld+json it MUST NOT + If a member is not present in the application/vc+ld+json, it MUST NOT be present in the VerifiableCredential as either a claim in the payload or a claim in the vc attribute of the payload.

    - We start with an empty header, and payload objects, and we add members + We start with payload objects and an empty header, and we add members to the header and the payload based on the content in the application/vc+ld+json.

    @@ -771,7 +771,7 @@

    Instead of...

    Complete the mapping for In Addition To....
  • - Remove any properties from the application/vc+ld+json that were mapped. + Remove any properties from the application/vc+ld+json that were mapped in the previous steps.
  • Set the resulting object to be the vc member of the claim set. From f5656b960284947b0a7f4e2f7efc20421f9eba00 Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Thu, 6 Apr 2023 07:46:01 -0500 Subject: [PATCH 05/13] Update index.html Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com> --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 061810f9..115bafb3 100644 --- a/index.html +++ b/index.html @@ -109,7 +109,7 @@
    Verifiable Credentials Data Model

    This specification describes how to secure media types expressing Verifiable Credentials and Verifiable Presentations - as described in [[VC-DATA-MODEL]]. + as described in [[VC-DATA-MODEL]], using JWTs [[RFC7519]].

    The vc+jwt media type described in this specification defines From 299bb59e59410c8862b6cc040a2c05a43eb3c3ff Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Thu, 6 Apr 2023 07:46:34 -0500 Subject: [PATCH 06/13] Update index.html Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com> --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 115bafb3..cb82ba48 100644 --- a/index.html +++ b/index.html @@ -113,8 +113,8 @@

    Verifiable Credentials Data Model

    The vc+jwt media type described in this specification defines - an example unidirectional mapping to JSON-LD in order to demonstrate - conformance with the [[VC-DATA-MODEL]], see Appendix A.4.1. + an example of an unidirectional mapping to a base media type defined in + the [[VC-DATA-MODEL]], see Appendix A.4.1.

From 652bfcadf4282ce4fc2a9e61c5df48c4045f63f8 Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Thu, 6 Apr 2023 12:16:06 -0500 Subject: [PATCH 07/13] Update index.html Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com> --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index cb82ba48..bda4a31d 100644 --- a/index.html +++ b/index.html @@ -662,7 +662,7 @@
JWT Decoding
-

Verifiable Credential as Registered Claim

+

Verifiable Credential as a Registered Claim

This section describes how to produce a VC-JWT encoded From 1dd9cca85d2a895c72c1fa5b3a5b40e2738b2425 Mon Sep 17 00:00:00 2001 From: "Michael B. Jones" Date: Thu, 6 Apr 2023 10:21:42 -0700 Subject: [PATCH 08/13] Update index.html Co-authored-by: Ted Thibodeau Jr --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index bda4a31d..b6b405bb 100644 --- a/index.html +++ b/index.html @@ -113,8 +113,8 @@

Verifiable Credentials Data Model

The vc+jwt media type described in this specification defines - an example of an unidirectional mapping to a base media type defined in - the [[VC-DATA-MODEL]], see Appendix A.4.1. + an example of a unidirectional mapping to a base media type defined in + the [[VC-DATA-MODEL]]; see Appendix A.4.1.

From 4ac078d6745ef992fcdea98e0cd06ff225366d62 Mon Sep 17 00:00:00 2001 From: "Michael B. Jones" Date: Thu, 6 Apr 2023 10:22:12 -0700 Subject: [PATCH 09/13] Update index.html Co-authored-by: Ted Thibodeau Jr --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index b6b405bb..9b5f3683 100644 --- a/index.html +++ b/index.html @@ -112,7 +112,7 @@
Verifiable Credentials Data Model
as described in [[VC-DATA-MODEL]], using JWTs [[RFC7519]].

- The vc+jwt media type described in this specification defines + The application/vc+jwt media type described in this specification defines an example of a unidirectional mapping to a base media type defined in the [[VC-DATA-MODEL]]; see Appendix A.4.1.

From 482fbdf3fd1b39515b05e8fdb56764162d965837 Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Tue, 11 Apr 2023 09:28:30 -0500 Subject: [PATCH 10/13] add references to RFC7519 --- index.html | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 5982d59d..92c04953 100644 --- a/index.html +++ b/index.html @@ -903,7 +903,9 @@

application/vc+jwt

Security considerations: - As defined in this specification. + +

As defined in this specification. See also the security considerations in [[RFC7519]].

+ Contact: @@ -944,7 +946,9 @@

application/vc+ld+jwt

Security considerations: - As defined in this specification. + +

As defined in this specification. See also the security considerations in [[RFC7519]].

+ Contact: @@ -987,7 +991,9 @@

application/credential-claims-set-1.1+json

Security considerations: - As defined in this specification. + +

As defined in this specification. See also the security considerations in [[RFC7519]].

+ Contact: From bcd6464e3078704749e1b0231b2178db14c33340 Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Tue, 11 Apr 2023 09:46:14 -0500 Subject: [PATCH 11/13] Update index.html Co-authored-by: Manu Sporny --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index f71954c6..0c608daa 100644 --- a/index.html +++ b/index.html @@ -929,7 +929,7 @@

application/vc+ld+jwt

Subtype name: - application/vc+ld+jwt + vc+ld+jwt Required parameters: From 0f9177a0c8b9b7fe31f0ee9819ea98769e179fb0 Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Tue, 11 Apr 2023 09:46:32 -0500 Subject: [PATCH 12/13] Update index.html Co-authored-by: Manu Sporny --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 0c608daa..6dd804be 100644 --- a/index.html +++ b/index.html @@ -1051,8 +1051,8 @@

Example Mapping

  • If nbf is present, set the value of validFrom to the dateTime obtained by converting the value of nbf from -the NumericDate described in RFC 7519 to a dateTime as -described in XMLSCHEMA11-2. +the NumericDate described in [[!RFC7519]] to a dateTime as +described in [[!XMLSCHEMA11-2]].
  • If exp is present, set the value of validUntil to the From 6b7d9a9c09ba2d1e84baee9f87b392e107d547d8 Mon Sep 17 00:00:00 2001 From: Orie Steele Date: Tue, 11 Apr 2023 10:20:42 -0500 Subject: [PATCH 13/13] Fix references in mapping language --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 6dd804be..f19daa40 100644 --- a/index.html +++ b/index.html @@ -1057,8 +1057,8 @@

    Example Mapping

  • If exp is present, set the value of validUntil to the dateTime obtained by converting the value of exp from -the NumericDate described in RFC 7519 to a dateTime as -described in XMLSCHEMA11-2. +the NumericDate described in [[!RFC7519]] to a dateTime as +described in [[!XMLSCHEMA11-2]].
  • Set the value of credentialSubject to an object that contains