Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Editorial and non editorial changes #68

Merged
merged 15 commits into from
Apr 13, 2023
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