The purpose of this test suite is to demonstrate a path to interoperability for the ECDSA data integrity cryptosuites. The technologies explored in this test suite are experimental. This document contains the most recent interoperability report for a DataIntegrityProof using the `ecdsa-rdfc-2019`, `ecdsa-jcs-2019`, or `ecdsa-sd-2023` cryptosuites. This report is auto-generated.

Conformance Testing Results

These tests were run on

Key

🚫
Pending
Passed
Failed
Access Denied
Timeout
Not Implemented

The results of the tests are shown below:

Data Integrity (ecdsa-rdfc-2019 issuers)

Issuer ⇒
Test Name
apicatalog.com: P-256 apicatalog.com: P-384 Digital Bazaar: P-256 Digital Bazaar: P-384 Gen Digital: P-384 Grotto Networking: P-256 MakoLab: P-256 Procivis One Core: P-256 SpruceID: P-256 SpruceID: P-384 Trential: P-256 Trential: P-384 bovine: P-256
When expressing a data integrity proof on an object, a proof property MUST be used.
If present (proof), its value MUST be either a single object, or an unordered set of objects.
("proof.id") An optional identifier for the proof, which MUST be a URL.
The specific type of proof MUST be specified as a string that maps to a URL.
Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.
jsonld.InvalidUrl: Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.
                        at ContextResolver._fetchContext (node_modules/jsonld/lib/ContextResolver.js:173:13)
                        at async ContextResolver._resolveRemoteContext (node_modules/jsonld/lib/ContextResolver.js:117:34)
                        at async ContextResolver.resolve (node_modules/jsonld/lib/ContextResolver.js:50:22)
                        at async api.process (node_modules/jsonld/lib/context.js:87:20)
                        at async api.expand (node_modules/jsonld/lib/expand.js:214:17)
                        at async jsonld.expand (node_modules/jsonld/lib/jsonld.js:322:18)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:75:26)
Expected "@type" URL to be parsed.: expected TypeError: Invalid URL { …(2) } to not exist
AssertionError: Expected "@type" URL to be parsed.: expected TypeError: Invalid URL { …(2) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at shouldBeUrl (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:198:14)
                        at file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:82:30
                        at Array.every (<anonymous>)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:82:17)
The type property MUST contain the string DataIntegrityProof.
Expected "proof.type" to be one of DataIntegrityProof Received: JsonWebSignature2020: expected false to equal true
AssertionError: Expected "proof.type" to be one of DataIntegrityProof Received: JsonWebSignature2020: expected false to equal true
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:97:36)
                        at process.processImmediate (node:internal/timers:483:21)
The proofValue property MUST be used, as specified in 2.1 Proofs.
Expected proofValue to exist.: expected undefined to exist
AssertionError: Expected proofValue to exist.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at shouldHaveProofValue (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:294:10)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:116:13)
                        at process.processImmediate (node:internal/timers:483:21)
If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified.
If specified (proof.cryptosuite), its value MUST be a string.
A verification method is the means and information needed to verify the proof. If included, the value MUST be a string that maps to a [URL].
Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.
jsonld.InvalidUrl: Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.
                        at ContextResolver._fetchContext (node_modules/jsonld/lib/ContextResolver.js:173:13)
                        at async ContextResolver._resolveRemoteContext (node_modules/jsonld/lib/ContextResolver.js:117:34)
                        at async ContextResolver.resolve (node_modules/jsonld/lib/ContextResolver.js:50:22)
                        at async api.process (node_modules/jsonld/lib/context.js:87:20)
                        at async api.expand (node_modules/jsonld/lib/expand.js:214:17)
                        at async jsonld.expand (node_modules/jsonld/lib/jsonld.js:322:18)
                        at async shouldMapToUrl (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:213:20)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:174:9)
Expected property "https://w3id.org/security#verificationMethod" to exist.: expected undefined to exist
AssertionError: Expected property "https://w3id.org/security#verificationMethod" to exist.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at shouldMapToUrl (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:216:12)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:174:9)
The reason the proof was created ("proof.proofPurpose") MUST be specified as a string that maps to a URL.
Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.
jsonld.InvalidUrl: Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.
                        at ContextResolver._fetchContext (node_modules/jsonld/lib/ContextResolver.js:173:13)
                        at async ContextResolver._resolveRemoteContext (node_modules/jsonld/lib/ContextResolver.js:117:34)
                        at async ContextResolver.resolve (node_modules/jsonld/lib/ContextResolver.js:50:22)
                        at async api.process (node_modules/jsonld/lib/context.js:87:20)
                        at async api.expand (node_modules/jsonld/lib/expand.js:214:17)
                        at async jsonld.expand (node_modules/jsonld/lib/jsonld.js:322:18)
                        at async shouldMapToUrl (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:213:20)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:191:9)
Expected property "https://w3id.org/security#proofPurpose" to exist.: expected undefined to exist
AssertionError: Expected property "https://w3id.org/security#proofPurpose" to exist.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at shouldMapToUrl (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:216:12)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:191:9)
("proof.proofValue") A string value that expresses base-encoded binary data necessary to verify the digital proof using the verificationMethod specified. The value MUST use a header and encoding as described in Section 2.4 Multibase of the Controller Documents 1.0 specification to express the binary data.
Expected proofValue to exist.: expected undefined to exist
AssertionError: Expected proofValue to exist.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at shouldHaveProofValue (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:294:10)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:216:9)
                        at process.processImmediate (node:internal/timers:483:21)
Cryptographic suite designers MUST use mandatory proof value properties defined in Section 2.1 Proofs, and MAY define other properties specific to their cryptographic suite.
Expected "proof.proofValue" to exist.: expected undefined to exist
AssertionError: Expected "proof.proofValue" to exist.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at shouldBeProof (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:240:10)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:224:9)
                        at process.processImmediate (node:internal/timers:483:21)
Implementations that use JSON-LD processing, such as RDF Dataset Canonicalization [RDF-CANON], MUST throw an error, which SHOULD be DATA_LOSS_DETECTION_ERROR, when data is dropped by a JSON-LD processor, such as when an undefined term is detected in an input document.
Expected issuer to error when VC has an undefined type.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'access-control-allow-origin': '*', 'content-type': 'application/json', 'x-cloud-trace-context': '0caf28403329419b652f592a119a39a6', date: 'Mon, 16 Dec 2024 00:20:32 GMT', server: 'Google Frontend', 'content-length': '796', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected issuer to error when VC has an undefined type.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'access-control-allow-origin': '*', 'content-type': 'application/json', 'x-cloud-trace-context': '0caf28403329419b652f592a119a39a6', date: 'Mon, 16 Dec 2024 00:20:32 GMT', server: 'Google Frontend', 'content-length': '796', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure 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 shouldFailIssuance (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:105:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:235:7)
Expected issuer to error when VC has an undefined type.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'access-control-allow-origin': '*', 'content-type': 'application/json', 'x-cloud-trace-context': '6b954a0b11f1b6a5863ebf3a8a4831b8', date: 'Mon, 16 Dec 2024 00:20:32 GMT', server: 'Google Frontend', 'content-length': '796', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected issuer to error when VC has an undefined type.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'access-control-allow-origin': '*', 'content-type': 'application/json', 'x-cloud-trace-context': '6b954a0b11f1b6a5863ebf3a8a4831b8', date: 'Mon, 16 Dec 2024 00:20:32 GMT', server: 'Google Frontend', 'content-length': '796', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure 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 shouldFailIssuance (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:105:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:235:7)
Expected issuer to error when VC has an undefined type.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'content-type': 'application/json; charset=utf-8', date: 'Mon, 16 Dec 2024 00:20:37 GMT', server: 'Kestrel', 'set-cookie': 'ARRAffinity=48c30deae83e1e69daabed1c491e30d9561fc271a21bb79ed1fec6733d075b82;Path=/;HttpOnly;Secure;Domain=db.makolab.pro, ARRAffinitySameSite=48c30deae83e1e69daabed1c491e30d9561fc271a21bb79ed1fec6733d075b82;Path=/;HttpOnly;SameSite=None;Secure;Domain=db.makolab.pro', 'transfer-encoding': 'chunked', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected issuer to error when VC has an undefined type.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'content-type': 'application/json; charset=utf-8', date: 'Mon, 16 Dec 2024 00:20:37 GMT', server: 'Kestrel', 'set-cookie': 'ARRAffinity=48c30deae83e1e69daabed1c491e30d9561fc271a21bb79ed1fec6733d075b82;Path=/;HttpOnly;Secure;Domain=db.makolab.pro, ARRAffinitySameSite=48c30deae83e1e69daabed1c491e30d9561fc271a21bb79ed1fec6733d075b82;Path=/;HttpOnly;SameSite=None;Secure;Domain=db.makolab.pro', 'transfer-encoding': 'chunked', Authorization: 'sanitized to prevent exposure 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 shouldFailIssuance (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:105:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:235:7)
Expected issuer to error when VC has an undefined type.: expected Response { status: 200, statusText: 'OK', headers: Headers { server: 'nginx/1.18.0 (Ubuntu)', date: 'Mon, 16 Dec 2024 00:20:45 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'content-encoding': 'gzip', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected issuer to error when VC has an undefined type.: expected Response { status: 200, statusText: 'OK', headers: Headers { server: 'nginx/1.18.0 (Ubuntu)', date: 'Mon, 16 Dec 2024 00:20:45 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'content-encoding': 'gzip', Authorization: 'sanitized to prevent exposure 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 shouldFailIssuance (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:105:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:235:7)
If the algorithm produces an error, the error MUST be propagated and SHOULD convey the error type.
Expected issuer to error when VC has no credentialSubject.: expected Response { status: 200, statusText: 'OK', headers: Headers { server: 'nginx/1.18.0 (Ubuntu)', date: 'Mon, 16 Dec 2024 00:20:45 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'content-encoding': 'gzip', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected issuer to error when VC has no credentialSubject.: expected Response { status: 200, statusText: 'OK', headers: Headers { server: 'nginx/1.18.0 (Ubuntu)', date: 'Mon, 16 Dec 2024 00:20:45 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', connection: 'keep-alive', 'content-encoding': 'gzip', Authorization: 'sanitized to prevent exposure 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 shouldFailIssuance (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:105:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:255:7)
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite.
Expected at least one proof with cryptosuite ecdsa-rdfc-2019: expected false to equal true
AssertionError: Expected at least one proof with cryptosuite ecdsa-rdfc-2019: expected false to equal true
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:267:35)
                        at process.processImmediate (node:internal/timers:483:21)
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite. If the processing environment supports subtypes of string, the type of the cryptosuite value MUST be the https://w3id.org/security#cryptosuiteString subtype of string.
Expected property "proof.cryptosuite" to exist.: expected undefined to exist
AssertionError: Expected property "proof.cryptosuite" to exist.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:280:18)
                        at process.processImmediate (node:internal/timers:483:21)
Expected property https://w3id.org/security#cryptosuite to exist.: expected undefined to exist
AssertionError: Expected property https://w3id.org/security#cryptosuite to exist.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:293:20)

Data Integrity (ecdsa-rdfc-2019 verifiers) VC 1.1

Verifier ⇒
Test Name
apicatalog.com: P-256 Digital Bazaar: P-256 Grotto Networking: P-256 MakoLab: P-256 Netis: P-256 Procivis One Core: P-256 SpruceID: P-256 Trential: P-256 bovine: P-256
When deserializing to RDF, implementations MUST ensure that the base URL is set to null.
Conforming processors MUST produce errors when non-conforming documents are consumed.
If either securedDocument is not a map or securedDocument.proof is not a map, an error MUST be raised and SHOULD convey an error type of PARSING_ERROR.
If one or more of proof.type, proof.verificationMethod, and proof.proofPurpose does not exist, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR
The type property MUST contain the string DataIntegrityProof.
If expectedProofPurpose was given, and it does not match proof.proofPurpose, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR.
The proofValue property MUST be used, as specified in 2.1 Proofs.
("proof.proofValue") A string value that contains the base-encoded binary data necessary to verify the digital proof using the verificationMethod specified. The contents of the value MUST be expressed with a header and encoding as described in Section 2.4 Multibase of the Controller Documents 1.0 specification.
Implementations that use JSON-LD processing, such as RDF Dataset Canonicalization [RDF-CANON], MUST throw an error, which SHOULD be DATA_LOSS_DETECTION_ERROR, when data is dropped by a JSON-LD processor, such as when an undefined term is detected in an input document.
Should fail to verify VC if an undefined term is added after issuance.: expected Response { status: 200, statusText: 'OK', headers: Headers { server: 'nginx/1.18.0 (Ubuntu)', date: 'Mon, 16 Dec 2024 00:21:15 GMT', 'content-type': 'text/html; charset=utf-8', 'content-length': '0', connection: 'keep-alive', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Should fail to verify VC if an undefined term is added after issuance.: expected Response { status: 200, statusText: 'OK', headers: Headers { server: 'nginx/1.18.0 (Ubuntu)', date: 'Mon, 16 Dec 2024 00:21:15 GMT', 'content-type': 'text/html; charset=utf-8', 'content-length': '0', connection: 'keep-alive', Authorization: 'sanitized to prevent exposure of secrets' }, body: null, 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 verificationFail (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:83:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:172:7)
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite. If the processing environment supports subtypes of string, the type of the cryptosuite value MUST be the https://w3id.org/security#cryptosuiteString subtype of string.

Data Integrity (ecdsa-rdfc-2019 verifiers) VC 2.0

Verifier ⇒
Test Name
apicatalog.com: P-256 CredenceID: P-256 Digital Bazaar: P-256 Gen Digital: P-256 Grotto Networking: P-256 MakoLab: P-256 Netis: P-256 Procivis One Core: P-256 SpruceID: P-256 Trential: P-256
When deserializing to RDF, implementations MUST ensure that the base URL is set to null.
Conforming processors MUST produce errors when non-conforming documents are consumed.
If either securedDocument is not a map or securedDocument.proof is not a map, an error MUST be raised and SHOULD convey an error type of PARSING_ERROR.
If one or more of proof.type, proof.verificationMethod, and proof.proofPurpose does not exist, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR
MUST not verify VC w/o a proof: expected undefined to exist
AssertionError: MUST not verify VC w/o a proof: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at shouldBeErrorResponse (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:274:10)
                        at verificationFail (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:82:7)
The type property MUST contain the string DataIntegrityProof.
If expectedProofPurpose was given, and it does not match proof.proofPurpose, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR.
The proofValue property MUST be used, as specified in 2.1 Proofs.
("proof.proofValue") A string value that contains the base-encoded binary data necessary to verify the digital proof using the verificationMethod specified. The contents of the value MUST be expressed with a header and encoding as described in Section 2.4 Multibase of the Controller Documents 1.0 specification.
Implementations that use JSON-LD processing, such as RDF Dataset Canonicalization [RDF-CANON], MUST throw an error, which SHOULD be DATA_LOSS_DETECTION_ERROR, when data is dropped by a JSON-LD processor, such as when an undefined term is detected in an input document.
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite. If the processing environment supports subtypes of string, the type of the cryptosuite value MUST be the https://w3id.org/security#cryptosuiteString subtype of string.

ecdsa-rdfc-2019 (interop)

Verifier ⇒
Issuer
apicatalog.com: P-256, P-384 CredenceID: P-256 Digital Bazaar: P-256, P-384 Gen Digital: P-384, P-256 Grotto Networking: P-256 MakoLab: P-256 Netis: P-256, P-384 Procivis One Core: P-256 SpruceID: P-256, P-384 Trential: P-256, P-384 bovine: P-256
apicatalog.com: P-256
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
apicatalog.com: P-384
Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
🚫
Test skipped.
Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
🚫
Test skipped.
🚫
Test skipped.
Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
🚫
Test skipped.
Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
AssertionError: Expected issuer apicatalog.com: P-384 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
🚫
Test skipped.
Digital Bazaar: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Digital Bazaar: P-384
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
🚫
Test skipped.
🚫
Test skipped.
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
🚫
Test skipped.
Gen Digital: P-384
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: failed to validate JWT credent… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: failed to validate JWT credent… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
🚫
Test skipped.
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: unsupported cryptosuite { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: unsupported cryptosuite { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
Grotto Networking: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
MakoLab: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Procivis One Core: P-256
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
AssertionError: Expected issuer Procivis One Core: P-256 to issue a VC.: expected null to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:96:20)
                        at process.processImmediate (node:internal/timers:483:21)
SpruceID: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
SpruceID: P-384
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
🚫
Test skipped.
🚫
Test skipped.
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
🚫
Test skipped.
Trential: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Trential: P-384
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
🚫
Test skipped.
🚫
Test skipped.
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
🚫
Test skipped.
🚫
Test skipped.
bovine: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/30-rdfc-interop.js:100:13)

Data Integrity (ecdsa-sd-2023 issuers)

Issuer ⇒
Test Name
apicatalog.com: P-256 apicatalog.com: P-384 Digital Bazaar: P-256 Grotto Networking: P-256 MakoLab: P-256 SpruceID: P-256 SpruceID: P-384 Trential: P-256
When expressing a data integrity proof on an object, a proof property MUST be used.
If present (proof), its value MUST be either a single object, or an unordered set of objects.
("proof.id") An optional identifier for the proof, which MUST be a URL.
The specific type of proof MUST be specified as a string that maps to a URL.
The type property MUST contain the string DataIntegrityProof.
The proofValue property MUST be used, as specified in 2.1 Proofs.
If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified.
If specified (proof.cryptosuite), its value MUST be a string.
A verification method is the means and information needed to verify the proof. If included, the value MUST be a string that maps to a [URL].
The reason the proof was created ("proof.proofPurpose") MUST be specified as a string that maps to a URL.
("proof.proofValue") A string value that expresses base-encoded binary data necessary to verify the digital proof using the verificationMethod specified. The value MUST use a header and encoding as described in Section 2.4 Multibase of the Controller Documents 1.0 specification to express the binary data.
Cryptographic suite designers MUST use mandatory proof value properties defined in Section 2.1 Proofs, and MAY define other properties specific to their cryptographic suite.
Implementations that use JSON-LD processing, such as RDF Dataset Canonicalization [RDF-CANON], MUST throw an error, which SHOULD be DATA_LOSS_DETECTION_ERROR, when data is dropped by a JSON-LD processor, such as when an undefined term is detected in an input document.
Expected issuer to error when VC has an undefined type.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'access-control-allow-origin': '*', 'content-type': 'application/json', 'x-cloud-trace-context': 'd1cecb253488c53920b94ad54a658db8', date: 'Mon, 16 Dec 2024 00:22:59 GMT', server: 'Google Frontend', 'content-length': '1247', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected issuer to error when VC has an undefined type.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'access-control-allow-origin': '*', 'content-type': 'application/json', 'x-cloud-trace-context': 'd1cecb253488c53920b94ad54a658db8', date: 'Mon, 16 Dec 2024 00:22:59 GMT', server: 'Google Frontend', 'content-length': '1247', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure 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 shouldFailIssuance (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:105:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:235:7)
Expected issuer to error when VC has an undefined type.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'access-control-allow-origin': '*', 'content-type': 'application/json', 'x-cloud-trace-context': 'd41df189502d3512706bddd4f39d206c', date: 'Mon, 16 Dec 2024 00:23:00 GMT', server: 'Google Frontend', 'content-length': '1247', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected issuer to error when VC has an undefined type.: expected Response { status: 201, statusText: 'Created', headers: Headers { 'access-control-allow-origin': '*', 'content-type': 'application/json', 'x-cloud-trace-context': 'd41df189502d3512706bddd4f39d206c', date: 'Mon, 16 Dec 2024 00:23:00 GMT', server: 'Google Frontend', 'content-length': '1247', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', Authorization: 'sanitized to prevent exposure 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 shouldFailIssuance (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:105:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:235:7)
Expected issuer to error when VC has an undefined type.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'content-type': 'application/json; charset=utf-8', date: 'Mon, 16 Dec 2024 00:23:04 GMT', server: 'Kestrel', 'set-cookie': 'ARRAffinity=48c30deae83e1e69daabed1c491e30d9561fc271a21bb79ed1fec6733d075b82;Path=/;HttpOnly;Secure;Domain=db.makolab.pro, ARRAffinitySameSite=48c30deae83e1e69daabed1c491e30d9561fc271a21bb79ed1fec6733d075b82;Path=/;HttpOnly;SameSite=None;Secure;Domain=db.makolab.pro', 'transfer-encoding': 'chunked', Authorization: 'sanitized to prevent exposure of secrets' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist
AssertionError: Expected issuer to error when VC has an undefined type.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'content-type': 'application/json; charset=utf-8', date: 'Mon, 16 Dec 2024 00:23:04 GMT', server: 'Kestrel', 'set-cookie': 'ARRAffinity=48c30deae83e1e69daabed1c491e30d9561fc271a21bb79ed1fec6733d075b82;Path=/;HttpOnly;Secure;Domain=db.makolab.pro, ARRAffinitySameSite=48c30deae83e1e69daabed1c491e30d9561fc271a21bb79ed1fec6733d075b82;Path=/;HttpOnly;SameSite=None;Secure;Domain=db.makolab.pro', 'transfer-encoding': 'chunked', Authorization: 'sanitized to prevent exposure 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 shouldFailIssuance (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:105:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:235:7)
If the algorithm produces an error, the error MUST be propagated and SHOULD convey the error type.
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite.
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite. If the processing environment supports subtypes of string, the type of the cryptosuite value MUST be the https://w3id.org/security#cryptosuiteString subtype of string.

Data Integrity (ecdsa-sd-2023 verifiers) VC 1.1

Verifier ⇒
Test Name
apicatalog.com: P-256 Digital Bazaar: P-256 Grotto Networking: P-256 MakoLab: P-256 Netis: P-256 SpruceID: P-256 Trential: P-256
When deserializing to RDF, implementations MUST ensure that the base URL is set to null.
Conforming processors MUST produce errors when non-conforming documents are consumed.
If either securedDocument is not a map or securedDocument.proof is not a map, an error MUST be raised and SHOULD convey an error type of PARSING_ERROR.
If one or more of proof.type, proof.verificationMethod, and proof.proofPurpose does not exist, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR
The type property MUST contain the string DataIntegrityProof.
If expectedProofPurpose was given, and it does not match proof.proofPurpose, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR.
The proofValue property MUST be used, as specified in 2.1 Proofs.
("proof.proofValue") A string value that contains the base-encoded binary data necessary to verify the digital proof using the verificationMethod specified. The contents of the value MUST be expressed with a header and encoding as described in Section 2.4 Multibase of the Controller Documents 1.0 specification.
Implementations that use JSON-LD processing, such as RDF Dataset Canonicalization [RDF-CANON], MUST throw an error, which SHOULD be DATA_LOSS_DETECTION_ERROR, when data is dropped by a JSON-LD processor, such as when an undefined term is detected in an input document.
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite. If the processing environment supports subtypes of string, the type of the cryptosuite value MUST be the https://w3id.org/security#cryptosuiteString subtype of string.

Data Integrity (ecdsa-sd-2023 verifiers) VC 2.0

Verifier ⇒
Test Name
apicatalog.com: P-256 Digital Bazaar: P-256 Grotto Networking: P-256 MakoLab: P-256 Netis: P-256 SpruceID: P-256 Trential: P-256
When deserializing to RDF, implementations MUST ensure that the base URL is set to null.
Conforming processors MUST produce errors when non-conforming documents are consumed.
If either securedDocument is not a map or securedDocument.proof is not a map, an error MUST be raised and SHOULD convey an error type of PARSING_ERROR.
If one or more of proof.type, proof.verificationMethod, and proof.proofPurpose does not exist, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR
The type property MUST contain the string DataIntegrityProof.
If expectedProofPurpose was given, and it does not match proof.proofPurpose, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR.
The proofValue property MUST be used, as specified in 2.1 Proofs.
("proof.proofValue") A string value that contains the base-encoded binary data necessary to verify the digital proof using the verificationMethod specified. The contents of the value MUST be expressed with a header and encoding as described in Section 2.4 Multibase of the Controller Documents 1.0 specification.
Implementations that use JSON-LD processing, such as RDF Dataset Canonicalization [RDF-CANON], MUST throw an error, which SHOULD be DATA_LOSS_DETECTION_ERROR, when data is dropped by a JSON-LD processor, such as when an undefined term is detected in an input document.
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite. If the processing environment supports subtypes of string, the type of the cryptosuite value MUST be the https://w3id.org/security#cryptosuiteString subtype of string.

ecdsa-sd-2023 (interop)

Verifier ⇒
Issuer
apicatalog.com: P-256, P-384 Digital Bazaar: P-256, P-384 Grotto Networking: P-256 MakoLab: P-256 Netis: P-256, P-384 SpruceID: P-256, P-384 Trential: P-256, P-384
apicatalog.com: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: A validation error occurred in… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A validation error occurred in… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: verifiableCredential object sh… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: verifiableCredential object sh… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
apicatalog.com: P-384
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: A validation error occurred in… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A validation error occurred in… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
🚫
Test skipped.
🚫
Test skipped.
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: verifiableCredential object sh… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: verifiableCredential object sh… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Digital Bazaar: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Grotto Networking: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
MakoLab: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: A validation error occurred in… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A validation error occurred in… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: verifiableCredential object sh… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: verifiableCredential object sh… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
SpruceID: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
SpruceID: P-384
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
🚫
Test skipped.
🚫
Test skipped.
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: invalid proof { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: invalid proof { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Trential: P-256
Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: A non-empty JSON Pointer must … { …(6) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)
Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist
                        at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)
                        at verificationSuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:121:14)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/60-sd-interop.js:116:13)

Data Model - Verification Methods (Multikey)

Test Name
apicatalog.com Digital Bazaar Gen Digital Grotto Networking MakoLab Procivis One Core SpruceID Trential bovine
The publicKeyMultibase value of the verification method MUST start with the base-58-btc prefix (z), as defined in the Multibase section of Controller Documents 1.0.
Cannot read properties of null (reading 'startsWith')
TypeError: Cannot read properties of null (reading 'startsWith')
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/70-data-model.js:56:25)
A Multibase-encoded ECDSA 256-bit public key value or an ECDSA 384-bit public key value follows, as defined in the Multikey section of Controller Documents 1.0. Any other encoding MUST NOT be allowed.
expected null to exist
AssertionError: expected null to exist
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/70-data-model.js:70:28)

Data Model - Proof Representations

Test Name
apicatalog.com Digital Bazaar Gen Digital Grotto Networking MakoLab Procivis One Core SpruceID Trential bovine
A proof contains the attributes specified in the Proofs section of [VC-DATA-INTEGRITY].
Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
AssertionError: Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
                        at assertDataIntegrityProof (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:224:21)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/70-data-model.js:93:9)
                        at process.processImmediate (node:internal/timers:483:21)
The type property MUST be DataIntegrityProof.
Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
AssertionError: Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/70-data-model.js:101:29)
                        at process.processImmediate (node:internal/timers:483:21)
The cryptosuite property MUST be ecdsa-rdfc-2019, ecdsa-jcs-2019, or ecdsa-sd-2023.
Expected a cryptosuite identifier on the proof.: expected undefined to exist
AssertionError: Expected a cryptosuite identifier on the proof.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/70-data-model.js:109:16)
                        at process.processImmediate (node:internal/timers:483:21)

Algorithms - Create Proof (ecdsa-jcs-2019)

Test Name
apicatalog.com Grotto Networking bovine
A data integrity proof (map), or an error, is produced as output.
If unsecuredDocument.@context is present, set proof.@context to unsecuredDocument.@context.
Expected proof to have context.: expected undefined to exist
AssertionError: Expected proof to have context.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-jcs.js:69:16)
                        at process.processImmediate (node:internal/timers:483:21)
Expected proof to have context.: expected undefined to exist
AssertionError: Expected proof to have context.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-jcs.js:69:16)
                        at process.processImmediate (node:internal/timers:483:21)
Let proof.proofValue be a base58-btc-encoded Multibase value of the proofBytes.

Algorithms - Verify Proof (ecdsa-jcs-2019)

Algorithms - Transformation (ecdsa-jcs-2019)

Algorithms - Proof Configuration (ecdsa-jcs-2019)

Algorithms - Proof Serialization (ecdsa-jcs-2019)

Algorithms - Create Proof (ecdsa-rdfc-2019)

Test Name
apicatalog.com Digital Bazaar Gen Digital Grotto Networking MakoLab Procivis One Core SpruceID Trential bovine
A data integrity proof (map), or an error, is produced as output.
Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
AssertionError: Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
                        at assertDataIntegrityProof (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:224:21)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-rdfc.js:57:11)
                        at process.processImmediate (node:internal/timers:483:21)
Let proof.proofValue be a base58-btc-encoded Multibase value of the proofBytes.
Expected proof to have proofValue.: expected undefined to exist
AssertionError: Expected proof to have proofValue.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-rdfc.js:67:16)
                        at process.processImmediate (node:internal/timers:483:21)

Algorithms - Verify Proof (ecdsa-rdfc-2019)

Algorithms - Transformation (ecdsa-rdfc-2019)

Test Name
apicatalog.com Digital Bazaar Gen Digital Grotto Networking MakoLab Procivis One Core SpruceID Trential bovine
The transformation options MUST contain a type identifier for the cryptographic suite (type) and a cryptosuite identifier (cryptosuite).
Expected a cryptosuite identifier on the proof.: expected undefined to exist
AssertionError: Expected a cryptosuite identifier on the proof.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-rdfc.js:124:16)
                        at process.processImmediate (node:internal/timers:483:21)
Whenever this algorithm encodes strings, it MUST use UTF-8 encoding.
If options.type is not set to the string DataIntegrityProof or options.cryptosuite is not set to the string ecdsa-rdfc-2019, an error MUST be raised and SHOULD convey an error type of PROOF_TRANSFORMATION_ERROR.
Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
AssertionError: Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
                        at assertCryptosuiteProof (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:211:21)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-rdfc.js:140:9)
                        at process.processImmediate (node:internal/timers:483:21)

Algorithms - Proof Configuration (ecdsa-rdfc-2019)

Test Name
apicatalog.com Digital Bazaar Gen Digital Grotto Networking MakoLab Procivis One Core SpruceID Trential bovine
The proof options MUST contain a type identifier for the cryptographic suite (type) and MUST contain a cryptosuite identifier (cryptosuite).
Expected a cryptosuite identifier on the proof.: expected undefined to exist
AssertionError: Expected a cryptosuite identifier on the proof.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-rdfc.js:166:16)
                        at process.processImmediate (node:internal/timers:483:21)
If proofConfig.type is not set to DataIntegrityProof and/or proofConfig.cryptosuite is not set to ecdsa-rdfc-2019, an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR.
Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
AssertionError: Expected DataIntegrityProof type.: expected 'JsonWebSignature2020' to equal 'DataIntegrityProof'
                        at assertCryptosuiteProof (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/assertions.js:211:21)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-rdfc.js:176:9)
                        at process.processImmediate (node:internal/timers:483:21)
If proofConfig.created is set and if the value is not a valid [XMLSCHEMA11-2] datetime, an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR.

Algorithms - Proof Serialization (ecdsa-rdfc-2019)

Test Name
apicatalog.com Digital Bazaar Gen Digital Grotto Networking MakoLab Procivis One Core SpruceID Trential bovine
The proof options MUST contain a type identifier for the cryptographic suite (type) and MAY contain a cryptosuite identifier (cryptosuite).

Algorithms - Create Base Proof (ecdsa-sd-2023)

Test Name
apicatalog.com Digital Bazaar Grotto Networking MakoLab SpruceID Trential
A data integrity proof (map), or an error, is produced as output.
Let proof.proofValue be a base64-url-encoded Multibase value of the proofBytes.

Algorithms - Base Proof Transformation (ecdsa-sd-2023)

Test Name
apicatalog.com Digital Bazaar Grotto Networking MakoLab SpruceID Trential
The transformation options MUST contain a type identifier for the cryptographic suite (type), a cryptosuite identifier (cryptosuite), and a verification method (verificationMethod).
The transformation options MUST contain an array of mandatory JSON pointers (mandatoryPointers) and MAY contain additional options, such as a JSON-LD document loader.
Unexpected end of data
SyntaxError: Unexpected end of data
                        at decode (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/multiformats/dist/src/bases/base.js:156:15)
                        at Decoder.decode [as baseDecode] (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/multiformats/dist/src/bases/base.js:199:20)
                        at Decoder.decode (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/multiformats/dist/src/bases/base.js:52:25)
                        at Codec.decode (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/multiformats/dist/src/bases/base.js:107:29)
                        at inspectSdBaseProofValue (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/helpers.js:357:37)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-sd.js:116:17)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Whenever this algorithm encodes strings, it MUST use UTF-8 encoding.
Per the recommendations of [RFC2104], the HMAC key MUST be the same length as the digest size; for SHA-256, this is 256 bits or 32 bytes.
Unexpected end of data
SyntaxError: Unexpected end of data
                        at decode (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/multiformats/dist/src/bases/base.js:156:15)
                        at Decoder.decode [as baseDecode] (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/multiformats/dist/src/bases/base.js:199:20)
                        at Decoder.decode (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/multiformats/dist/src/bases/base.js:52:25)
                        at Codec.decode (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/node_modules/multiformats/dist/src/bases/base.js:107:29)
                        at inspectSdBaseProofValue (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/helpers.js:357:37)
                        at Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-sd.js:133:36)
                        at process.processImmediate (node:internal/timers:483:21)

Algorithms - Base Proof Configuration (ecdsa-sd-2023)

Test Name
apicatalog.com Digital Bazaar Grotto Networking MakoLab SpruceID Trential

Algorithms - Base Proof Serialization (ecdsa-sd-2023)

Test Name
apicatalog.com Digital Bazaar Grotto Networking MakoLab SpruceID Trential
The proof options MUST contain a type identifier for the cryptographic suite (type) and MAY contain a cryptosuite identifier (cryptosuite).

Algorithms - Verify Derived Proof (ecdsa-sd-2023)

Test Name
apicatalog.com Digital Bazaar Grotto Networking MakoLab Netis SpruceID Trential
If the length of signatures does not match the length of nonMandatory, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR, indicating that the signature count does not match the non-mandatory message count.
Expected a result from verifier.: expected undefined to exist
AssertionError: Expected a result from verifier.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at verifySuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/helpers.js:317:10)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-sd.js:232:9)
Expected a result from verifier.: expected undefined to exist
AssertionError: Expected a result from verifier.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at verifySuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/helpers.js:317:10)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-sd.js:232:9)
Expected a result from verifier.: expected undefined to exist
AssertionError: Expected a result from verifier.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at verifySuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/helpers.js:317:10)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-sd.js:232:9)
Expected a result from verifier.: expected undefined to exist
AssertionError: Expected a result from verifier.: expected undefined to exist
                        at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)
                        at verifySuccess (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/helpers.js:317:10)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async Context.<anonymous> (file:///home/runner/work/vc-di-ecdsa-test-suite/vc-di-ecdsa-test-suite/tests/90-algorithms-sd.js:232:9)

At Risk

Reason ⇒
Statement
At least 2 passing implementations
If unsecuredDocument.@context is present, set proof.@context to unsecuredDocument.@context.