diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c934f6c..40aa34c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,11 +8,11 @@ jobs: timeout-minutes: 10 strategy: matrix: - node-version: [16.x] + node-version: [20.x] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - run: npm install --legacy-peer-deps @@ -24,11 +24,11 @@ jobs: timeout-minutes: 10 strategy: matrix: - node-version: [16.x] + node-version: [20.x] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - run: npm install --legacy-peer-deps diff --git a/CHANGELOG.md b/CHANGELOG.md index 5765392..8ea9144 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,14 @@ -# isomorphic-js-lib-template Changelog +# vc-test-suite-implementations Changelog + +## 2.0.0 - 2023-12-11 + +### Changed +- Update `README.md` to add additional information about requirements for + opting into a test suite. + +### Removed +- Remove tags for `ecdsa`, `eddsa`, `ed25519signature2020`, and `vc2.0` test + suites that are not associated with this implementations repo. ## 1.0.1 - 2023-12-07 diff --git a/README.md b/README.md index e64413b..3607281 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,12 @@ -# VC API Test Suite Implementations _(vc-api-test-suite-implementations)_ +# VC Test Suite Implementations _(vc-test-suite-implementations)_ -[![Build status](https://img.shields.io/github/workflow/status/w3c-ccg/vc-api-test-suite-implementations/Node.js%20CI)](https://github.com/w3c-ccg/vc-api-test-suite-implementations/actions?query=workflow%3A%22Node.js+CI%22) -[![Coverage status](https://img.shields.io/codecov/c/github/w3c-ccg/vc-api-test-suite-implementations)](https://codecov.io/gh/w3c-ccg/vc-api-test-suite-implementations) -[![NPM Version](https://img.shields.io/npm/v/@digitalcredentials/vc-api-test-suite-implementations.svg)](https://npm.im/@digitalcredentials/vc-api-test-suite-implementations) +[![Build status](https://img.shields.io/github/workflow/status/w3c-ccg/vc-test-suite-implementations/Node.js%20CI)](https://github.com/w3c-ccg/vc-test-suite-implementations/actions?query=workflow%3A%22Node.js+CI%22) > Implementations list used across various W3C CCG test suites. ## Table of Contents -- [VC API Test Suite Implementations _(vc-api-test-suite-implementations)_](#vc-api-test-suite-implementations-vc-api-test-suite-implementations) +- [VC Test Suite Implementations _(vc-test-suite-implementations)_](#vc-test-suite-implementations-vc-test-suite-implementations) - [Table of Contents](#table-of-contents) - [Background](#background) - [Security](#security) @@ -16,30 +14,32 @@ - [NPM](#npm) - [Development](#development) - [Usage](#usage) - - [Adding a new implementation](#adding-a-new-implementation) - - [Testing locally](#testing-locally) - - [Tags](#tags) + - [Adding a new implementation](#adding-a-new-implementation) + - [Testing locally](#testing-locally) + - [Opting into a Test Suite](#opting-into-a-test-suite) - [Contribute](#contribute) - [License](#license) ## Background -Implementations added to this package are tested against various test suites in order to demonstrate interoperability. +Implementations added to this package are tested against various test suites +in order to demonstrate interoperability. ## Security -Please do not commit any sensitive materials such as oauth2 client secret or client secrets used for signing zcaps or HTTP Signature Headers. +Please do not commit any sensitive materials such as oauth2 client secret or +client secrets used for signing zcaps or HTTP Signature Headers. ## Install -- Node.js 16+ is required. +- Node.js 18+ is required. ### NPM To install via NPM: ``` -npm install w3c-ccg/vc-api-test-suite-implementations +npm install w3c-ccg/vc-test-suite-implementations ``` ### Development @@ -47,15 +47,15 @@ npm install w3c-ccg/vc-api-test-suite-implementations To install locally (for development): ``` -git clone https://github.com/w3c-ccg/vc-api-test-suite-implementations.git -cd vc-api-test-suite-implementations +git clone https://github.com/w3c-ccg/vc-test-suite-implementations.git +cd vc-test-suite-implementations npm install ``` ## Usage -#### Adding a new implementation +### Adding a new implementation Please add implementations to the `./implementations` directory. Implementation configuration files are expressed in JSON and use roughly the following form: @@ -91,18 +91,21 @@ following form: } ``` -Please note: implementations may have security using oauth2 or zcaps, but not both. -Implementations may also contain no security (do not add a OAUTH2 or ZCAP section in that case). +Please note: implementations may have security using oauth2 or zcaps, but not +both. +Implementations may also contain no security (do not add a OAUTH2 or ZCAP +section in that case). -#### Testing locally +### Testing locally -If you need to add implementations for endpoints running locally you may add a config file in the root dir of your test project: +If you need to test implementations for endpoints running locally, create a +config file in the root dir of the test suite: ``` .vcApiTestImplementationsConfig.cjs ``` -That file must be a common js module that exports an array of implementations: +This file must be a CommonJS module that exports an array of implementations: ```js // file .vcApiTestImplementationsConfig.cjs @@ -122,28 +125,116 @@ module.exports = [{ }]; ``` -### Tags -Tags tell the test suites which tests should be run on your issuer, verifier, -and status lists. +To run the tests only against the localhost implementation, update the test +suite to filter implementations using the specified tag in your config file. -* `vc-api` - This tag will run the [vc-api-issuer tests](https://github.com/w3c-ccg/vc-api-issuer-test-suite) on your issuer and the [vc-api-verifier tests](https://github.com/w3c-ccg/vc-api-verifier-test-suite) on your verifier. +For instance, if your `.vcApiTestImplementationsConfig.cjs` looks like above +in the `vc-api-issuer-test-suite`, you can adjust the +[tag](https://github.com/w3c-ccg/vc-api-issuer-test-suite/blob/main/tests/10-issuer.js#L14) +to filter the implementation by `localhost` rather than `vc-api` and +then run the tests. -* `Ed25519Signature2020` - This tag will run the [Ed25519 tests](https://github.com/w3c/vc-di-ed25519signature2020-test-suite) on your issuer and/or verifier. +### Opting into a Test Suite -* `StatusList2021` - This tag will run the [Status List 2021 tests](https://github.com/w3c-ccg/status-list-2021-test-suite) on your issuer and/or verifier. +Please Note: -* `did-key` - This tag will run the [DID Key Test Suite](https://github.com/w3c-ccg/did-key-test-suite) on your DID resolver endpoint. +1. Tags serve as identifiers to determine which test suites to run on your +issuers and verifiers. The first issuer/verifier found with a specific +tag from your list will be run against the test suite, while subsequent issuers +and verifiers bearing the same tag won't. This applies to most of the test +suites associated with this implementations repository listed below. -* `ecdsa-rdfc-2019` or `ecdsa-sd-2023` - These tags will run the -[VC Data Integrity ECDSA Test Suite](https://github.com/w3c/vc-di-ecdsa-test-suite) -on your issuer and verifier endpoints. - * Alongside this cryptosuite tag, you must also specify the `supportedEcdsaKeyTypes` - key parallel to `tags` listing the ECDSA key types that your implementation issues or - can verify. Currently, the test suite supports `P-256` and `P-384` ECDSA key types. +For instance, if you have added the tag `vc-api` to all your issuers and +verifiers to run them with vc api issuer and verifier test suites, only the +first match will be used in the test suites. In the sample configuration below, +only the issuer and verifier with the IDs +https://product.example.com/issuers/z1AEwLo7tZ3TrsPgRcgLJqQvR and +https://product.example.com/verifiers/z1AEwLo7tZ3TrsPgRcgLJqQvR will be selected. +Therefore, please avoid adding duplicate tags. -* `eddsa-rdfc-2022` - This tag will run the [VC Data Integrity EDDSA Test Suite](https://github.com/w3c/vc-di-eddsa-test-suite) on your issuer and verifier endpoints. +Example +```js +// Only the first match https://product.example.com/issuers/z1AEwLo7tZ3TrsPgRcgLJqQvR +// and https://product.example.com/verifiers/z1AEwLo7tZ3TrsPgRcgLJqQvR will be +// run against the VC API issuer and verifier test suites. +{ + "issuers": [{ + "id": "https://product.example.com/issuers/z1AEwLo7tZ3TrsPgRcgLJqQvR", + "endpoint": "https://product.example.com/issuers/z1AEwLo7tZ3TrsPgRcgLJqQvR/credentials/issue", + "tags": ["vc-api"] + }, { + "id": "https://product.example.com/issuers/z4Rq7N1lT6zVwFgXk8JYdCcKpU", + "endpoint": "https://product.example.com/issuers/z4Rq7N1lT6zVwFgXk8JYdCcKpU/credentials/issue", + "tags": ["vc-api"] + }], + "verifiers": [{ + "id": "https://product.example.com/verifiers/z1AEwLo7tZ3TrsPgRcgLJqQvR", + "endpoint": "https://product.example.com/verifiers/z1AEwLo7tZ3TrsPgRcgLJqQvR/credentials/verify", + "tags": ["vc-api"] + }, { + "id": "https://product.example.com/verifiers/z4Rq7N1lT6zVwFgXk8JYdCcKpU", + "endpoint": "https://product.example.com/verifiers/z4Rq7N1lT6zVwFgXk8JYdCcKpU/credentials/verify", + "tags": ["vc-api"] + }] +} +``` + +2. If you want your issuer or verifier to run against multiple test suites, you +can assign multiple tags to them, eliminating the need for redundant entries. +For instance, if an issuer with the ID +https://product.example.com/issuers/z1AEwLo7tZ3TrsPgRcgLJqQvR can be run with +both the Status List 2021 and VC API test suites, a single entry with +multiple tags can be used. This consolidated entry, containing tags for +both VC API and Status List 2021 test suites, ensures that the issuer and +the verifier will be run against both test suites. Here is an example of how to +structure the entry: + +For Example: +```js +{ + "issuers": [{ + "id": "https://product.example.com/issuers/z4Rq7N1lT6zVwFgXk8JYdCcKpU", + "endpoint": "https://product.example.com/issuers/z4Rq7N1lT6zVwFgXk8JYdCcKpU/credentials/issue", + "tags": ["vc-api", "StatusList2021", "Suspension"] + }], + "verifiers": [{ + "id": "https://product.example.com/verifiers/z4Rq7N1lT6zVwFgXk8JYdCcKpU", + "endpoint": "https://product.example.com/verifiers/z4Rq7N1lT6zVwFgXk8JYdCcKpU/credentials/verify", + "tags": ["vc-api"] + }] +} +``` + +#### VC API Issuer and Verifier Test Suites + +* `vc-api` - This tag will run the [vc-api-issuer tests](https://github.com/w3c-ccg/vc-api-issuer-test-suite) +on your issuer and the [vc-api-verifier tests](https://github.com/w3c-ccg/vc-api-verifier-test-suite) +on your verifier. + +NOTE: Currently the vc api verifier test suite uses `Ed25519Signature2020` as +the default signature for the mock VCs that are sent to the verifiers since it +is most widely implemented. So, the verifier you add for `vc-api` must support +verification of VCs with `Ed25519Signature2020` signature to pass verification +tests. + +#### Status List 2021 Test Suite + +* `StatusList2021` and `Revocation`/`Suspension`- Combining the `StatusList2021` +tag with `Revocation` or `Suspension` tags will run the +[Status List 2021 tests](https://github.com/w3c-ccg/status-list-2021-test-suite) +on your issuer and/or verifier. + * Adding the `Revocation` tag alongside `StatusList2021` runs tests for + issuers or verifiers issuing/verifying VCs with the revocation status purpose. + * Adding the `Suspension` tag alongside `StatusList2021` runs tests for + issuers or verifiers issuing/verifying VCs with the suspension status purpose. + * Note: To update the status of VCs and publish the updated status, additional + endpoints `setStatusLists` - `/credentials/status` and `publishStatusLists` + - `/credentials/publish` may also need to be specified. + +#### DID Key Test Suite -* `vc2.0` - This tag will run the [VC Data Model 2.0 Test Suite](https://github.com/w3c/vc-data-model-2.0-test-suite) on your issuer and verifier endpoints. +* `did-key` - This tag will run the [DID Key Test Suite](https://github.com/w3c-ccg/did-key-test-suite) +on your DID resolver endpoint. ## Contribute diff --git a/implementations/ApiCatalog.json b/implementations/ApiCatalog.json index feba789..f4e2257 100644 --- a/implementations/ApiCatalog.json +++ b/implementations/ApiCatalog.json @@ -4,7 +4,7 @@ "verifiers": [{ "id": "https://vc.apicatalog.com", "endpoint": "https://vc.apicatalog.com/credentials/verify", - "tags": ["vc-api", "Ed25519Signature2020", "vc2.0", "eddsa-2022", "ecdsa-2019" ] + "tags": ["vc-api"] }], "issuers": [{ "id": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", @@ -12,25 +12,6 @@ "options": { "type": "Ed25519Signature2020" }, - "tags": ["vc-api", "Ed25519Signature2020", "vc2.0"] - }, { - "id": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", - "endpoint": "https://vc.apicatalog.com/credentials/issue", - "options": { - "type": "eddsa-2022" - }, - "tags": ["vc-api", "eddsa-2022"] - }, { - "id": "did:key:zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP", - "endpoint": "https://vc.apicatalog.com/credentials/issue", - "options": { - "type": "ecdsa-2019" - }, - "tags": ["vc-api", "ecdsa-2019" ] - }], - "vpVerifiers": [{ - "id": "https://vc.apicatalog.com", - "endpoint": "https://vc.apicatalog.com/presentations/verify", - "tags": ["vc-api", "Ed25519Signature2020", "vc2.0", "eddsa-2022", "ecdsa-2019" ] + "tags": ["vc-api"] }] } diff --git a/implementations/DanubeTech.json b/implementations/DanubeTech.json index 76359fc..fbaf95c 100644 --- a/implementations/DanubeTech.json +++ b/implementations/DanubeTech.json @@ -8,27 +8,18 @@ "type": "Ed25519Signature2018" }, "tags": ["vc-api"] - }, - { - "id": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", - "endpoint": "https://uniissuer.io/1.0/credentials/issue", - "options": { - "type": "Ed25519Signature2020" - }, - "tags": ["vc-api", "Ed25519Signature2020"] - }, - { + }, { "id": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", "endpoint": "https://uniissuer.io/1.0/credentials/issue", "options": { "type": "JsonWebSignature2020" }, - "tags": ["vc-api", "JsonWebSignature2020"] + "tags": ["JsonWebSignature2020"] }], "verifiers": [{ "id": "", "endpoint": "https://univerifier.io/1.0/credentials/verify", - "tags": ["vc-api", "Ed25519Signature2020"] + "tags": ["vc-api"] }], "didResolvers": [{ "id": "", diff --git a/implementations/DigitalBazaar.json b/implementations/DigitalBazaar.json index 63626bc..4f2f920 100644 --- a/implementations/DigitalBazaar.json +++ b/implementations/DigitalBazaar.json @@ -24,42 +24,8 @@ "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:2432d7c1-8082-410d-b9fb-0c40ae0dbce4\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz1AEwLo7tZ3TrsPgRcgLJqQvR\",\"invocationTarget\":\"https://issuer.qa.veres.app/issuers/z1AEwLo7tZ3TrsPgRcgLJqQvR/credentials/issue\",\"expires\":\"2024-11-15T19:06:05Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-11-16T19:06:06Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz1AEwLo7tZ3TrsPgRcgLJqQvR\"],\"proofValue\":\"z2x1TjQQHHS82K76CV9JzTom42CHhDhq2ShiPvqfCJWqvq2iQuveFW8mik9f4XytctzQDQpiYsuDx3Y27dxKJbbbd\"}}", "keySeed": "KEY_SEED_DB" }, - "tags": ["vc-api", "Ed25519Signature2020"] - }, { - "id": "https://issuer.qa.veres.app/issuers/z19rYvMxCQzMb9hQ7xuQ5ipJd", - "endpoint": "https://issuer.qa.veres.app/issuers/z19rYvMxCQzMb9hQ7xuQ5ipJd/credentials/issue", - "zcap": { - "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:10765250-c445-4672-8271-16a033d5fc51\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz19rYvMxCQzMb9hQ7xuQ5ipJd\",\"invocationTarget\":\"https://issuer.qa.veres.app/issuers/z19rYvMxCQzMb9hQ7xuQ5ipJd/credentials/issue\",\"expires\":\"2024-11-15T17:06:07Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-11-16T17:06:08Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz19rYvMxCQzMb9hQ7xuQ5ipJd\"],\"proofValue\":\"z55MhL1RCGvM1oLd9KqRwSP8rQu5wkr5tcyJbgi4CHvvvvhH65TxVATbHqLQT7b1zPZa7nbVCrUwSxwihoVCjrivU\"}}", - "keySeed": "KEY_SEED_DB" - }, - "tags": ["eddsa-rdfc-2022"] - }, { - "id": "https://issuer.qa.veres.app/issuers/z1ADd8YGQqDFrVDXb85City8t", - "endpoint": "https://issuer.qa.veres.app/issuers/z1ADd8YGQqDFrVDXb85City8t/credentials/issue", - "zcap": { - "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:3c8b5da2-646d-4f0d-93ff-d572e81b4bc9\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz1ADd8YGQqDFrVDXb85City8t\",\"invocationTarget\":\"https://issuer.qa.veres.app/issuers/z1ADd8YGQqDFrVDXb85City8t/credentials/issue\",\"expires\":\"2024-11-15T17:07:22Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-11-16T17:07:22Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz1ADd8YGQqDFrVDXb85City8t\"],\"proofValue\":\"z4bwrLM2ohgGZMvAJMhKMAoPUaEoBdorbKLTFbfLry4pmcz2ei6kTxfRxhpux3tm28SYeiJF1fZcnzHAry5QntYxE\"}}", - "keySeed": "KEY_SEED_DB" - }, - "supportedEcdsaKeyTypes": ["P-256"], - "tags": ["ecdsa-rdfc-2019"] - }, { - "id": "https://issuer.qa.veres.app/issuers/z1AAB8UhLNuAW4TYj6SJbLFos", - "endpoint": "https://issuer.qa.veres.app/issuers/z1AAB8UhLNuAW4TYj6SJbLFos/credentials/issue", - "zcap": { - "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:b4f664ad-d5f1-4692-8f58-726115ed7273\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz1AAB8UhLNuAW4TYj6SJbLFos\",\"invocationTarget\":\"https://issuer.qa.veres.app/issuers/z1AAB8UhLNuAW4TYj6SJbLFos/credentials/issue\",\"expires\":\"2024-11-15T17:08:07Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-11-16T17:08:08Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz1AAB8UhLNuAW4TYj6SJbLFos\"],\"proofValue\":\"zMfT7RkK978rwgoJJaYe2E6RhSUpi7Eq8cRAwEtQPy9vc96fN3bhwXiGY7bUgpaYV5554z1TUB6st2dH8U669MFb\"}}", - "keySeed": "KEY_SEED_DB" - }, - "supportedEcdsaKeyTypes": ["P-384"], - "tags": ["ecdsa-rdfc-2019"] - }, { - "id": "https://vc2.veresissuer.dev/issuers/z1A2ELCrwCJaA8AZKpr3YREye", - "endpoint": "https://vc2.veresissuer.dev/issuers/z1A2ELCrwCJaA8AZKpr3YREye/credentials/issue", - "zcap": { - "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:13ab36bf-d3e5-4d6e-a41c-199498f9a553\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fvc2.veresissuer.dev%2Fissuers%2Fz1A2ELCrwCJaA8AZKpr3YREye\",\"invocationTarget\":\"https://vc2.veresissuer.dev/issuers/z1A2ELCrwCJaA8AZKpr3YREye/credentials/issue\",\"expires\":\"2024-07-23T20:24:34Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-07-24T20:24:35Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fvc2.veresissuer.dev%2Fissuers%2Fz1A2ELCrwCJaA8AZKpr3YREye\"],\"proofValue\":\"z3cp7jMQ6fuEYNpszN7C9aKxKY3fB1nPoZ4DpCUSxkUzbEWTx7U7UNbrf2XabbLzSJUxu9YfxKRTU3gdLHUp1iXht\"}}", - "keySeed": "KEY_SEED_DB" - }, - "tags": ["vc2.0"] - }], + "tags": ["vc-api"] + }], "publishStatusLists": [{ "zcap": { "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:6b68dcde-7303-42af-b2d0-2166e483707f\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz19vkDXghpYCFp7GE8ZCpvJn8\",\"invocationTarget\":\"https://issuer.qa.veres.app/issuers/z19vkDXghpYCFp7GE8ZCpvJn8/slcs\",\"expires\":\"2024-11-19T13:57:42Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-11-20T13:57:43Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fissuer.qa.veres.app%2Fissuers%2Fz19vkDXghpYCFp7GE8ZCpvJn8\"],\"proofValue\":\"z4UkGkftbxb6LqzyAR5rGWByTRcj1FpX9zXMwiyJhrGrh3TWaXKjmU9EEjLAbcrLb27yywMt3hx3KrhbJHqSPBg9q\"}}", @@ -95,25 +61,7 @@ "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:73c6ab6d-fd9d-48d8-8260-c0839555e824\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fverifier.qa.veres.app%2Fverifiers%2Fz19jXQPi819fJVaBRFxZXqXay\",\"invocationTarget\":\"https://verifier.qa.veres.app/verifiers/z19jXQPi819fJVaBRFxZXqXay/credentials/verify\",\"expires\":\"2024-11-15T17:57:43Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-11-16T17:57:44Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fverifier.qa.veres.app%2Fverifiers%2Fz19jXQPi819fJVaBRFxZXqXay\"],\"proofValue\":\"z2Jcv3ZMfKX4FgXwnK7g4ix8WpWxhtiPdFdL1qjw7Y8XsNrEbeK5CosBPcZwLm9SrCafahF4tkufUmg5QtX51kE11\"}}", "keySeed": "KEY_SEED_DB" }, - "supportedEcdsaKeyTypes": ["P-256", "P-384"], - "tags": ["vc-api", "Ed25519Signature2020", "StatusList2021", "eddsa-rdfc-2022", "ecdsa-rdfc-2019"] - }, { - "id": "https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo", - "endpoint": "https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo/credentials/verify", - "zcap": { - "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:d2d9c461-8d28-4718-991a-29c5e5baf1e2\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fvc2.veresverifier.dev%2Fverifiers%2Fz19ojzY8YFhryhpghn6ZaPnHo\",\"invocationTarget\":\"https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo/credentials/verify\",\"expires\":\"2024-07-23T20:24:45Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-07-24T20:24:46Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fvc2.veresverifier.dev%2Fverifiers%2Fz19ojzY8YFhryhpghn6ZaPnHo\"],\"proofValue\":\"zJ8K63w6zc7nDDCJpzva2zwDhKDc1BawSAXjvpXoXeQ9B7oNPhgS6vWJ9e7uvMfL3Qd63HVskfQZqAz48wx8S91r\"}}", - "keySeed": "KEY_SEED_DB" - }, - "tags": ["vc2.0"] - }], - "vpVerifiers": [{ - "id": "https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo", - "endpoint": "https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo/presentations/verify", - "zcap": { - "capability": "{\"@context\":[\"https://w3id.org/zcap/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:111665b2-af9c-4788-8038-675b210b2d6f\",\"controller\":\"did:key:z6MkptjaoxjyKQFSqf1dHXswP6EayYhPQBYzprVCPmGBHz9S\",\"parentCapability\":\"urn:zcap:root:https%3A%2F%2Fvc2.veresverifier.dev%2Fverifiers%2Fz19ojzY8YFhryhpghn6ZaPnHo\",\"invocationTarget\":\"https://vc2.veresverifier.dev/verifiers/z19ojzY8YFhryhpghn6ZaPnHo/presentations/verify\",\"expires\":\"2024-07-23T20:24:45Z\",\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2023-07-24T20:24:46Z\",\"verificationMethod\":\"did:key:z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b#z6MkmMeWhZTJr8mhA2n48FoKV1kLqJAm9eYdu4cdTtTC6Y5b\",\"proofPurpose\":\"capabilityDelegation\",\"capabilityChain\":[\"urn:zcap:root:https%3A%2F%2Fvc2.veresverifier.dev%2Fverifiers%2Fz19ojzY8YFhryhpghn6ZaPnHo\"],\"proofValue\":\"z2hB4Ra5rpr41XPWaou7oMAY9VhRzTa47TXxa35PKziJsmVNQa43KJpEV1Rx12oMVgX9UsLH2hXcnXvTZEYLGHgJh\"}}", - "keySeed": "KEY_SEED_DB" - }, - "tags": ["vc2.0"] + "tags": ["vc-api", "StatusList2021"] }], "didResolvers": [{ "id": "", diff --git a/implementations/EWF.json b/implementations/EWF.json index 7eff7a2..1c8a176 100644 --- a/implementations/EWF.json +++ b/implementations/EWF.json @@ -4,12 +4,12 @@ "issuers": [{ "id": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", "endpoint": "https://vc-api-dev.energyweb.org/v1/vc-api/credentials/issue", - "tags": ["vc-api", "Ed25519Signature2020"] + "tags": ["vc-api"] }], "verifiers": [{ "id": "", "endpoint": "https://vc-api-dev.energyweb.org/v1/vc-api/credentials/verify", - "tags": ["vc-api", "Ed25519Signature2020"] + "tags": ["vc-api"] }] } diff --git a/implementations/LearnCard.json b/implementations/LearnCard.json index 8adab40..b400175 100644 --- a/implementations/LearnCard.json +++ b/implementations/LearnCard.json @@ -4,12 +4,12 @@ "issuers": [{ "id": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", "endpoint": "https://bridge.learncard.com/credentials/issue", - "tags": ["vc-api", "Ed25519Signature2020"] + "tags": ["vc-api"] }], "verifiers": [{ "id": "", "endpoint": "https://bridge.learncard.com/credentials/verify", - "tags": ["vc-api", "Ed25519Signature2020"] + "tags": ["vc-api"] }] } diff --git a/implementations/SpruceID.json b/implementations/SpruceID.json index a40a25e..11957c6 100644 --- a/implementations/SpruceID.json +++ b/implementations/SpruceID.json @@ -7,34 +7,12 @@ "options": { "type": "Ed25519Signature2020" }, - "tags": ["vc-api", "Ed25519Signature2020"] - }, { - "id": "did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra", - "endpoint": "https://vc.spruceid.xyz/credentials/issue", - "tags": ["vc-api", "JWT"] - }, { - "id": "did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra", - "endpoint": "https://vc.spruceid.xyz/credentials/issue", - "options": { - "type": "DataIntegrityProof" - }, - "tags": ["vc-api", "eddsa-2022"] - }, { - "id": "did:key:zDnaei6w9La4VphyPA6V2V5poBTpVtjCsnzPML5c78GWjRhnc", - "endpoint": "https://vc.spruceid.xyz/credentials/issue", - "options": { - "type": "DataIntegrityProof" - }, - "tags": ["vc-api", "ecdsa-2019"] - }, { - "id": "did:key:zDnaei6w9La4VphyPA6V2V5poBTpVtjCsnzPML5c78GWjRhnc", - "endpoint": "https://vc.spruceid.xyz/credentials/issue", "tags": ["vc-api", "JWT"] }], "verifiers": [{ "id": "https://spruceid.com", "endpoint": "https://vc.spruceid.xyz/credentials/verify", - "tags": ["vc-api", "Ed25519Signature2020", "JWT", "eddsa-2022", "ecdsa-2019"] + "tags": ["vc-api", "JWT"] }], "didResolvers": [{ "id": "https://spruceid.com", diff --git a/implementations/Trinsic.json b/implementations/Trinsic.json index 5bd1c1f..9a63550 100644 --- a/implementations/Trinsic.json +++ b/implementations/Trinsic.json @@ -7,18 +7,11 @@ "options": { "type": "Ed25519Signature2020" }, - "tags": ["vc-api", "Ed25519Signature2020"] - }, { - "id": "did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU", - "endpoint": "https://interop.connect.trinsic.cloud/vc-api/credentials/issue", - "options": { - "type": "DataIntegrityProof" - }, - "tags": ["vc-api", "eddsa-2022"] + "tags": ["vc-api"] }], "verifiers": [{ "id": "https://trinsic.id", "endpoint": "https://interop.connect.trinsic.cloud/vc-api/credentials/verify", - "tags": ["vc-api", "eddsa-2022", "Ed25519Signature2020"] + "tags": ["vc-api"] }] } diff --git a/package.json b/package.json index aea02ff..e45c8f3 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { - "name": "vc-api-test-suite-implementations", + "name": "vc-test-suite-implementations", "version": "0.0.1", "description": "", - "homepage": "https://github.com/w3c-ccg/vc-api-test-suite-implementations", + "homepage": "https://github.com/w3c-ccg/vc-test-suite-implementations", "author": { "name": "Digital Bazaar, Inc.", "email": "support@digitalbazaar.com", @@ -12,10 +12,10 @@ "main": "./lib/main.js", "repository": { "type": "git", - "url": "https://github.com/w3c-ccg/vc-api-test-suite-implementations" + "url": "https://github.com/w3c-ccg/vc-test-suite-implementations" }, "bugs": { - "url": "https://github.com/w3c-ccg/vc-api-test-suite-implementations/issues", + "url": "https://github.com/w3c-ccg/vc-test-suite-implementations/issues", "email": "support@digitalbazaar.com" }, "license": "BSD-3-Clause", @@ -36,10 +36,10 @@ "devDependencies": { "chai": "^4.3.3", "cross-env": "^7.0.3", - "eslint": "^8.19.0", - "eslint-config-digitalbazaar": "^4.0.1", - "eslint-plugin-jsdoc": "^39.3.3", - "eslint-plugin-unicorn": "^43.0.0", + "eslint": "^8.55.0", + "eslint-config-digitalbazaar": "^5.0.1", + "eslint-plugin-jsdoc": "^46.9.0", + "eslint-plugin-unicorn": "^49.0.0", "mocha": "^10.0.0", "nyc": "^15.1.0" }, @@ -58,7 +58,7 @@ "util": false }, "engines": { - "node": ">=16" + "node": ">=18" }, "keywords": [ "Decentralized",