From 023da8e8bd92b9d813d5b35cdef79fd83f7d8424 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Thu, 9 Nov 2023 14:23:43 -0500 Subject: [PATCH 01/13] Add new cryptosuite and latest data-integrity context packages. --- package.json | 7 +++++-- test/package.json | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 58341f7..ae97053 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,10 @@ }, "homepage": "https://github.com/digitalbazaar/bedrock-vc-verifier", "dependencies": { - "@digitalbazaar/data-integrity": "^1.5.0", + "@digitalbazaar/data-integrity": "digitalbazaar/data-integrity#update-context", + "@digitalbazaar/ecdsa-rdfc-2019-cryptosuite": "digitalbazaar/ecdsa-rdfc-2019-cryptosuite#update-name-and-tests", + "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "digitalbazaar/ecdsa-sd-2023-cryptosuite#use-context-v2", + "@digitalbazaar/eddsa-rdfc-2022-cryptosuite": "digitalbazaar/eddsa-rdfc-2022-cryptosuite#update-name-and-test", "@digitalbazaar/ecdsa-2019-cryptosuite": "^2.0.0", "@digitalbazaar/ed25519-signature-2018": "^4.0.0", "@digitalbazaar/ed25519-signature-2020": "^5.0.0", @@ -42,7 +45,7 @@ "peerDependencies": { "@bedrock/core": "^6.0.1", "@bedrock/credentials-context": "^4.0.0", - "@bedrock/data-integrity-context": "^2.0.0", + "@bedrock/data-integrity-context": "digitalbazaar/bedrock-data-integrity-context#use-data-integrity-v2-context", "@bedrock/did-context": "^5.0.0", "@bedrock/did-io": "^10.1.0", "@bedrock/express": "^8.0.0", diff --git a/test/package.json b/test/package.json index 76001a3..de7f816 100644 --- a/test/package.json +++ b/test/package.json @@ -19,7 +19,7 @@ "@bedrock/app-identity": "^4.0.0", "@bedrock/core": "^6.0.1", "@bedrock/credentials-context": "^4.0.0", - "@bedrock/data-integrity-context": "^2.0.0", + "@bedrock/data-integrity-context": "digitalbazaar/bedrock-data-integrity-context#use-data-integrity-v2-context", "@bedrock/did-context": "^5.0.0", "@bedrock/did-io": "^10.1.0", "@bedrock/edv-storage": "^18.0.0", From e9befac55502a0da4aafab5ef7d2d37f5fc6d97e Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Thu, 9 Nov 2023 14:24:32 -0500 Subject: [PATCH 02/13] Include new suite names in `config.supportedSuites`. --- lib/config.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/config.js b/lib/config.js index 74ead57..1c88ff5 100644 --- a/lib/config.js +++ b/lib/config.js @@ -27,7 +27,10 @@ cfg.supportedSuites = [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'eddsa-2022', - 'ecdsa-2019' + 'ecdsa-2019', + 'ecdsa-rdfc-2019', + 'eddsa-rdfc-2022', + 'ecdsa-sd-2023' ]; cfg.routes = { From 92539afa43a84d1786ec9a6c209c1505aa90a128 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Thu, 9 Nov 2023 14:25:23 -0500 Subject: [PATCH 03/13] Update `SUPPORTED_CRYPTOSUITES`. --- lib/suites.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/suites.js b/lib/suites.js index 2b3dbed..39d61f8 100644 --- a/lib/suites.js +++ b/lib/suites.js @@ -2,20 +2,32 @@ * Copyright (c) 2018-2022 Digital Bazaar, Inc. All rights reserved. */ import * as bedrock from '@bedrock/core'; +import { + createVerifyCryptosuite as createEcdsaSd2023VerifyCryptosuite +} from '@digitalbazaar/ecdsa-sd-2023-cryptosuite'; import {DataIntegrityProof} from '@digitalbazaar/data-integrity'; import { cryptosuite as ecdsa2019CryptoSuite } from '@digitalbazaar/ecdsa-2019-cryptosuite'; +import { + cryptosuite as ecdsaRdfc2019CryptoSuite +} from '@digitalbazaar/ecdsa-rdfc-2019-cryptosuite'; import {Ed25519Signature2018} from '@digitalbazaar/ed25519-signature-2018'; import {Ed25519Signature2020} from '@digitalbazaar/ed25519-signature-2020'; import { cryptosuite as eddsa2022CryptoSuite } from '@digitalbazaar/eddsa-2022-cryptosuite'; +import { + cryptosuite as eddsaRdfc2022CryptoSuite +} from '@digitalbazaar/eddsa-rdfc-2022-cryptosuite'; // DataIntegrityProof should work for multiple cryptosuites const SUPPORTED_CRYPTOSUITES = new Map([ ['ecdsa-2019', ecdsa2019CryptoSuite], - ['eddsa-2022', eddsa2022CryptoSuite] + ['eddsa-2022', eddsa2022CryptoSuite], + ['ecdsa-rdfc-2019', ecdsaRdfc2019CryptoSuite], + ['eddsa-rdfc-2022', eddsaRdfc2022CryptoSuite], + ['ecdsa-sd-2023', createEcdsaSd2023VerifyCryptosuite()] ]); const SUPPORTED_LEGACY_SUITES = new Map([ From f1b018f98e6047d1af91d828c8247bce7adf0ef5 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Thu, 9 Nov 2023 14:26:43 -0500 Subject: [PATCH 04/13] Add tests for new cryptosuites. --- test/mocha/20-verify.js | 5 +- test/mocha/helpers.js | 6 +- test/mocha/mock-credentials.json | 144 +++++++++++++++++++++++++++++++ 3 files changed, 153 insertions(+), 2 deletions(-) diff --git a/test/mocha/20-verify.js b/test/mocha/20-verify.js index 6b756dd..1d70bcf 100644 --- a/test/mocha/20-verify.js +++ b/test/mocha/20-verify.js @@ -396,7 +396,10 @@ describe('verify APIs', () => { let description; const {type, cryptosuite} = mockCredential.proof; if(cryptosuite) { - if(cryptosuite === 'ecdsa-2019') { + if( + cryptosuite === 'ecdsa-2019' || cryptosuite === 'ecdsa-rdfc-2019' || + cryptosuite === 'ecdsa-sd-2023' + ) { const keyType = helpers.getEcdsaAlgorithms({ credential: mockCredential })[0]; diff --git a/test/mocha/helpers.js b/test/mocha/helpers.js index 2246846..6da3cb7 100644 --- a/test/mocha/helpers.js +++ b/test/mocha/helpers.js @@ -292,7 +292,11 @@ export function getEcdsaAlgorithms({credential, presentation} = {}) { const proofs = Array.isArray(credential.proof) ? credential.proof : [credential.proof]; for(const proof of proofs) { - if(proof.cryptosuite === 'ecdsa-2019') { + if( + proof.cryptosuite === 'ecdsa-2019' || + proof.cryptosuite === 'ecdsa-rdfc-2019' || + proof.cryptosuite === 'ecdsa-sd-2023' + ) { const {verificationMethod} = proof; const multibaseMultikeyHeader = verificationMethod.substring('did:key:'.length).slice(0, 4); diff --git a/test/mocha/mock-credentials.json b/test/mocha/mock-credentials.json index 35f3740..1cfe941 100644 --- a/test/mocha/mock-credentials.json +++ b/test/mocha/mock-credentials.json @@ -154,5 +154,149 @@ "proofPurpose": "assertionMethod", "proofValue": "zazcNJNFcU4kXM4sdBazy8z5Qmg6pjACuHnudfGj6nRgLoGNVy99f1vv6A4XEYAPFaBPUHuX4Tgdxpv3jED5aEWAreENcinDsoE2161kmuueMrToRFnJEb5Wp5F6mXdN3xXj" } + }, { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + { + "ex": "https://example.org/examples#", + "schema": "http://schema.org/", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "BachelorDegree": "ex:BachelorDegree", + "UniversityDegreeCredential": "ex:UniversityDegreeCredential", + "degree": "ex:degree", + "name": { + "@id": "schema:name", + "@type": "rdf:HTML" + } + }, + "https://w3id.org/security/data-integrity/v2" + ], + "id": "http://example.gov/credentials/3732", + "type": [ "VerifiableCredential", "UniversityDegreeCredential" ], + "issuer": "did:key:z6MktoBabwy1eGdC7Dhf8tE7TKRzk22nomnAqYh9VZv3DQ1p", + "credentialSubject": { + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "degree": { + "type": "BachelorDegree", + "name": "Bachelor of Science and Arts" + } + }, + "issuanceDate": "2023-11-09T16:00:00Z", + "proof": { + "type": "DataIntegrityProof", + "created": "2023-11-09T16:00:00Z", + "verificationMethod": "did:key:z6MktoBabwy1eGdC7Dhf8tE7TKRzk22nomnAqYh9VZv3DQ1p#z6MktoBabwy1eGdC7Dhf8tE7TKRzk22nomnAqYh9VZv3DQ1p", + "cryptosuite": "eddsa-rdfc-2022", + "proofPurpose": "assertionMethod", + "proofValue": "z4xs72qPFyVPwEnAUqs9VNtPTCEC6Y9nq3CzkGTFjxZuJ3kQXATCHGoqHK6gtGNcnBwQEwRebvy8H8BUZWGYhivES" + } + }, { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + { + "ex": "https://example.org/examples#", + "schema": "http://schema.org/", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "BachelorDegree": "ex:BachelorDegree", + "UniversityDegreeCredential": "ex:UniversityDegreeCredential", + "degree": "ex:degree", + "name": { + "@id": "schema:name", + "@type": "rdf:HTML" + } + }, + "https://w3id.org/security/data-integrity/v2" + ], + "id": "http://example.gov/credentials/3732", + "type": [ "VerifiableCredential", "UniversityDegreeCredential" ], + "issuer": "did:key:zDnaeizTtXBxgFuk1No6urNmxtZBXC27Z6RPgaGLArtF8LmX2", + "credentialSubject": { + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "degree": { + "type": "BachelorDegree", + "name": "Bachelor of Science and Arts" + } + }, + "issuanceDate": "2023-11-09T16:00:01Z", + "proof": { + "type": "DataIntegrityProof", + "created": "2023-11-09T16:00:01Z", + "verificationMethod": "did:key:zDnaeizTtXBxgFuk1No6urNmxtZBXC27Z6RPgaGLArtF8LmX2#zDnaeizTtXBxgFuk1No6urNmxtZBXC27Z6RPgaGLArtF8LmX2", + "cryptosuite": "ecdsa-rdfc-2019", + "proofPurpose": "assertionMethod", + "proofValue": "z5hubxPbarF7qeALkBzR1AWuVPKgMZYz5nEBQVwxMnV8w6J1Th6iD73fB6nPrH3u1HwCKNYb9jkznmKmC1yH1mtGg" + } + }, { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + { + "ex": "https://example.org/examples#", + "schema": "http://schema.org/", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "BachelorDegree": "ex:BachelorDegree", + "UniversityDegreeCredential": "ex:UniversityDegreeCredential", + "degree": "ex:degree", + "name": { + "@id": "schema:name", + "@type": "rdf:HTML" + } + }, + "https://w3id.org/security/data-integrity/v2" + ], + "id": "http://example.gov/credentials/3732", + "type": [ "VerifiableCredential", "UniversityDegreeCredential" ], + "issuer": "did:key:z82Lkytz3HqpWiBmt2853ZgNgNG8qVoUJnyoMvGw6ZEBktGcwUVdKpUNJHct1wvp9pXjr7Y", + "credentialSubject": { + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "degree": { + "type": "BachelorDegree", + "name": "Bachelor of Science and Arts" + } + }, + "issuanceDate": "2023-11-09T16:00:01Z", + "proof": { + "type": "DataIntegrityProof", + "created": "2023-11-09T16:00:01Z", + "verificationMethod": "did:key:z82Lkytz3HqpWiBmt2853ZgNgNG8qVoUJnyoMvGw6ZEBktGcwUVdKpUNJHct1wvp9pXjr7Y#z82Lkytz3HqpWiBmt2853ZgNgNG8qVoUJnyoMvGw6ZEBktGcwUVdKpUNJHct1wvp9pXjr7Y", + "cryptosuite": "ecdsa-rdfc-2019", + "proofPurpose": "assertionMethod", + "proofValue": "zJzP86yYYJC9Q7ZT37KxpbT1BgerusHR4rkYES6CJRWtm6sSRzVsbRVgVH3b4KfynS2UL5XAqpaM8P49VwXcUEjSdyEy9TqpDsrETBrrBVDdWBLAb32Y3FtfwiBoWDDkyzHm" + } + }, { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + { + "ex": "https://example.org/examples#", + "schema": "http://schema.org/", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "BachelorDegree": "ex:BachelorDegree", + "UniversityDegreeCredential": "ex:UniversityDegreeCredential", + "degree": "ex:degree", + "name": { + "@id": "schema:name", + "@type": "rdf:HTML" + } + }, + "https://w3id.org/security/data-integrity/v2" + ], + "id": "http://example.gov/credentials/3732", + "type": [ "VerifiableCredential", "UniversityDegreeCredential" ], + "issuer": "did:key:zDnaeXEfD1tCvJpqYzmW2jjDxRqogKqsyf389LnkognCBiE2H", + "credentialSubject": { + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "degree": { + "type": "BachelorDegree", + "name": "Bachelor of Science and Arts" + } + }, + "issuanceDate": "2023-11-09T16:00:01Z", + "proof": { + "type": "DataIntegrityProof", + "created": "2023-11-09T16:00:01Z", + "verificationMethod": "did:key:zDnaeXEfD1tCvJpqYzmW2jjDxRqogKqsyf389LnkognCBiE2H#zDnaeXEfD1tCvJpqYzmW2jjDxRqogKqsyf389LnkognCBiE2H", + "cryptosuite": "ecdsa-sd-2023", + "proofPurpose": "assertionMethod", + "proofValue": "u2V0AhVhALgIyoF9jux7NUMFJs_8qLcJ1wKh05iXH5VSD6baXG5Qf-2AwewiCL8FftP6Gy6pkptZ_dyHdz7FBltc5CePFOlgjgCQDl4kaCEYJ9o7j6ifc8d_skZbSRFAMN631xWAkSgpQ_dhYICivJBKRoc7-5bQu1Hd3b9UsU50uwtpXjc23sFkgsffuiFhA6cQ8Qgm1jAEfqKMg9hiGFW3N9H0hqXWgWpHJa-ZQ0nbQR1Xsj-0I21NvqxQPhq0v4ZJa6TJcWWyePPjqQwozd1hA2w8f2ZWmLlV8OpcLk3t2huFM0M8iNOt4Vgspl19gv0S_3cQk6qowYsHmHxXEXQRhBUEFAVl-xWdImxdpstk-glhASZSJh6cj1TjfOTTy4twpsOdk2YM0tFmXG_2Pr-gUb0zyWQCqynkoV8S_9-tvvyOTcVJ8Emlak-KoUk4wj9imYVhAsXFhDCYHs6uO2qUujXYtmwp0KkM_xUFGs_evSngmYY_1DbR0d5dhPddo3i-bpyivXGlBVA9-WD9fI3lW2Ja0s1hAuW1wbIto5fYJvmLXYg6HZoI7ZZf3YDNRaqREGOh1r-Fmi0hMiNwbaW-LFCSu3M_KXO0yWdTU6jB6w37mruMZl1hA65z-Zl0fPmqBcppz7t9L3XKiDTJNopGk4rsm6PPE1ZdsBy4gIM7YV0AENJGE8YrpHx4MvOlmatbdgvTF-rMB_1hAqKXIDj-scJI3cA3hSfQdm4hrVAtSAXEMyl-lPTweKXaKoqZTlbJUNKcks9QwPq8-I34aQAXt4gVmGdGZ7zlpC1hAHr_yDGGpfcOUG1HqXLEFUtHbYJ6h7L8S2HsGq3tF36tbeogWcDhxNAL5ZFL6AynAkZMo-npA6zzEATsjM4PaI4A" + } } ] From 18e7dc73f09be177de4b65d0b47f88b65423527f Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Sat, 11 Nov 2023 12:45:18 -0500 Subject: [PATCH 05/13] Use `@digitalbazaar/data-integrity` with `legacyContext` flag for legacy `ecdsa-2019` and `eddsa-2022` cryptosuites. --- lib/suites.js | 13 +++++++++++-- package.json | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/suites.js b/lib/suites.js index 39d61f8..af5bb6a 100644 --- a/lib/suites.js +++ b/lib/suites.js @@ -23,13 +23,16 @@ import { // DataIntegrityProof should work for multiple cryptosuites const SUPPORTED_CRYPTOSUITES = new Map([ - ['ecdsa-2019', ecdsa2019CryptoSuite], - ['eddsa-2022', eddsa2022CryptoSuite], ['ecdsa-rdfc-2019', ecdsaRdfc2019CryptoSuite], ['eddsa-rdfc-2022', eddsaRdfc2022CryptoSuite], ['ecdsa-sd-2023', createEcdsaSd2023VerifyCryptosuite()] ]); +const SUPPORTED_LEGACY_CRYPTOSUITES = new Map([ + ['ecdsa-2019', ecdsa2019CryptoSuite], + ['eddsa-2022', eddsa2022CryptoSuite], +]); + const SUPPORTED_LEGACY_SUITES = new Map([ ['Ed25519Signature2018', Ed25519Signature2018], ['Ed25519Signature2020', Ed25519Signature2020] @@ -43,6 +46,12 @@ export function createSuites() { if(LegacySuite) { return new LegacySuite(); } + const LegacyCryptosuite = SUPPORTED_LEGACY_CRYPTOSUITES.get(supportedSuite); + if(LegacyCryptosuite) { + return new DataIntegrityProof({ + cryptosuite: LegacyCryptosuite, legacyContext: true + }); + } const cryptosuite = SUPPORTED_CRYPTOSUITES.get(supportedSuite); if(cryptosuite) { return new DataIntegrityProof({cryptosuite}); diff --git a/package.json b/package.json index ae97053..6a91a27 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/digitalbazaar/bedrock-vc-verifier", "dependencies": { - "@digitalbazaar/data-integrity": "digitalbazaar/data-integrity#update-context", + "@digitalbazaar/data-integrity": "digitalbazaar/data-integrity#add-legacy-context-support", "@digitalbazaar/ecdsa-rdfc-2019-cryptosuite": "digitalbazaar/ecdsa-rdfc-2019-cryptosuite#update-name-and-tests", "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "digitalbazaar/ecdsa-sd-2023-cryptosuite#use-context-v2", "@digitalbazaar/eddsa-rdfc-2022-cryptosuite": "digitalbazaar/eddsa-rdfc-2022-cryptosuite#update-name-and-test", From fb93c228a76cb41cd1ade69e8a1df1bb6b1b1743 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Mon, 13 Nov 2023 10:34:10 -0500 Subject: [PATCH 06/13] Add missing peer dep. --- package.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 6a91a27..ff74a4c 100644 --- a/package.json +++ b/package.json @@ -25,14 +25,14 @@ }, "homepage": "https://github.com/digitalbazaar/bedrock-vc-verifier", "dependencies": { - "@digitalbazaar/data-integrity": "digitalbazaar/data-integrity#add-legacy-context-support", + "@digitalbazaar/data-integrity": "digitalbazaar/data-integrity#update-context", + "@digitalbazaar/ecdsa-2019-cryptosuite": "^2.0.0", "@digitalbazaar/ecdsa-rdfc-2019-cryptosuite": "digitalbazaar/ecdsa-rdfc-2019-cryptosuite#update-name-and-tests", "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "digitalbazaar/ecdsa-sd-2023-cryptosuite#use-context-v2", - "@digitalbazaar/eddsa-rdfc-2022-cryptosuite": "digitalbazaar/eddsa-rdfc-2022-cryptosuite#update-name-and-test", - "@digitalbazaar/ecdsa-2019-cryptosuite": "^2.0.0", "@digitalbazaar/ed25519-signature-2018": "^4.0.0", "@digitalbazaar/ed25519-signature-2020": "^5.0.0", "@digitalbazaar/eddsa-2022-cryptosuite": "^1.0.0", + "@digitalbazaar/eddsa-rdfc-2022-cryptosuite": "digitalbazaar/eddsa-rdfc-2022-cryptosuite#update-name-and-test", "@digitalbazaar/vc": "^6.0.0", "@digitalbazaar/vc-revocation-list": "^6.0.0", "@digitalbazaar/vc-status-list": "^7.0.0", @@ -43,6 +43,7 @@ "serialize-error": "^11.0.0" }, "peerDependencies": { + "@bedrock/app-identity": "^4.0.0", "@bedrock/core": "^6.0.1", "@bedrock/credentials-context": "^4.0.0", "@bedrock/data-integrity-context": "digitalbazaar/bedrock-data-integrity-context#use-data-integrity-v2-context", From 96ed2573350f913a7b9cf79c02503d839d8388de Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Mon, 13 Nov 2023 10:38:40 -0500 Subject: [PATCH 07/13] Update tests to get reveal document if cryptosuite is `ecdsa-sd-2023`. --- test/mocha/20-verify.js | 41 ++++++++++++++++++++++++++++++++++++++--- test/package.json | 4 ++++ 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/test/mocha/20-verify.js b/test/mocha/20-verify.js index 1d70bcf..e6b62b3 100644 --- a/test/mocha/20-verify.js +++ b/test/mocha/20-verify.js @@ -7,9 +7,14 @@ import {driver as _didKeyDriver} from '@digitalbazaar/did-method-key'; import {agent} from '@bedrock/https-agent'; import {documentLoader as brDocLoader} from '@bedrock/jsonld-document-loader'; import {CapabilityAgent} from '@digitalbazaar/webkms-client'; +import { + createDiscloseCryptosuite as createEcdsaSd2023DiscloseCryptosuite +} from '@digitalbazaar/ecdsa-sd-2023-cryptosuite'; import {createRequire} from 'node:module'; +import {DataIntegrityProof} from '@digitalbazaar/data-integrity'; import {Ed25519Signature2020} from '@digitalbazaar/ed25519-signature-2020'; import {httpClient} from '@digitalbazaar/http-client'; +import jsigs from 'jsonld-signatures'; import {klona} from 'klona'; import {mockData} from './mock.data.js'; @@ -25,6 +30,8 @@ const didKeyDriver = _didKeyDriver(); const mockCredentials = require('./mock-credentials.json'); const mockExpiredCredential = require('./mock-expired-credential.json'); +const {purposes: {AssertionProofPurpose}} = jsigs; + describe('verify APIs', () => { let capabilityAgent; let verifierConfig; @@ -136,8 +143,22 @@ describe('verify APIs', () => { description = `${type}`; } describe(description, () => { - it('verifies a valid credential', async () => { - const verifiableCredential = klona(mockCredential); + it.only('verifies a valid credential', async () => { + let verifiableCredential = klona(mockCredential); + if(cryptosuite === 'ecdsa-sd-2023') { + const cryptosuite = createEcdsaSd2023DiscloseCryptosuite({ + selectivePointers: [ + '/credentialSubject/id' + ] + }); + const suite = new DataIntegrityProof({cryptosuite}); + const revealed = await jsigs.derive(verifiableCredential, { + suite, + purpose: new AssertionProofPurpose(), + documentLoader: brDocLoader + }); + verifiableCredential = revealed; + } let error; let result; try { @@ -417,7 +438,21 @@ describe('verify APIs', () => { const signingKey = methodFor({purpose: 'assertionMethod'}); const suite = new Ed25519Signature2020({key: signingKey}); - const verifiableCredential = klona(mockCredential); + let verifiableCredential = klona(mockCredential); + if(cryptosuite === 'ecdsa-sd-2023') { + const cryptosuite = createEcdsaSd2023DiscloseCryptosuite({ + selectivePointers: [ + '/credentialSubject/id' + ] + }); + const suite = new DataIntegrityProof({cryptosuite}); + const revealed = await jsigs.derive(verifiableCredential, { + suite, + purpose: new AssertionProofPurpose(), + documentLoader: brDocLoader + }); + verifiableCredential = revealed; + } const presentation = vc.createPresentation({ holder: 'did:test:foo', id: 'urn:uuid:3e793029-d699-4096-8e74-5ebd956c3137', diff --git a/test/package.json b/test/package.json index de7f816..816fdb2 100644 --- a/test/package.json +++ b/test/package.json @@ -49,9 +49,12 @@ "@bedrock/vc-verifier": "file:..", "@bedrock/veres-one-context": "^15.0.0", "@bedrock/zcap-storage": "^8.0.0", + "@digitalbazaar/data-integrity": "digitalbazaar/data-integrity#update-context", "@digitalbazaar/did-method-key": "^3.0.0", + "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "digitalbazaar/ecdsa-sd-2023-cryptosuite#use-context-v2", "@digitalbazaar/ed25519-signature-2020": "^5.0.0", "@digitalbazaar/ed25519-verification-key-2020": "^4.0.0", + "@digitalbazaar/eddsa-rdfc-2022-cryptosuite": "digitalbazaar/eddsa-rdfc-2022-cryptosuite#update-name-and-test", "@digitalbazaar/edv-client": "^16.0.0", "@digitalbazaar/ezcap": "^4.0.0", "@digitalbazaar/http-client": "^4.0.0", @@ -62,6 +65,7 @@ "cross-env": "^7.0.3", "express": "^4.18.1", "jose": "^4.8.3", + "jsonld-signatures": "^11.2.1", "klona": "^2.0.5", "vc-revocation-list-context": "^1.0.0" }, From ad09cf6acd367b1521abb8fcb96481479567fb0e Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Mon, 13 Nov 2023 11:24:40 -0500 Subject: [PATCH 08/13] Update test signed credential for `ecdsa-sd-2023`. --- test/mocha/20-verify.js | 2 +- test/mocha/mock-credentials.json | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/test/mocha/20-verify.js b/test/mocha/20-verify.js index e6b62b3..1b052c3 100644 --- a/test/mocha/20-verify.js +++ b/test/mocha/20-verify.js @@ -143,7 +143,7 @@ describe('verify APIs', () => { description = `${type}`; } describe(description, () => { - it.only('verifies a valid credential', async () => { + it('verifies a valid credential', async () => { let verifiableCredential = klona(mockCredential); if(cryptosuite === 'ecdsa-sd-2023') { const cryptosuite = createEcdsaSd2023DiscloseCryptosuite({ diff --git a/test/mocha/mock-credentials.json b/test/mocha/mock-credentials.json index 1cfe941..4692711 100644 --- a/test/mocha/mock-credentials.json +++ b/test/mocha/mock-credentials.json @@ -280,8 +280,11 @@ "https://w3id.org/security/data-integrity/v2" ], "id": "http://example.gov/credentials/3732", - "type": [ "VerifiableCredential", "UniversityDegreeCredential" ], - "issuer": "did:key:zDnaeXEfD1tCvJpqYzmW2jjDxRqogKqsyf389LnkognCBiE2H", + "type": [ + "VerifiableCredential", + "UniversityDegreeCredential" + ], + "issuer": "did:key:zDnaeae9Pukcgvt4qpujW3YRkiAUzTicVfuFY5Vbjxqdruo82", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { @@ -289,14 +292,14 @@ "name": "Bachelor of Science and Arts" } }, - "issuanceDate": "2023-11-09T16:00:01Z", + "issuanceDate": "2023-11-13T16:16:18Z", "proof": { "type": "DataIntegrityProof", - "created": "2023-11-09T16:00:01Z", - "verificationMethod": "did:key:zDnaeXEfD1tCvJpqYzmW2jjDxRqogKqsyf389LnkognCBiE2H#zDnaeXEfD1tCvJpqYzmW2jjDxRqogKqsyf389LnkognCBiE2H", + "created": "2023-11-13T16:16:18Z", + "verificationMethod": "did:key:zDnaeae9Pukcgvt4qpujW3YRkiAUzTicVfuFY5Vbjxqdruo82#zDnaeae9Pukcgvt4qpujW3YRkiAUzTicVfuFY5Vbjxqdruo82", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", - "proofValue": "u2V0AhVhALgIyoF9jux7NUMFJs_8qLcJ1wKh05iXH5VSD6baXG5Qf-2AwewiCL8FftP6Gy6pkptZ_dyHdz7FBltc5CePFOlgjgCQDl4kaCEYJ9o7j6ifc8d_skZbSRFAMN631xWAkSgpQ_dhYICivJBKRoc7-5bQu1Hd3b9UsU50uwtpXjc23sFkgsffuiFhA6cQ8Qgm1jAEfqKMg9hiGFW3N9H0hqXWgWpHJa-ZQ0nbQR1Xsj-0I21NvqxQPhq0v4ZJa6TJcWWyePPjqQwozd1hA2w8f2ZWmLlV8OpcLk3t2huFM0M8iNOt4Vgspl19gv0S_3cQk6qowYsHmHxXEXQRhBUEFAVl-xWdImxdpstk-glhASZSJh6cj1TjfOTTy4twpsOdk2YM0tFmXG_2Pr-gUb0zyWQCqynkoV8S_9-tvvyOTcVJ8Emlak-KoUk4wj9imYVhAsXFhDCYHs6uO2qUujXYtmwp0KkM_xUFGs_evSngmYY_1DbR0d5dhPddo3i-bpyivXGlBVA9-WD9fI3lW2Ja0s1hAuW1wbIto5fYJvmLXYg6HZoI7ZZf3YDNRaqREGOh1r-Fmi0hMiNwbaW-LFCSu3M_KXO0yWdTU6jB6w37mruMZl1hA65z-Zl0fPmqBcppz7t9L3XKiDTJNopGk4rsm6PPE1ZdsBy4gIM7YV0AENJGE8YrpHx4MvOlmatbdgvTF-rMB_1hAqKXIDj-scJI3cA3hSfQdm4hrVAtSAXEMyl-lPTweKXaKoqZTlbJUNKcks9QwPq8-I34aQAXt4gVmGdGZ7zlpC1hAHr_yDGGpfcOUG1HqXLEFUtHbYJ6h7L8S2HsGq3tF36tbeogWcDhxNAL5ZFL6AynAkZMo-npA6zzEATsjM4PaI4A" + "proofValue": "u2V0AhVhA-UK_bOU0e2DA3c5r3cco0Kuu34goHJhvoTxsKD2W8Jem4kakt-HYp8rZV964ezbY_8IkM9-mxLoN47ezlULuVlgjgCQD7E08QvwTTdSrg1sKEelSAjKUMMByA7s5LFAU_GRhIPhYIEavfkfRWBON6-TTUv7uVFg9AfBEGkE68WURdnkYJanehFhA4i_6F8q3eO4Tg519PO7bUYseBnOknfZCipavkgZEA3CNmzycgKg_X7x_wJyoycAzHra5mEy-C9fzQoSEDDhsaVhAznTsYehBmujUAUAUAmZr7QnVb0pHmB8SuFCPoBP-uRlbab_0CdaUkl4tDGhX_sS2p3sFcPQVyg7UAAuhL7JoG1hAZfHOKpQCe6bUmmfLDI4RnhAyXsNx2l6XGEvyIGGxVlEqQUFhCIamtH61OUSoBC5RE2gNJRpF80-cE3iYj_V6aVhAUvn-Lkf2uL-zIT4fMb3Ti-yELF5snZlzafoAL-3KqJhhd3M1ky0tKCwT7Luv0n806cVznmIKnzP3nuy_QfL9-IJnL2lzc3Vlcm0vaXNzdWFuY2VEYXRl" } } ] From 5f5ef428c5e27bfbd8b8690e4eda228026822403 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Mon, 13 Nov 2023 11:34:01 -0500 Subject: [PATCH 09/13] Remove unused test deps. --- test/package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/package.json b/test/package.json index 816fdb2..c44f54e 100644 --- a/test/package.json +++ b/test/package.json @@ -28,13 +28,11 @@ "@bedrock/jsonld-document-loader": "^4.0.0", "@bedrock/kms": "^14.0.0", "@bedrock/kms-http": "^18.0.0", - "@bedrock/ledger-context": "^24.0.0", "@bedrock/meter": "^5.0.0", "@bedrock/meter-http": "^12.0.0", "@bedrock/meter-usage-reporter": "^9.0.0", "@bedrock/mongodb": "^10.0.0", "@bedrock/multikey-context": "^2.0.0", - "@bedrock/oauth2-verifier": "^2.0.0", "@bedrock/package-manager": "^3.0.0", "@bedrock/security-context": "^8.0.0", "@bedrock/server": "^5.0.0", @@ -54,7 +52,6 @@ "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "digitalbazaar/ecdsa-sd-2023-cryptosuite#use-context-v2", "@digitalbazaar/ed25519-signature-2020": "^5.0.0", "@digitalbazaar/ed25519-verification-key-2020": "^4.0.0", - "@digitalbazaar/eddsa-rdfc-2022-cryptosuite": "digitalbazaar/eddsa-rdfc-2022-cryptosuite#update-name-and-test", "@digitalbazaar/edv-client": "^16.0.0", "@digitalbazaar/ezcap": "^4.0.0", "@digitalbazaar/http-client": "^4.0.0", From a1f8b1a6440d14783c93a9fa1c25d6ec5acea705 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Mon, 13 Nov 2023 11:46:28 -0500 Subject: [PATCH 10/13] Add changelog entry. --- CHANGELOG.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf27dc6..66aa445 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # bedrock-vc-verifier ChangeLog +## 19.0.0 - 2023-11-TBD + +### Added +- Add support for verifying vcs with `ecdsa-sd-2023`, `ecdsa-rdfc-2019` and + `eddsa-rdfc-2022` signatures. +- Add missing peer dep `@bedrock/app-identity` v4.0. + +### Changed +- **BREAKING**: Update `@bedrock/data-integrity-context` peer dep to v3.0 that + uses `@digitalbazaar/data-integrity@2.0`. +- Use `@digitalbazaar/data-integrity@2.0`. Adds `legacyContext` flag to allow + use of legacy context and updates default context URL to + `https://w3id.org/security/data-integrity/v2`. + +### Removed +- Removed unused test deps `@bedrock/ledger-context@24.0` and + `@bedrock/oauth2-verifier@2.0`. + ## 18.1.0 - 2023-11-06 ### Added From 2a64f1ff4208f90deb2088a33f29f03452ca8dc4 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Mon, 13 Nov 2023 18:40:39 -0500 Subject: [PATCH 11/13] Update `ecdsa-sd-2023` test credential. --- test/mocha/mock-credentials.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/mocha/mock-credentials.json b/test/mocha/mock-credentials.json index 4692711..9ca17b4 100644 --- a/test/mocha/mock-credentials.json +++ b/test/mocha/mock-credentials.json @@ -284,7 +284,7 @@ "VerifiableCredential", "UniversityDegreeCredential" ], - "issuer": "did:key:zDnaeae9Pukcgvt4qpujW3YRkiAUzTicVfuFY5Vbjxqdruo82", + "issuer": "did:key:zDnaeo2xFZXCN6rYcP8pnzZHNHHfDhdUPoJr1SsAnrjJ2NTfr", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { @@ -292,14 +292,15 @@ "name": "Bachelor of Science and Arts" } }, - "issuanceDate": "2023-11-13T16:16:18Z", + "issuanceDate": "2023-11-13T23:37:40Z", "proof": { + "id": "urn:uuid:61546421-352c-4fb0-8d30-a3bde6885118", "type": "DataIntegrityProof", - "created": "2023-11-13T16:16:18Z", - "verificationMethod": "did:key:zDnaeae9Pukcgvt4qpujW3YRkiAUzTicVfuFY5Vbjxqdruo82#zDnaeae9Pukcgvt4qpujW3YRkiAUzTicVfuFY5Vbjxqdruo82", + "created": "2023-11-13T23:37:40Z", + "verificationMethod": "did:key:zDnaeo2xFZXCN6rYcP8pnzZHNHHfDhdUPoJr1SsAnrjJ2NTfr#zDnaeo2xFZXCN6rYcP8pnzZHNHHfDhdUPoJr1SsAnrjJ2NTfr", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", - "proofValue": "u2V0AhVhA-UK_bOU0e2DA3c5r3cco0Kuu34goHJhvoTxsKD2W8Jem4kakt-HYp8rZV964ezbY_8IkM9-mxLoN47ezlULuVlgjgCQD7E08QvwTTdSrg1sKEelSAjKUMMByA7s5LFAU_GRhIPhYIEavfkfRWBON6-TTUv7uVFg9AfBEGkE68WURdnkYJanehFhA4i_6F8q3eO4Tg519PO7bUYseBnOknfZCipavkgZEA3CNmzycgKg_X7x_wJyoycAzHra5mEy-C9fzQoSEDDhsaVhAznTsYehBmujUAUAUAmZr7QnVb0pHmB8SuFCPoBP-uRlbab_0CdaUkl4tDGhX_sS2p3sFcPQVyg7UAAuhL7JoG1hAZfHOKpQCe6bUmmfLDI4RnhAyXsNx2l6XGEvyIGGxVlEqQUFhCIamtH61OUSoBC5RE2gNJRpF80-cE3iYj_V6aVhAUvn-Lkf2uL-zIT4fMb3Ti-yELF5snZlzafoAL-3KqJhhd3M1ky0tKCwT7Luv0n806cVznmIKnzP3nuy_QfL9-IJnL2lzc3Vlcm0vaXNzdWFuY2VEYXRl" + "proofValue": "u2V0AhVhAq8EBDGUSr8kIvdPawqmm8iEU0Adx6JP95a78yJXflyH6ItrdzHzLD7tbcLKVtBFf8md2AiRLEHlouvrjHMvGclgjgCQC0i6QhqBRCpio-5uv6pTQU-whdipvW0indlGrM82sy5VYICxR52p1dfygQ2Yxwc0I9DKbM-jXaLG7aFc4UYqQirVKhFhAEO5Y5aXCFbhrpoHsPuBEqHm9pf3otKPxDoGzraHoPUZ1wmsxJmV1QCFs7Xd_Ep3rqXDPJ7fGCkO7X69m_MwB_FhA5WhsP1oUAgvu-Ix-tmjUos6TkUb9--jn_tdpF0BHSWuSZkhbIohlS6SIKsxDeAPQX09yMC95kbmXNKaXIVr_F1hAIm0j5WB_FaJS1PUXSANSqz5ogjCpZUFEdAQvN3dwZh7AoTsAwmeo8yXBzFIxGyw9Zn4n6zhvq14EctX2rBZ8WFhAsP-KGVsXxFz0CLU_Kz4ckWIBqreCUbbIocc5EZ27FGvc3szjOXMeGWKMXoDab1Wd-JUTWt7HxXiMfhouVVKqk4JnL2lzc3Vlcm0vaXNzdWFuY2VEYXRl" } } ] From fd3bbbe89cb8374622ab366d4c0b70df22620185 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Mon, 13 Nov 2023 18:52:41 -0500 Subject: [PATCH 12/13] Update packages to released versions and undo removal of test packages. --- CHANGELOG.md | 4 ---- package.json | 10 +++++----- test/package.json | 8 +++++--- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66aa445..68ba2d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,10 +14,6 @@ use of legacy context and updates default context URL to `https://w3id.org/security/data-integrity/v2`. -### Removed -- Removed unused test deps `@bedrock/ledger-context@24.0` and - `@bedrock/oauth2-verifier@2.0`. - ## 18.1.0 - 2023-11-06 ### Added diff --git a/package.json b/package.json index ff74a4c..5fca65d 100644 --- a/package.json +++ b/package.json @@ -25,14 +25,14 @@ }, "homepage": "https://github.com/digitalbazaar/bedrock-vc-verifier", "dependencies": { - "@digitalbazaar/data-integrity": "digitalbazaar/data-integrity#update-context", + "@digitalbazaar/data-integrity": "^2.0.0", "@digitalbazaar/ecdsa-2019-cryptosuite": "^2.0.0", - "@digitalbazaar/ecdsa-rdfc-2019-cryptosuite": "digitalbazaar/ecdsa-rdfc-2019-cryptosuite#update-name-and-tests", - "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "digitalbazaar/ecdsa-sd-2023-cryptosuite#use-context-v2", + "@digitalbazaar/ecdsa-rdfc-2019-cryptosuite": "^1.0.1", + "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "^3.0.0", "@digitalbazaar/ed25519-signature-2018": "^4.0.0", "@digitalbazaar/ed25519-signature-2020": "^5.0.0", "@digitalbazaar/eddsa-2022-cryptosuite": "^1.0.0", - "@digitalbazaar/eddsa-rdfc-2022-cryptosuite": "digitalbazaar/eddsa-rdfc-2022-cryptosuite#update-name-and-test", + "@digitalbazaar/eddsa-rdfc-2022-cryptosuite": "^1.0.1", "@digitalbazaar/vc": "^6.0.0", "@digitalbazaar/vc-revocation-list": "^6.0.0", "@digitalbazaar/vc-status-list": "^7.0.0", @@ -46,7 +46,7 @@ "@bedrock/app-identity": "^4.0.0", "@bedrock/core": "^6.0.1", "@bedrock/credentials-context": "^4.0.0", - "@bedrock/data-integrity-context": "digitalbazaar/bedrock-data-integrity-context#use-data-integrity-v2-context", + "@bedrock/data-integrity-context": "^3.0.0", "@bedrock/did-context": "^5.0.0", "@bedrock/did-io": "^10.1.0", "@bedrock/express": "^8.0.0", diff --git a/test/package.json b/test/package.json index c44f54e..58fdaa1 100644 --- a/test/package.json +++ b/test/package.json @@ -19,7 +19,7 @@ "@bedrock/app-identity": "^4.0.0", "@bedrock/core": "^6.0.1", "@bedrock/credentials-context": "^4.0.0", - "@bedrock/data-integrity-context": "digitalbazaar/bedrock-data-integrity-context#use-data-integrity-v2-context", + "@bedrock/data-integrity-context": "^3.0.0", "@bedrock/did-context": "^5.0.0", "@bedrock/did-io": "^10.1.0", "@bedrock/edv-storage": "^18.0.0", @@ -28,11 +28,13 @@ "@bedrock/jsonld-document-loader": "^4.0.0", "@bedrock/kms": "^14.0.0", "@bedrock/kms-http": "^18.0.0", + "@bedrock/ledger-context": "^24.0.0", "@bedrock/meter": "^5.0.0", "@bedrock/meter-http": "^12.0.0", "@bedrock/meter-usage-reporter": "^9.0.0", "@bedrock/mongodb": "^10.0.0", "@bedrock/multikey-context": "^2.0.0", + "@bedrock/oauth2-verifier": "^2.0.2", "@bedrock/package-manager": "^3.0.0", "@bedrock/security-context": "^8.0.0", "@bedrock/server": "^5.0.0", @@ -47,9 +49,9 @@ "@bedrock/vc-verifier": "file:..", "@bedrock/veres-one-context": "^15.0.0", "@bedrock/zcap-storage": "^8.0.0", - "@digitalbazaar/data-integrity": "digitalbazaar/data-integrity#update-context", + "@digitalbazaar/data-integrity": "^2.0.0", "@digitalbazaar/did-method-key": "^3.0.0", - "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "digitalbazaar/ecdsa-sd-2023-cryptosuite#use-context-v2", + "@digitalbazaar/ecdsa-sd-2023-cryptosuite": "^3.0.0", "@digitalbazaar/ed25519-signature-2020": "^5.0.0", "@digitalbazaar/ed25519-verification-key-2020": "^4.0.0", "@digitalbazaar/edv-client": "^16.0.0", From bdd10b0a098fd326021f6c19b558e677a27552c3 Mon Sep 17 00:00:00 2001 From: Tashi D Gyeltshen Date: Mon, 13 Nov 2023 19:19:33 -0500 Subject: [PATCH 13/13] Use `vc.derive()` instead of `jsigs.derive()`. --- test/mocha/20-verify.js | 15 ++++++--------- test/package.json | 3 +-- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/test/mocha/20-verify.js b/test/mocha/20-verify.js index 1b052c3..0c57745 100644 --- a/test/mocha/20-verify.js +++ b/test/mocha/20-verify.js @@ -14,7 +14,6 @@ import {createRequire} from 'node:module'; import {DataIntegrityProof} from '@digitalbazaar/data-integrity'; import {Ed25519Signature2020} from '@digitalbazaar/ed25519-signature-2020'; import {httpClient} from '@digitalbazaar/http-client'; -import jsigs from 'jsonld-signatures'; import {klona} from 'klona'; import {mockData} from './mock.data.js'; @@ -30,8 +29,6 @@ const didKeyDriver = _didKeyDriver(); const mockCredentials = require('./mock-credentials.json'); const mockExpiredCredential = require('./mock-expired-credential.json'); -const {purposes: {AssertionProofPurpose}} = jsigs; - describe('verify APIs', () => { let capabilityAgent; let verifierConfig; @@ -152,12 +149,12 @@ describe('verify APIs', () => { ] }); const suite = new DataIntegrityProof({cryptosuite}); - const revealed = await jsigs.derive(verifiableCredential, { + const derivedVC = await vc.derive({ + verifiableCredential, suite, - purpose: new AssertionProofPurpose(), documentLoader: brDocLoader }); - verifiableCredential = revealed; + verifiableCredential = derivedVC; } let error; let result; @@ -446,12 +443,12 @@ describe('verify APIs', () => { ] }); const suite = new DataIntegrityProof({cryptosuite}); - const revealed = await jsigs.derive(verifiableCredential, { + const derivedVC = await vc.derive({ + verifiableCredential, suite, - purpose: new AssertionProofPurpose(), documentLoader: brDocLoader }); - verifiableCredential = revealed; + verifiableCredential = derivedVC; } const presentation = vc.createPresentation({ holder: 'did:test:foo', diff --git a/test/package.json b/test/package.json index 58fdaa1..51a8456 100644 --- a/test/package.json +++ b/test/package.json @@ -57,14 +57,13 @@ "@digitalbazaar/edv-client": "^16.0.0", "@digitalbazaar/ezcap": "^4.0.0", "@digitalbazaar/http-client": "^4.0.0", - "@digitalbazaar/vc": "^6.0.0", + "@digitalbazaar/vc": "^6.1.0", "@digitalbazaar/vc-status-list-context": "^3.0.1", "@digitalbazaar/webkms-client": "^13.0.0", "c8": "^7.11.3", "cross-env": "^7.0.3", "express": "^4.18.1", "jose": "^4.8.3", - "jsonld-signatures": "^11.2.1", "klona": "^2.0.5", "vc-revocation-list-context": "^1.0.0" },