EdDSA Cryptosuite test suite
Provides interoperability tests for verifiable credential processors (issuers and verifiers) that support EdDSA Data Integrity cryptosuites.
npm i
npm test
You will need an issuer and verifier that are compatible with VC API
and are capable of handling issuance and verification of Verifiable Credentials
with DataIntegrityProof
proof type using the eddsa-rdfc-2022
or eddsa-jcs-2022
cryptosuites.
To add your implementation to this test suite, you will need to add 2 endpoints to your implementation manifest.
- A credential issuer endpoint (/credentials/issue) in the
issuers
property. - A credential verifier endpoint (/credentials/verify) in the
verifiers
property.
All endpoints will need the tags either eddsa-rdfc-2022
or eddsa-jcs-2022
.
A simplified manifest would look like this:
{
"name": "My Company",
"implementation": "My implementation",
"issuers": [{
"id": "",
"endpoint": "https://issuer.mycompany.com/credentials/issue",
"method": "POST",
"tags": ["eddsa-rdfc-2022"]
}, {
"id": "",
"endpoint": "https://issuer.mycompany.com/credentials/issue",
"method": "POST",
"tags": ["eddsa-jcs-2022"]
}],
"verifiers": [{
"id": "",
"endpoint": "https://verifier.mycompany.com/credentials/verify",
"method": "POST",
"tags": ["eddsa-rdfc-2022", "eddsa-jcs-2022"]
}]
}
The example above represents an unauthenticated endpoint. You may add ZCAP or OAuth2 authentication to your endpoints. You can find an example in the vc-test-suite-implementations README.
To run the tests, some implementations may require client secrets that can be passed as environment variables to the test script. To see which implementations require client secrets, please check the implementation manifest within the vc-test-suite-implementations library.
We are presently working on implementing a new feature that will enable the use of Docker images instead of live endpoints. The Docker image that you provide will be started when the test suite is run. The image is expected to expose the API provided above, which will be used in the same way that live HTTP endpoints are used above.
Pull Requests are welcome!