Skip to content

Commit

Permalink
fix api
Browse files Browse the repository at this point in the history
  • Loading branch information
OR13 committed Jul 9, 2023
1 parent 91cb0a0 commit b3df204
Show file tree
Hide file tree
Showing 10 changed files with 60 additions and 253 deletions.
32 changes: 18 additions & 14 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@
},
"dependencies": {
"@transmute/cose": "^0.0.13",
"@transmute/vc-jwt-status-list": "^0.0.2",
"@transmute/verifiable-credentials": "^0.1.1",
"ajv": "^8.12.0",
"axios": "^1.2.2",
"jose": "^4.11.1",
"jose": "^4.14.4",
"js-yaml": "^4.1.0"
}
}
7 changes: 0 additions & 7 deletions src/w3c/getPublicKeyIdFromToken.ts

This file was deleted.

8 changes: 1 addition & 7 deletions src/w3c/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
import { signer } from "./signer"
import { verifier } from "./verifier"
import w3c from '@transmute/verifiable-credentials'

import { validator } from "./validator"

import { getPublicKeyIdFromToken } from "./getPublicKeyIdFromToken"

const w3c = { signer, verifier, validator, getPublicKeyIdFromToken }

export default w3c
15 changes: 0 additions & 15 deletions src/w3c/signer.ts

This file was deleted.

62 changes: 0 additions & 62 deletions src/w3c/validator.ts

This file was deleted.

22 changes: 0 additions & 22 deletions src/w3c/verifier.ts

This file was deleted.

82 changes: 39 additions & 43 deletions test/w3c/validate.test.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import transmute from "../../src";

import { decodeProtectedHeader } from 'jose'
import yaml from 'js-yaml'
import moment from 'moment'
import { StatusList } from '@transmute/vc-jwt-status-list'
import { CompactJsonWebSignature } from "../../src/jose/CompactJsonWebSignature";


it("validation", async () => {
const actor = await transmute.did.jwk.exportable({
alg: "ES256",
});
const signer = transmute.w3c.signer({ privateKey: actor.key.privateKey });
const vc = await signer.sign({
protectedHeader: {
kid: actor.did + '#0',
alg: actor.key.publicKey.alg,
},
const issuer = await transmute.w3c.vc.issuer({ signer: await transmute.w3c.controller.key.attached.signer({ privateKey: actor.key.privateKey as any }) });
const protectedHeader = {
kid: actor.did + '#0',
alg: actor.key.publicKey.alg,
}
const vc = await issuer.issue({
protectedHeader,
claimset: {
"@context": [
"https://www.w3.org/ns/credentials/v2",
Expand Down Expand Up @@ -44,33 +42,33 @@ it("validation", async () => {
}
},
});
const validator = await transmute.w3c.validator({

const validator = await transmute.w3c.vc.validator({
vc,
issuer: async (jwt: string) => {
const id = transmute.w3c.getPublicKeyIdFromToken(jwt);
const { kid } = decodeProtectedHeader(jwt) as any
const { publicKeyJwk } = await transmute.did.jwk.dereference({
id,
id: kid,
documentLoader: transmute.did.jwk.documentLoader,
});
// this resolver MUST return application/jwk+json
return publicKeyJwk

},
credentialStatus: async (id: string) => {
const statusList = await StatusList.create({
const statusList = await transmute.w3c.vc.StatusList.create({
id,
alg: 'ES256',
iss: actor.did,
kid: '#0',
iat: moment('2021-04-05T14:27:40Z').unix(),
length: 8,
purpose: 'suspension',
signer: {
sign: async ({ header, claimset }) => {
return signer.sign({ protectedHeader: header, claimset })
}
},
})
statusList.issuer = actor.did
statusList.validFrom = moment().toISOString()
// this resolver MUST return application/vc+ld+jwt
return statusList as CompactJsonWebSignature
const jwt = await issuer.issue({
protectedHeader,
claimset: statusList
})
return jwt
},
credentialSchema: async (id: string) => {
const loaded = yaml.load(`
Expand All @@ -96,25 +94,23 @@ properties:
return JSON.parse(JSON.stringify(loaded))
}
})
const validation = await validator.validate(vc)
expect(validation).toEqual({
"issuer": {
"did:web:contoso.example": {
"verified": true
}
},
"credentialStatus": {
"https://contoso.example/credentials/status/4#3": {
"suspension": false
}
},
"credentialSchema": {
"https://contoso.example/bafybeigdyr...lqabf3oclgtqy55fbzdi": {
"valid": true
}
const verifier = await transmute.w3c.vc.verifier({
issuer: async (jwt: string) => {
const { kid } = decodeProtectedHeader(jwt) as any
const { publicKeyJwk } = await transmute.did.jwk.dereference({
id: kid,
documentLoader: transmute.did.jwk.documentLoader,
});
// this resolver MUST return application/jwk+json
return publicKeyJwk
}
}
)

})
const verified = await verifier.verify(vc)
const validation = await validator.validate(verified)
expect(validation.issuer).toEqual(actor.key.publicKey)
expect((validation.credentialSchema?.valid)).toBe(true)
expect((validation.credentialSchema as any)['https://contoso.example/bafybeigdyr...lqabf3oclgtqy55fbzdi']).toBeDefined()
expect((validation.credentialStatus?.valid)).toBe(true)
expect((validation.credentialStatus as any)['https://contoso.example/credentials/status/4#3'].suspension).toBe(false)
});

47 changes: 0 additions & 47 deletions test/w3c/vc.test.ts

This file was deleted.

Loading

0 comments on commit b3df204

Please sign in to comment.