The purpose of this test suite is to demonstrate a path to interoperability for the eddsa-rdfc-2022 and eddsa-jcs-2022 cryptosuites. The technologies explored in this test suite are experimental. This document contains the most recent interoperability report for a [DataIntegrityProof](https://www.w3.org/TR/vc-data-integrity/#dataintegrityproof) using the eddsa-rdfc-2022 and eddsa-jcs-2022 cryptosuites. This report is auto-generated.

Conformance Testing Results

Tests passed 335/374 89%

Tests failed 39/374 11%

Failures 39

Tests skipped 0

Total tests 374

These tests were run on

Key

The results of the tests are shown below:

Data Integrity (eddsa-rdfc-2022 issuers)

Issuer ⇒
Test Name
apicatalog.com Digital Bazaar Open Security and Identity SpruceID Trinsic bovine
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 proof type used for the cryptographic proof MUST be specified as a string that maps to a URL.
The type property MUST contain the string DataIntegrityProof.
If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.
The date and time the proof was created is OPTIONAL and, if included, MUST be specified as an [XMLSCHEMA11-2] dateTimeStamp string, either in Universal Coordinated Time (UTC), denoted by a Z at the end of the value, or with a time zone offset relative to UTC.
The expires property is OPTIONAL and, if present, specifies when the proof expires. If present, it MUST be an [XMLSCHEMA11-2] dateTimeStamp string, either in Universal Coordinated Time (UTC), denoted by a Z at the end of the value, or with a time zone offset relative to UTC.
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
The proofValue property MUST be used, as specified in 2.1 Proofs.
The contents of the value ("proof.proofValue") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.
if "proof.domain" field exists, it MUST be either a string, or an unordered set of strings.
if "proof.challenge" field exists, it MUST be a string.
if "proof.previousProof" field exists, it MUST be a string.
if "proof.nonce" field exists, it MUST be a string.
The value of the cryptosuite property MUST be a string that identifies the cryptographic suite.
{
                      "name": "AssertionError",
                      "message": "Expected at least one proof with cryptosuite eddsa-rdfc-2022: expected false to equal true",
                      "stack": "AssertionError: Expected at least one proof with cryptosuite eddsa-rdfc-2022: expected false to equal true\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:274:35)\n    at process.processImmediate (node:internal/timers:478: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.
{
                      "name": "AssertionError",
                      "message": "Expected https://w3id.org/security#cryptosuite with @value eddsa-rdfc-2022 & @type https://w3id.org/security#cryptosuiteString: expected false to equal true",
                      "stack": "AssertionError: Expected https://w3id.org/security#cryptosuite with @value eddsa-rdfc-2022 & @type https://w3id.org/security#cryptosuiteString: expected false to equal true\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:305:32)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }

eddsa-rdfc-2022 (issuer)

Implementation ⇒
Test Name
apicatalog.com Digital Bazaar Open Security and Identity SpruceID Trinsic bovine
The field "cryptosuite" MUST be "eddsa-rdfc-2022".
{
                      "name": "AssertionError",
                      "message": "Expected at least one proof to have \"cryptosuite\" with the value \"eddsa-rdfc-2022\": [\"eddsa-2022\"] does not contain \"eddsa-rdfc-2022\".: expected false to equal true",
                      "stack": "AssertionError: Expected at least one proof to have \"cryptosuite\" with the value \"eddsa-rdfc-2022\": [\"eddsa-2022\"] does not contain \"eddsa-rdfc-2022\".: expected false to equal true\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/10-rdfc-create.js:68:20)\n    at process.processImmediate (node:internal/timers:478:21)"
                    }
Dereferencing the "verificationMethod" MUST result in an object containing a type property with the value set to "Multikey".
The "proof.proofPurpose" field MUST match the verification relationship expressed by the verification method controller.
The "publicKeyMultibase" value of the verification method MUST be 34 bytes in length and start with the base-58-btc prefix (z).
["publicKeyMultibase"] MUST consist of a binary value that startswith the two-byte prefix 0xed01
"proofValue" field when decoded to raw bytes, MUST be 64 bytes in length if the associated public key is 32 bytes or 114 bytes in length if the public key is 57 bytes.
{
                      "name": "AssertionError",
                      "message": "Expected at least one eddsa-rdfc-2022 cryptosuite.: expected +0 to be at least 1",
                      "stack": "AssertionError: Expected at least one eddsa-rdfc-2022 cryptosuite.: expected +0 to be at least 1\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/10-rdfc-create.js:198:44)\n    at process.processImmediate (node:internal/timers:478:21)"
                    }
"proof" MUST verify when using a conformant verifier.

Data Integrity (eddsa-rdfc-2022 verifiers)

Verifier ⇒
Test Name
apicatalog.com Digital Bazaar Open Security and Identity SpruceID Trinsic bovine
If the "proof" field is missing, an error MUST be raised.
If the "proof" field is invalid, an error MUST be raised.
If the "proof.type" field is missing, an error MUST be raised.
If the "proof.type" field is not the string "DataIntegrityProof", an error MUST be raised.
If the "proof.verificationMethod" field is missing, an error MUST be raised.
If the "proof.verificationMethod" field is invalid, an error MUST be raised.
If the "proof.proofPurpose" field is missing, an error MUST be raised.
If the "proof.proofPurpose" field is invalid, an error MUST be raised.
If the "proof.proofPurpose" value does not match "options.expectedProofPurpose", an error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'access-control-allow-origin': '*', 'alt-svc': 'h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000', authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'no-cache, no-store, must-revalidate', 'content-length': '945', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:34 GMT', etag: 'W/\"3b1-zHZ4uN8XgBFNX6i/uKWzzMqVFzw\"', expires: '0', pragma: 'no-cache', server: 'Google Frontend', vary: 'X-HTTP-Method-Override, Accept-Encoding', via: '1.1 google', 'x-cloud-trace-context': '1518144597ccfadb4ab5e75188856aa0' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'access-control-allow-origin': '*', 'alt-svc': 'h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000', authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'no-cache, no-store, must-revalidate', 'content-length': '945', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:34 GMT', etag: 'W/\"3b1-zHZ4uN8XgBFNX6i/uKWzzMqVFzw\"', expires: '0', pragma: 'no-cache', server: 'Google Frontend', vary: 'X-HTTP-Method-Override, Accept-Encoding', via: '1.1 google', 'x-cloud-trace-context': '1518144597ccfadb4ab5e75188856aa0' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:78:7)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', connection: 'keep-alive', 'content-length': '0', 'content-type': 'text/html; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:42 GMT', server: 'nginx/1.18.0 (Ubuntu)' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', connection: 'keep-alive', 'content-length': '0', 'content-type': 'text/html; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:42 GMT', server: 'nginx/1.18.0 (Ubuntu)' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:78:7)"
                    }
If the "proof.proofValue" field is missing, an error MUST be raised.
If the "proof.proofValue" field is invalid, an error MUST be raised.
The date and time the proof was created is OPTIONAL and, if included, MUST be specified as an [XMLSCHEMA11-2] dateTimeStamp string, either in Universal Coordinated Time (UTC), denoted by a Z at the end of the value, or with a time zone offset relative to UTC.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'access-control-allow-origin': '*', 'alt-svc': 'h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000', authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'no-cache, no-store, must-revalidate', 'content-length': '936', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:34 GMT', etag: 'W/\"3a8-mOQWaO6dvCqdK4vKycIyfppfGTc\"', expires: '0', pragma: 'no-cache', server: 'Google Frontend', vary: 'X-HTTP-Method-Override, Accept-Encoding', via: '1.1 google', 'x-cloud-trace-context': 'e557ea960d5ac0003c12b7e0d5fa9493' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'access-control-allow-origin': '*', 'alt-svc': 'h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000', authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'no-cache, no-store, must-revalidate', 'content-length': '936', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:34 GMT', etag: 'W/\"3a8-mOQWaO6dvCqdK4vKycIyfppfGTc\"', expires: '0', pragma: 'no-cache', server: 'Google Frontend', vary: 'X-HTTP-Method-Override, Accept-Encoding', via: '1.1 google', 'x-cloud-trace-context': 'e557ea960d5ac0003c12b7e0d5fa9493' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:109:9)"
                    }
(created) Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'access-control-allow-origin': '*', 'alt-svc': 'h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000', authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'no-cache, no-store, must-revalidate', 'content-length': '944', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:34 GMT', etag: 'W/\"3b0-E98SXrNkYObdoEkueKdbrEhef7c\"', expires: '0', pragma: 'no-cache', server: 'Google Frontend', vary: 'X-HTTP-Method-Override, Accept-Encoding', via: '1.1 google', 'x-cloud-trace-context': '0346619bb54be772a0c9b1d1b57b4de5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'access-control-allow-origin': '*', 'alt-svc': 'h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000', authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'no-cache, no-store, must-revalidate', 'content-length': '944', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:34 GMT', etag: 'W/\"3b0-E98SXrNkYObdoEkueKdbrEhef7c\"', expires: '0', pragma: 'no-cache', server: 'Google Frontend', vary: 'X-HTTP-Method-Override, Accept-Encoding', via: '1.1 google', 'x-cloud-trace-context': '0346619bb54be772a0c9b1d1b57b4de5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:117:9)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '465', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:37 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '465', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:37 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:117:9)"
                    }
(expires) Time values that are incorrectly serialized without an offset MUST be interpreted as UTC.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'private', 'content-encoding': 'gzip', 'content-type': 'application/json', date: 'Sun, 21 Jul 2024 05:06:30 GMT', server: 'Google Frontend', 'transfer-encoding': 'chunked', vary: 'Accept-Encoding', 'x-cloud-trace-context': '725a348f7bc500179a59466f56b4d3ee' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'private', 'content-encoding': 'gzip', 'content-type': 'application/json', date: 'Sun, 21 Jul 2024 05:06:30 GMT', server: 'Google Frontend', 'transfer-encoding': 'chunked', vary: 'Accept-Encoding', 'x-cloud-trace-context': '725a348f7bc500179a59466f56b4d3ee' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:122:9)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'access-control-allow-origin': '*', 'alt-svc': 'h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000', authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'no-cache, no-store, must-revalidate', 'content-length': '977', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:34 GMT', etag: 'W/\"3d1-Pi+z40sXMv3MyYUhNDrVKL9/ieE\"', expires: '0', pragma: 'no-cache', server: 'Google Frontend', vary: 'X-HTTP-Method-Override, Accept-Encoding', via: '1.1 google', 'x-cloud-trace-context': 'd9055df9f3aad25a59c59d618ec81709' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { 'access-control-allow-origin': '*', 'alt-svc': 'h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000', authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'cache-control': 'no-cache, no-store, must-revalidate', 'content-length': '977', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:34 GMT', etag: 'W/\"3d1-Pi+z40sXMv3MyYUhNDrVKL9/ieE\"', expires: '0', pragma: 'no-cache', server: 'Google Frontend', vary: 'X-HTTP-Method-Override, Accept-Encoding', via: '1.1 google', 'x-cloud-trace-context': 'd9055df9f3aad25a59c59d618ec81709' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:122:9)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '465', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:37 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '465', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:37 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:122:9)"
                    }
If the "proof.proofValue" field is not multibase-encoded, an error MUST be raised.
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.
If the "options.domain" is set and it does not match "proof.domain", an error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', connection: 'keep-alive', 'content-length': '0', 'content-type': 'text/html; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:44 GMT', server: 'nginx/1.18.0 (Ubuntu)' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', connection: 'keep-alive', 'content-length': '0', 'content-type': 'text/html; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:44 GMT', server: 'nginx/1.18.0 (Ubuntu)' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:149:9)"
                    }
If the "options.challenge" is set and it does not match "proof.challenge", an error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', connection: 'keep-alive', 'content-length': '0', 'content-type': 'text/html; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:44 GMT', server: 'nginx/1.18.0 (Ubuntu)' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', connection: 'keep-alive', 'content-length': '0', 'content-type': 'text/html; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:44 GMT', server: 'nginx/1.18.0 (Ubuntu)' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:36:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:158:9)"
                    }

eddsa-rdfc-2022 (verifier)

Verifier ⇒
Test Name
apicatalog.com Digital Bazaar Open Security and Identity SpruceID Trinsic bovine
verifies a valid eddsa-rdfc-2022 proof.
{
                      "name": "AssertionError",
                      "message": "Expected a result from verifier.: expected undefined to exist",
                      "stack": "AssertionError: Expected a result from verifier.: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at verificationSuccess (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/assertions.js:66:10)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/20-rdfc-verify.js:44:13)"
                    }
If the "proofValue" field, when decoded to raw bytes, is not 64 bytes in length if the associated public key is 32 bytes in length, or 114 bytes in length if the public key is 57 bytes in length, an error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '633', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:45 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '633', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:45 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/assertions.js:49:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/20-rdfc-verify.js:57:11)"
                    }
fails verification when credential is not canonicalized correctly.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '633', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:45 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '633', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:45 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/assertions.js:49:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/20-rdfc-verify.js:68:13)"
                    }
If the "cryptosuite" field is not the string "eddsa-rdfc-2022", an error MUST be raised.

eddsa-rdfc-2022 (interop)

Verifier ⇒
Issuer
apicatalog.com Digital Bazaar Open Security and Identity SpruceID Trinsic bovine
apicatalog.com
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
Digital Bazaar
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
Open Security and Identity
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
SpruceID
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
Trinsic
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
bovine
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/30-rdfc-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }

Data Integrity (eddsa-jcs-2022 issuers)

Issuer ⇒
Test Name
Open Security and Identity bovine
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 proof type used for the cryptographic proof MUST be specified as a string that maps to a URL.
The type property MUST contain the string DataIntegrityProof.
If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.
The date and time the proof was created is OPTIONAL and, if included, MUST be specified as an [XMLSCHEMA11-2] dateTimeStamp string, either in Universal Coordinated Time (UTC), denoted by a Z at the end of the value, or with a time zone offset relative to UTC.
The expires property is OPTIONAL and, if present, specifies when the proof expires. If present, it MUST be an [XMLSCHEMA11-2] dateTimeStamp string, either in Universal Coordinated Time (UTC), denoted by a Z at the end of the value, or with a time zone offset relative to UTC.
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
The proofValue property MUST be used, as specified in 2.1 Proofs.
The contents of the value ("proof.proofValue") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.
if "proof.domain" field exists, it MUST be either a string, or an unordered set of strings.
if "proof.challenge" field exists, it MUST be a string.
if "proof.previousProof" field exists, it MUST be a string.
if "proof.nonce" field exists, it MUST be a string.

eddsa-jcs-2022 (issuer)

Implementation ⇒
Test Name
Open Security and Identity bovine
The field "cryptosuite" MUST be "eddsa-jcs-2022".
Dereferencing the "verificationMethod" MUST result in an object containing a type property with "Multikey" value.
The "proof.proofPurpose" field MUST match the verification relationship expressed by the verification method controller.
The "publicKeyMultibase" value of the verification method MUST be 34 bytes in length and starts with the base-58-btc prefix (z).
"proofValue" field when decoded to raw bytes, MUST be 64 bytes in length if the associated public key is 32 bytes or 114 bytes in length if the public key is 57 bytes.
"proof" MUST verify when using a conformant verifier.

eddsa-jcs-2022 (verifier)

Verifier ⇒
Test Name
Open Security and Identity bovine
verifies a valid eddsa-jcs-2022 proof.
{
                      "name": "AssertionError",
                      "message": "Expected a result from verifier.: expected undefined to exist",
                      "stack": "AssertionError: Expected a result from verifier.: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at verificationSuccess (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/assertions.js:66:10)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/50-jcs-verify.js:57:13)"
                    }
If the "proofValue" field, when decoded to raw bytes, is not 64 bytes in length if the associated public key is 32 bytes in length, or 114 bytes in length if the public key is 57 bytes in length, an error MUST be raised.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '633', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:55 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '633', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:55 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/assertions.js:49:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/50-jcs-verify.js:70:11)"
                    }
fails verification when credential is not canonicalized correctly.
{
                      "name": "AssertionError",
                      "message": "Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '633', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:55 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist",
                      "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '633', 'content-type': 'application/json; charset=utf-8', date: 'Sun, 21 Jul 2024 05:06:55 GMT', server: 'Python/3.9 aiohttp/3.9.5' }, body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true }, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at verificationFail (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/assertions.js:49:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/50-jcs-verify.js:76:13)"
                    }
If the "cryptosuite" field is not the string "eddsa-jcs-2022", an error MUST be raised.

eddsa-jcs-2022 (interop)

Verifier ⇒
Issuer
Open Security and Identity bovine
Open Security and Identity
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/60-jcs-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }
bovine
{
                      "name": "AssertionError",
                      "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist",
                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist\n    at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38)\n    at Context. (file:///home/runner/work/vc-di-eddsa-test-suite/vc-di-eddsa-test-suite/tests/60-jcs-interop.js:56:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                    }