The purpose of this test suite is to demonstrate a path to interoperability for the did:key Method. The technologies explored in this test suite are experimental. This document contains the most recent interoperability report for did:key Method. This report is auto-generated.

Conformance Testing Results

Tests passed 32/60 53%

Tests failed 28/60 47%

Failures 28

Tests skipped 4

Total tests 64

These tests were run on

Key

The results of the tests are shown below:

did:key Create Operation

did:key Resolver ⇒
Test Name
Danube Tech Digital Bazaar IDLab SpruceID
The scheme MUST be the value `did`
MUST raise `invalidDid` error if scheme is not `did`
{
                      "name": "AssertionError",
                      "message": "Expected an error with data: expected undefined to exist",
                      "stack": "AssertionError: Expected an error with data: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:67:11)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
The method MUST be the value `key`
MUST raise `methodNotSupported` error if method is not `key`
{
                      "name": "AssertionError",
                      "message": "expected 'invalidDid' to equal 'methodNotSupported'",
                      "stack": "AssertionError: expected 'invalidDid' to equal 'methodNotSupported'\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:85:31)\n    at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:38:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:93:11)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected an error with data: expected undefined to exist",
                      "stack": "AssertionError: Expected an error with data: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:90:11)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
The version MUST be convertible to a positive integer value.
MUST raise `invalidDid` if version is not convertible to a positive integer value.
{
                      "name": "AssertionError",
                      "message": "expected 'methodNotSupported' to equal 'invalidDid'",
                      "stack": "AssertionError: expected 'methodNotSupported' to equal 'invalidDid'\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:85:31)\n    at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:38:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:115:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected an error with data: expected undefined to exist",
                      "stack": "AssertionError: Expected an error with data: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:112:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
The multibaseValue MUST be a string and begin with the letter `z`
MUST raise `invalidDid` if the multibaseValue does not begin with the letter `z`.
{
                      "name": "AssertionError",
                      "message": "expected 'methodNotSupported' to equal 'invalidDid'",
                      "stack": "AssertionError: expected 'methodNotSupported' to equal 'invalidDid'\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:85:31)\n    at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:38:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:141:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected an error with data: expected undefined to exist",
                      "stack": "AssertionError: Expected an error with data: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:138:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
If "didDocument.id" is not a valid DID, an `invalidDid` error MUST be raised
{
                      "name": "AssertionError",
                      "message": "Expected a didDocument: expected null to exist",
                      "stack": "AssertionError: Expected a didDocument: expected null to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:161:16)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected a didDocument: expected null to exist",
                      "stack": "AssertionError: Expected a didDocument: expected null to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:161:16)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected resolution of did:key:@ to return a response: expected undefined to exist",
                      "stack": "AssertionError: Expected resolution of did:key:@ to return a response: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:154:16)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
If the byte length of rawPublicKeyBytes does not match the expected public key length for the associated multicodecValue, an `invalidPublicKeyLength` error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "expected 'methodNotSupported' to equal 'invalidPublicKeyLength'",
                      "stack": "AssertionError: expected 'methodNotSupported' to equal 'invalidPublicKeyLength'\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:85:31)\n    at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:38:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:174:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "expected 'invalidDid' to equal 'invalidPublicKeyLength'",
                      "stack": "AssertionError: expected 'invalidDid' to equal 'invalidPublicKeyLength'\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:85:31)\n    at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:38:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:174:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected an error with data: expected undefined to exist",
                      "stack": "AssertionError: Expected an error with data: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:172:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
If verificationMethod.id is not a valid DID URL, an `invalidDidUrl` error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected an error with data: expected undefined to exist",
                      "stack": "AssertionError: Expected an error with data: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:198:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "expected { detail: 'Not Found' } to have property 'didDocument'",
                      "stack": "AssertionError: expected { detail: 'Not Found' } to have property 'didDocument'\n    at shouldBeDidResolverResponse (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:22:20)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:199:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected an error with data: expected undefined to exist",
                      "stack": "AssertionError: Expected an error with data: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:198:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
If publicKeyFormat is not known to the implementation, an `unsupportedPublicKeyType` error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected no response: expected Response{ data: { …(4) }, …(3) } to not exist",
                      "stack": "AssertionError: Expected no response: expected Response{ data: { …(4) }, …(3) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:32:14)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:212:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "expected 'invalidDid' to equal 'unsupportedPublicKeyType'",
                      "stack": "AssertionError: expected 'invalidDid' to equal 'unsupportedPublicKeyType'\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:85:31)\n    at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:38:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:213:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no response: expected Response{ data: { …(5) }, …(3) } to not exist",
                      "stack": "AssertionError: Expected no response: expected Response{ data: { …(5) }, …(3) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:32:14)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:212:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
For Signature Verification Methods, if options.enableExperimentalPublicKeyTypes is set to false and publicKeyFormat is not Multikey, JsonWebKey2020, or Ed25519VerificationKey2020, an `invalidPublicKeyType` error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected property didDereferencingMetadata to exist: expected undefined to exist",
                      "stack": "AssertionError: Expected property didDereferencingMetadata to exist: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:81:10)\n    at shouldHaveDidDereferencingError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:42:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:230:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected property didDereferencingMetadata to exist: expected undefined to exist",
                      "stack": "AssertionError: Expected property didDereferencingMetadata to exist: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:81:10)\n    at shouldHaveDidDereferencingError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:42:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:230:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no response: expected Response{ …(3) } to not exist",
                      "stack": "AssertionError: Expected no response: expected Response{ …(3) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:32:14)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:229:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
For Encryption Verification Methods, if options.enableExperimentalPublicKeyTypes is set to false and publicKeyFormat is not Multikey, JsonWebKey2020, or X25519KeyAgreementKey2020, an `invalidPublicKeyType` error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected property didDereferencingMetadata to exist: expected undefined to exist",
                      "stack": "AssertionError: Expected property didDereferencingMetadata to exist: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:81:10)\n    at shouldHaveDidDereferencingError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:42:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:247:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected property didDereferencingMetadata to exist: expected undefined to exist",
                      "stack": "AssertionError: Expected property didDereferencingMetadata to exist: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:81:10)\n    at shouldHaveDidDereferencingError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:42:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:247:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected an error with data: expected undefined to exist",
                      "stack": "AssertionError: Expected an error with data: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:246:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
If verificationMethod.controller is not a valid DID, an `invalidDid` error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected a result: expected undefined to exist",
                      "stack": "AssertionError: Expected a result: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:258:16)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected a result: expected undefined to exist",
                      "stack": "AssertionError: Expected a result: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:258:16)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected DID Resolver response to have data.: expected undefined to exist",
                      "stack": "AssertionError: Expected DID Resolver response to have data.: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at shouldBeDidResolverResponse (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:17:10)\n    at Context. (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:260:9)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }