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 24/45 53%

Tests failed 21/45 47%

Failures 21

Tests skipped 3

Total tests 48

These tests were run on

Key

🚫
Pending
Passed
Failed
Access Denied
Timeout
Not Implemented

The results of the tests are shown below:

did:key Create Operation

did:key Resolver ⇒
Test Name
Danube Tech Digital Bazaar SpruceID
The scheme MUST be the value `did`
MUST raise `invalidDid` error if scheme is not `did`
Expected an error with data: expected undefined to exist
AssertionError: Expected an error with data: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:36:10)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:69:11)
                        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`
expected 'invalidDid' to equal 'methodNotSupported'
AssertionError: expected 'invalidDid' to equal 'methodNotSupported'
                        at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:87:31)
                        at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:40:10)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:95:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '42', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c0ed8f07df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '42', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c0ed8f07df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:14)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:92:11)
                        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
expected 'methodNotSupported' to equal 'invalidDid'
AssertionError: expected 'methodNotSupported' to equal 'invalidDid'
                        at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:87:31)
                        at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:40:10)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:117:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '34', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c11db107df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '34', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c11db107df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:14)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:114:9)
                        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`
expected 'methodNotSupported' to equal 'invalidDid'
AssertionError: expected 'methodNotSupported' to equal 'invalidDid'
                        at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:87:31)
                        at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:40:10)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:143:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '34', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c13def07df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '34', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c13def07df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:14)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:140:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If "didDocument.id" is not a valid DID, an `invalidDid` error MUST be raised
Expected a didDocument: expected null to exist
AssertionError: Expected a didDocument: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:163:16)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected resolution of did:key:@ to return a response: expected undefined to exist
AssertionError: Expected resolution of did:key:@ to return a response: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:156:16)
                        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
expected 'methodNotSupported' to equal 'invalidPublicKeyLength'
AssertionError: expected 'methodNotSupported' to equal 'invalidPublicKeyLength'
                        at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:87:31)
                        at shouldHaveDidResolutionError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:40:10)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:176:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c18e3307df-IAD', 'content-encoding': 'gzip', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c18e3307df-IAD', 'content-encoding': 'gzip', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:14)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:174:9)
                        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
expected { …(4) } to have property 'didDocument'
AssertionError: expected { …(4) } to have property 'didDocument'
                        at shouldBeDidResolverResponse (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:24:20)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:201:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected an error with data: expected undefined to exist
AssertionError: Expected an error with data: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:36:10)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:200:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If publicKeyFormat is not known to the implementation, an `unsupportedPublicKeyType` error MUST be raised
Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution";charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'access-control-allow-origin': '*', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:14 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution";charset=utf-8', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'access-control-allow-origin': '*', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:14)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:214:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:15 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '37', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c1ee8107df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:15 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '37', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c1ee8107df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:14)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:214:9)
                        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
Expected property didDereferencingMetadata to exist: expected undefined to exist
AssertionError: Expected property didDereferencingMetadata to exist: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:83:10)
                        at shouldHaveDidDereferencingError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:44:10)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:232:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:15 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c20eab07df-IAD', 'content-encoding': 'gzip', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:15 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c20eab07df-IAD', 'content-encoding': 'gzip', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:14)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:231:9)
                        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
Expected property didDereferencingMetadata to exist: expected undefined to exist
AssertionError: Expected property didDereferencingMetadata to exist: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at _shouldHaveMetadataError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:83:10)
                        at shouldHaveDidDereferencingError (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:44:10)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:249:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:15 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '32', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c23ed807df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected no response: expected Response { status: 200, statusText: 'OK', headers: Headers { date: 'Sun, 10 Nov 2024 05:16:15 GMT', 'content-type': 'application/ld+json;profile="https://w3id.org/did-resolution"', 'content-length': '32', connection: 'keep-alive', 'cf-cache-status': 'DYNAMIC', server: 'cloudflare', 'cf-ray': '8e0391c23ed807df-IAD', Authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldErrorWithData (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:34:14)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:248:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If verificationMethod.controller is not a valid DID, an `invalidDid` error MUST be raised
Expected a result: expected undefined to exist
AssertionError: Expected a result: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:260:16)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
expected { Success: { …(3) } } to have property 'didDocument'
AssertionError: expected { Success: { …(3) } } to have property 'didDocument'
                        at shouldBeDidResolverResponse (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/assertions.js:24:20)
                        at Context.<anonymous> (file:///home/runner/work/did-key-test-suite/did-key-test-suite/tests/10-create.js:262:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

At Risk

Reason ⇒
Statement
At least 2 passing implementations
MUST raise `methodNotSupported` error if method is not `key`
MUST raise `invalidDid` if version is not convertible to a positive integer value
MUST raise `invalidDid` if the multibaseValue does not begin with the letter `z`
If "didDocument.id" is not a valid DID, an `invalidDid` error MUST be raised
If the byte length of rawPublicKeyBytes does not match the expected public key length for the associated multicodecValue, an `invalidPublicKeyLength` error MUST be raised
If verificationMethod.id is not a valid DID URL, an `invalidDidUrl` error MUST be raised
If publicKeyFormat is not known to the implementation, an `unsupportedPublicKeyType` error MUST be raised
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
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
If verificationMethod.controller is not a valid DID, an `invalidDid` error MUST be raised