Skip to content

Commit

Permalink
Merge pull request #68 from w3c/fixes-and-examples
Browse files Browse the repository at this point in the history
Editorial and non editorial changes
  • Loading branch information
OR13 authored Apr 13, 2023
2 parents 987593d + 6b7d9a9 commit 7335c51
Show file tree
Hide file tree
Showing 15 changed files with 372 additions and 205 deletions.
39 changes: 27 additions & 12 deletions examples/vc-2.0/generate.js
Original file line number Diff line number Diff line change
@@ -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",
Expand All @@ -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);
}
})()
2 changes: 1 addition & 1 deletion examples/vc-2.0/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "",
"main": "index.js",
"scripts": {
"test": "node generate.js"
"generate:examples": "node generate.js"
},
"author": "Orie Steele",
"license": "ISC",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"iss": "https://example.edu/issuers/14",
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"@context": "https://www.w3.org/ns/credentials/v2",
"type": ["VerifiableCredential"],
"issuer": "urn:vc:987654321",
"issuer": "https://example.edu/issuers/14",
"credentialSubject": {
"id": "urn:vc:1234567890",
"name": "John Doe",
Expand Down
5 changes: 5 additions & 0 deletions examples/vc-2.0/templates/vc+jwt/header.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"kid": "https://example.edu/issuers/14#key-0",
"alg": "ES256",
"typ": "vc+jwt"
}
16 changes: 16 additions & 0 deletions examples/vc-2.0/templates/vc+ld+jwt/claimset.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"kid": "urn:example:issuer#key-0",
"alg": "ES256",
"typ": "vc+jwt",
"cty": "credential-claims-set+json"
"typ": "vc+ld+jwt",
"cty": "vc+ld+json"
}
10 changes: 10 additions & 0 deletions examples/vc-2.0/templates/vp+ld+jwt/claimset.json
Original file line number Diff line number Diff line change
@@ -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"
]
}
6 changes: 6 additions & 0 deletions examples/vc-2.0/templates/vp+ld+jwt/header.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"kid": "urn:example:holder#key-0",
"alg": "ES256",
"typ": "vp+ld+jwt",
"cty": "vp+ld+json"
}
1 change: 1 addition & 0 deletions examples/vc-2.0/vc+jwt.jose
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eyJraWQiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvMTQja2V5LTAiLCJhbGciOiJFUzI1NiIsInR5cCI6InZjK2p3dCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvMTQiLCJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJ1cm46ZXhhbXBsZTpjbGFpbSI6dHJ1ZX0.WLD4Qxh629TFkJHzmbkWEefYX-QPkdCmxbBMKNHErxND2QpjVBbatxHkxS9Y_SzBmwffuM2E9i5VvVgpZ6v4Tg
1 change: 1 addition & 0 deletions examples/vc-2.0/vc+ld+jwt.jose
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eyJraWQiOiJ1cm46ZXhhbXBsZTppc3N1ZXIja2V5LTAiLCJhbGciOiJFUzI1NiIsInR5cCI6InZjK2xkK2p3dCIsImN0eSI6InZjK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXSwiaWQiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJVbml2ZXJzaXR5RGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvMTQiLCJpc3N1YW5jZURhdGUiOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmV4YW1wbGU6MTIzIiwiZGVncmVlIjp7InR5cGUiOiJCYWNoZWxvckRlZ3JlZSIsIm5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIn19fQ.pfbhgWlTUZA8WmoFbi8WEIUFyC_lSQaAswoW87D1YeimdWZLq4MiJ3o-CmTkvkEQFhffvRiCzmkhxjS_R_RdOw
7 changes: 0 additions & 7 deletions examples/vc-2.0/verifiable-credential-jwt.json

This file was deleted.

1 change: 0 additions & 1 deletion examples/vc-2.0/verifiable-credential.jwt

This file was deleted.

1 change: 1 addition & 0 deletions examples/vc-2.0/vp+ld+jwt.jose
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eyJraWQiOiJ1cm46ZXhhbXBsZTpob2xkZXIja2V5LTAiLCJhbGciOiJFUzI1NiIsInR5cCI6InZwK2xkK2p3dCIsImN0eSI6InZwK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXSwiaWQiOiJ1cm46dXVpZDozOTc4MzQ0Zi04NTk2LTRjM2EtYTk3OC04ZmNhYmEzOTAzYzUiLCJ0eXBlIjpbIlZlcmlmaWFibGVQcmVzZW50YXRpb24iXSwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlsiZXlKcmFXUWlPaUpvZEhSd2N6b3ZMMlY0WVcxd2JHVXVaV1IxTDJsemMzVmxjbk12TVRRamEyVjVMVEFpTENKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNkluWmpLMnAzZENKOS5leUpwYzNNaU9pSm9kSFJ3Y3pvdkwyVjRZVzF3YkdVdVpXUjFMMmx6YzNWbGNuTXZNVFFpTENKemRXSWlPaUl4TWpNME5UWTNPRGt3SWl3aWJtRnRaU0k2SWtwdmFHNGdSRzlsSWl3aWFXRjBJam94TlRFMk1qTTVNREl5TENKMWNtNDZaWGhoYlhCc1pUcGpiR0ZwYlNJNmRISjFaWDAuSDN2OHNtOV9zT0NsU0E2NWhfTUtfWnNvQml1SjB6MnBQTlMteWZxWGRVSVdsMG41VmxabGZBTnNNWWFUeWNGLUZka2RxanRzNkgtcTRMTzI3dnhGbkEiXX0.XIiemybajGhLwxE6dTsBioYCpb8vxT4x5we_lig2iMRlU2q4oXbvqAi02HpXmzd6LuTy8sOUi4OKjRaOIMb7_w
Loading

0 comments on commit 7335c51

Please sign in to comment.