Try our Chrome extension
Easily add the current web-page from your browser directly into your changedetection.io tool, more great features coming soon!Changedetection.io needs your support!
You can help us by supporting changedetection.io on these platforms;
- Rate us at AlternativeTo.net
- Star us on GitHub
- Follow us at Twitter/X
- G2 Software reviews
- Check us out on LinkedIn
- And tell your friends and colleagues :)
The more popular changedetection.io is, the more time we can dedicate to adding amazing features!
Many thanks :)
changedetection.io team
Not yet seconds ago
False
Not yet seconds ago
5 hours ago
| The purpose of this test suite is to demonstrate a path to interoperability for the BBS data integrity cryptosuite. The technologies explored in this test suite are experimental. This document contains the most recent interoperability report for a DataIntegrityProof using the BBS cryptosuite. This report is auto-generated. Conformance Testing Results These tests were run on 20 September 2026 at 5:16 am UTC Key 🚫 Pending ✓ Passed ❌ Failed ⊘ Access Denied ⏱ Timeout — Not Implemented The results of the tests are shown below: Data Integrity (bbs-2023 issuers) Issuer ⇒ Digital Bazaar, Inc. Grotto Networking Procivis One Core SpruceID Trential ⇓ Test Name When expressing a data integrity proof on an object, a proof property MUST be used. ✓ ✓ 🚫 ✓ ✓ Test skipped. If present (proof), its value MUST be either a single object, or an unordered set of objects. ✓ ✓ 🚫 ✓ ✓ Test skipped. ("proof.id") An optional identifier for the proof, which MUST be a URL. ✓ ✓ 🚫 ✓ ✓ Test skipped. The specific type of proof MUST be specified as a string that maps to a URL. ✓ ✓ 🚫 ✓ ✓ Test skipped. The type property MUST contain the string DataIntegrityProof. ✓ ✓ 🚫 ✓ ✓ Test skipped. The proofValue property MUST be used, as specified in 2.1 Proofs. ✓ ✓ 🚫 ✓ ✓ Test skipped. If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. ✓ ✓ 🚫 ✓ ✓ Test skipped. If specified (proof.cryptosuite), its value MUST be a string. ✓ ✓ 🚫 ✓ ✓ Test skipped. 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]. ✓ ✓ 🚫 ✓ ✓ Test skipped. The reason the proof was created ("proof.proofPurpose") MUST be specified as a string that maps to a URL. ✓ ✓ 🚫 ✓ ✓ Test skipped. ("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. ✓ ✓ 🚫 ✓ ✓ Test skipped. 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. ✓ ✓ 🚫 ✓ ✓ Test skipped. 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. ✓ ✓ 🚫 ✓ ✓ Test skipped. If the algorithm produces an error, the error MUST be propagated and SHOULD convey the error type. ✓ ✓ 🚫 ✓ ✓ Test skipped. The value of the cryptosuite property MUST be a string that identifies the cryptographic suite. ✓ ✓ 🚫 ✓ ✓ Test skipped. 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. ✓ ✓ 🚫 ✓ ✓ Test skipped. bbs-2023 (issuers) VC Version 1.1 Issuer ⇒ Digital Bazaar, Inc. Grotto Networking Procivis One Core SpruceID Trential ⇓ Test Name The cryptosuite property of the proof MUST be bbs-2023. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The type property of the proof MUST be DataIntegrityProof. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The value of the proofValue property of the proof MUST be a BBS signature or BBS proof produced according to [CFRG-BBS-SIGNATURE] that is serialized and encoded according to procedures in section 3. Algorithms. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. A conforming proof is any concrete expression of the data model that complies with the normative statements in this specification. Specifically, all relevant normative statements in Sections 2. Data Model and 3. Algorithms of this document MUST be enforced. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The verificationMethod property of the proof MUST be a URL. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Dereferencing "verificationMethod" MUST result in an object containing a type property with "Multikey" value. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The publicKeyMultibase property represents a Multibase-encoded Multikey expression of a BLS12-381 public key in the G2 group. The encoding of this field is the two-byte prefix 0xeb01 followed by the 96-byte compressed public key data. The 98-byte value is then encoded using base58-btc (z) as the prefix. Any other encodings MUST NOT be allowed. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The transformation options MUST contain a type identifier for the cryptographic suite (type), a cryptosuite identifier (cryptosuite), and a verification method (verificationMethod). ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. the HMAC key MUST be the same length as the digest size ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. CBOR-encode components per [RFC8949] where CBOR tagging MUST NOT be used on any of the components. Append the produced encoded value to proofValue. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The transformation options MUST contain an array of mandatory JSON pointers (mandatoryPointers) ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Initialize components to an array that is the result of CBOR-decoding the bytes that follow the three-byte BBS disclosure proof header. If the result is not an array of five or six elements — a byte array, a map of integers to integers, two arrays of integers, and one or two byte arrays; an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. bbs-2023 (issuers) VC Version 2.0 Issuer ⇒ Digital Bazaar, Inc. Grotto Networking Procivis One Core SpruceID Trential ⇓ Test Name The cryptosuite property of the proof MUST be bbs-2023. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The type property of the proof MUST be DataIntegrityProof. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The value of the proofValue property of the proof MUST be a BBS signature or BBS proof produced according to [CFRG-BBS-SIGNATURE] that is serialized and encoded according to procedures in section 3. Algorithms. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. ❌ Expected no verification error.: expected VerificationError: Verification error(s). { errors: [ Error: … { toJSON: [Function …] } ] } to not exist A conforming proof is any concrete expression of the data model that complies with the normative statements in this specification. Specifically, all relevant normative statements in Sections 2. Data Model and 3. Algorithms of this document MUST be enforced. ✓ 🚫 🚫 AssertionError: Expected no verification error.: expected VerificationError: Verification error(s). { errors: [ Error: … { toJSON: [Function …] } ] } to not exist ✓ Test skipped. Test skipped. at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38) at shouldVerifyDerivedProof (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:211:16) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/create.js:122:11) The verificationMethod property of the proof MUST be a URL. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Dereferencing "verificationMethod" MUST result in an object containing a type property with "Multikey" value. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The publicKeyMultibase property represents a Multibase-encoded Multikey expression of a BLS12-381 public key in the G2 group. The encoding of this field is the two-byte prefix 0xeb01 followed by the 96-byte compressed public key data. The 98-byte value is then encoded using base58-btc (z) as the prefix. Any other encodings MUST NOT be allowed. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The transformation options MUST contain a type identifier for the cryptographic suite (type), a cryptosuite identifier (cryptosuite), and a verification method (verificationMethod). ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. the HMAC key MUST be the same length as the digest size ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. CBOR-encode components per [RFC8949] where CBOR tagging MUST NOT be used on any of the components. Append the produced encoded value to proofValue. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The transformation options MUST contain an array of mandatory JSON pointers (mandatoryPointers) ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Initialize components to an array that is the result of CBOR-decoding the bytes that follow the three-byte BBS disclosure proof header. If the result is not an array of five or six elements — a byte array, a map of integers to integers, two arrays of integers, and one or two byte arrays; an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Data Integrity (bbs-2023 verifiers) VC 1.1 Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Test Name ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] When deserializing to RDF, implementations MUST ensure that the base URL is set to null. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:39:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] Conforming processors MUST produce errors when non-conforming documents are consumed. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:51:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:63:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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 ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:82:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] The type property MUST contain the string DataIntegrityProof. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:113:11) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:139:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] The proofValue property MUST be used, as specified in 2.1 Proofs. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async shouldBeProofValue (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:311:3) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] ("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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async shouldBeProofValue (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:311:3) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:165:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:194:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] If options has a non-null domain item, it MUST be equal to proof.domain or an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:246:9) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] If options has a non-null challenge item, it MUST be equal to proof.challenge or an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:257:9) Data Integrity (bbs-2023 verifiers) VC 2.0 Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Test Name ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] When deserializing to RDF, implementations MUST ensure that the base URL is set to null. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:39:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] Conforming processors MUST produce errors when non-conforming documents are consumed. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:51:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:63:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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 ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:82:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] The type property MUST contain the string DataIntegrityProof. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:113:11) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:139:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] The proofValue property MUST be used, as specified in 2.1 Proofs. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async shouldBeProofValue (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:311:3) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] ("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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async shouldBeProofValue (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:311:3) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:165:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:194:7) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] If options has a non-null domain item, it MUST be equal to proof.domain or an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:246:9) ❌ received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] AssertionError: received HTTP status ${status}: expected 503 to be one of [ 400, 422 ] If options has a non-null challenge item, it MUST be equal to proof.challenge or an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ at shouldBeErrorResponse (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:278:28) ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:85:3) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:257:9) bbs-2023 (verifiers) VC 1.1 Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Test Name ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] If the proofValue string does not start with u (U+0075 LATIN SMALL LETTER U), indicating that it is a multibase-base64url-no-pad-encoded value, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:63:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] If proofConfig.type is not set to DataIntegrityProof and/or proofConfig.cryptosuite is not set to bbs-2023, an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:70:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] Whenever this algorithm (base proof) encodes strings, it MUST use UTF-8 encoding. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:90:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] The proof options MUST contain a type identifier for the cryptographic suite (type) and MUST contain a cryptosuite identifier (cryptosuite). A proof configuration object is produced as output. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:97:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] CBOR-encode components per [RFC8949] where CBOR tagging MUST NOT be used on any of the components. Append the produced encoded value to proofValue. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:115:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:126:11) ❌ Verified invalid VC "proofTypeAndCryptosuite" version 1.1 keyType P-381: expected 503 to be one of [ 400, 422 ] Conforming processors MUST produce errors when non-conforming documents are consumed. ✓ ✓ AssertionError: Verified invalid VC "proofTypeAndCryptosuite" version 1.1 keyType P-381: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:132:13) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] If the decodedProofValue starts with any other three byte sequence, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:145:11) bbs-2023 (verifiers) VC 2.0 Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Test Name ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] If the proofValue string does not start with u (U+0075 LATIN SMALL LETTER U), indicating that it is a multibase-base64url-no-pad-encoded value, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:63:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] If proofConfig.type is not set to DataIntegrityProof and/or proofConfig.cryptosuite is not set to bbs-2023, an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:70:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] Whenever this algorithm (base proof) encodes strings, it MUST use UTF-8 encoding. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:90:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] The proof options MUST contain a type identifier for the cryptographic suite (type) and MUST contain a cryptosuite identifier (cryptosuite). A proof configuration object is produced as output. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:97:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] CBOR-encode components per [RFC8949] where CBOR tagging MUST NOT be used on any of the components. Append the produced encoded value to proofValue. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:115:11) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] 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. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:126:11) ❌ Verified invalid VC "proofTypeAndCryptosuite" version 2.0 keyType P-381: expected 503 to be one of [ 400, 422 ] Conforming processors MUST produce errors when non-conforming documents are consumed. ✓ ✓ AssertionError: Verified invalid VC "proofTypeAndCryptosuite" version 2.0 keyType P-381: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:132:13) ❌ Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] If the decodedProofValue starts with any other three byte sequence, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ ✓ AssertionError: Expected HTTP Status code 400 or 422 for invalid input!: expected 503 to be one of [ 400, 422 ] ✓ ✓ ✓ at verificationFail (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:45:26) at process.processTicksAndRejections (node:internal/process/task_queues:103:5) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/verify.js:145:11) bbs-2023 (interop) Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Issuer | The purpose of this test suite is to demonstrate a path to interoperability for the BBS data integrity cryptosuite. The technologies explored in this test suite are experimental. This document contains the most recent interoperability report for a DataIntegrityProof using the BBS cryptosuite. This report is auto-generated. Conformance Testing Results These tests were run on 1 November 2026 at 5:10 am UTC Key 🚫 Pending ✓ Passed ❌ Failed ⊘ Access Denied ⏱ Timeout — Not Implemented The results of the tests are shown below: Data Integrity (bbs-2023 issuers) Issuer ⇒ Digital Bazaar, Inc. Grotto Networking Procivis One Core SpruceID Trential ⇓ Test Name When expressing a data integrity proof on an object, a proof property MUST be used. ✓ ✓ 🚫 ✓ ✓ Test skipped. If present (proof), its value MUST be either a single object, or an unordered set of objects. ✓ ✓ 🚫 ✓ ✓ Test skipped. ("proof.id") An optional identifier for the proof, which MUST be a URL. ✓ ✓ 🚫 ✓ ✓ Test skipped. The specific type of proof MUST be specified as a string that maps to a URL. ✓ ✓ 🚫 ✓ ✓ Test skipped. The type property MUST contain the string DataIntegrityProof. ✓ ✓ 🚫 ✓ ✓ Test skipped. The proofValue property MUST be used, as specified in 2.1 Proofs. ✓ ✓ 🚫 ✓ ✓ Test skipped. If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. ✓ ✓ 🚫 ✓ ✓ Test skipped. If specified (proof.cryptosuite), its value MUST be a string. ✓ ✓ 🚫 ✓ ✓ Test skipped. 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]. ✓ ✓ 🚫 ✓ ✓ Test skipped. The reason the proof was created ("proof.proofPurpose") MUST be specified as a string that maps to a URL. ✓ ✓ 🚫 ✓ ✓ Test skipped. ("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. ✓ ✓ 🚫 ✓ ✓ Test skipped. 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. ✓ ✓ 🚫 ✓ ✓ Test skipped. 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. ✓ ✓ 🚫 ✓ ✓ Test skipped. If the algorithm produces an error, the error MUST be propagated and SHOULD convey the error type. ✓ ✓ 🚫 ✓ ✓ Test skipped. The value of the cryptosuite property MUST be a string that identifies the cryptographic suite. ✓ ✓ 🚫 ✓ ✓ Test skipped. 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. ✓ ✓ 🚫 ✓ ✓ Test skipped. bbs-2023 (issuers) VC Version 1.1 Issuer ⇒ Digital Bazaar, Inc. Grotto Networking Procivis One Core SpruceID Trential ⇓ Test Name The cryptosuite property of the proof MUST be bbs-2023. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The type property of the proof MUST be DataIntegrityProof. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The value of the proofValue property of the proof MUST be a BBS signature or BBS proof produced according to [CFRG-BBS-SIGNATURE] that is serialized and encoded according to procedures in section 3. Algorithms. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. A conforming proof is any concrete expression of the data model that complies with the normative statements in this specification. Specifically, all relevant normative statements in Sections 2. Data Model and 3. Algorithms of this document MUST be enforced. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The verificationMethod property of the proof MUST be a URL. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Dereferencing "verificationMethod" MUST result in an object containing a type property with "Multikey" value. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The publicKeyMultibase property represents a Multibase-encoded Multikey expression of a BLS12-381 public key in the G2 group. The encoding of this field is the two-byte prefix 0xeb01 followed by the 96-byte compressed public key data. The 98-byte value is then encoded using base58-btc (z) as the prefix. Any other encodings MUST NOT be allowed. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The transformation options MUST contain a type identifier for the cryptographic suite (type), a cryptosuite identifier (cryptosuite), and a verification method (verificationMethod). ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. the HMAC key MUST be the same length as the digest size ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. CBOR-encode components per [RFC8949] where CBOR tagging MUST NOT be used on any of the components. Append the produced encoded value to proofValue. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The transformation options MUST contain an array of mandatory JSON pointers (mandatoryPointers) ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Initialize components to an array that is the result of CBOR-decoding the bytes that follow the three-byte BBS disclosure proof header. If the result is not an array of five or six elements — a byte array, a map of integers to integers, two arrays of integers, and one or two byte arrays; an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. bbs-2023 (issuers) VC Version 2.0 Issuer ⇒ Digital Bazaar, Inc. Grotto Networking Procivis One Core SpruceID Trential ⇓ Test Name The cryptosuite property of the proof MUST be bbs-2023. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The type property of the proof MUST be DataIntegrityProof. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The value of the proofValue property of the proof MUST be a BBS signature or BBS proof produced according to [CFRG-BBS-SIGNATURE] that is serialized and encoded according to procedures in section 3. Algorithms. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. ❌ Expected no verification error.: expected VerificationError: Verification error(s). { errors: [ Error: … { toJSON: [Function …] } ] } to not exist A conforming proof is any concrete expression of the data model that complies with the normative statements in this specification. Specifically, all relevant normative statements in Sections 2. Data Model and 3. Algorithms of this document MUST be enforced. ✓ 🚫 🚫 AssertionError: Expected no verification error.: expected VerificationError: Verification error(s). { errors: [ Error: … { toJSON: [Function …] } ] } to not exist ✓ Test skipped. Test skipped. at should.not.exist (node_modules/chai/lib/chai/interface/should.js:208:38) at shouldVerifyDerivedProof (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/assertions.js:211:16) at async Context.<anonymous> (file:///home/runner/work/vc-di-bbs-test-suite/vc-di-bbs-test-suite/tests/suites/create.js:122:11) The verificationMethod property of the proof MUST be a URL. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Dereferencing "verificationMethod" MUST result in an object containing a type property with "Multikey" value. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The publicKeyMultibase property represents a Multibase-encoded Multikey expression of a BLS12-381 public key in the G2 group. The encoding of this field is the two-byte prefix 0xeb01 followed by the 96-byte compressed public key data. The 98-byte value is then encoded using base58-btc (z) as the prefix. Any other encodings MUST NOT be allowed. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The transformation options MUST contain a type identifier for the cryptographic suite (type), a cryptosuite identifier (cryptosuite), and a verification method (verificationMethod). ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. the HMAC key MUST be the same length as the digest size ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. CBOR-encode components per [RFC8949] where CBOR tagging MUST NOT be used on any of the components. Append the produced encoded value to proofValue. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. The transformation options MUST contain an array of mandatory JSON pointers (mandatoryPointers) ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Initialize components to an array that is the result of CBOR-decoding the bytes that follow the three-byte BBS disclosure proof header. If the result is not an array of five or six elements — a byte array, a map of integers to integers, two arrays of integers, and one or two byte arrays; an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ 🚫 🚫 ✓ ✓ Test skipped. Test skipped. Data Integrity (bbs-2023 verifiers) VC 1.1 Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Test Name 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. ✓ ✓ ✓ ✓ ✓ ✓ If options has a non-null domain item, it MUST be equal to proof.domain or an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ If options has a non-null challenge item, it MUST be equal to proof.challenge or an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ Data Integrity (bbs-2023 verifiers) VC 2.0 Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Test Name 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. ✓ ✓ ✓ ✓ ✓ ✓ If options has a non-null domain item, it MUST be equal to proof.domain or an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ If options has a non-null challenge item, it MUST be equal to proof.challenge or an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ bbs-2023 (verifiers) VC 1.1 Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Test Name If the proofValue string does not start with u (U+0075 LATIN SMALL LETTER U), indicating that it is a multibase-base64url-no-pad-encoded value, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ If proofConfig.type is not set to DataIntegrityProof and/or proofConfig.cryptosuite is not set to bbs-2023, an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ Whenever this algorithm (base proof) encodes strings, it MUST use UTF-8 encoding. ✓ ✓ ✓ ✓ ✓ ✓ The proof options MUST contain a type identifier for the cryptographic suite (type) and MUST contain a cryptosuite identifier (cryptosuite). A proof configuration object is produced as output. ✓ ✓ ✓ ✓ ✓ ✓ CBOR-encode components per [RFC8949] where CBOR tagging MUST NOT be used on any of the components. Append the produced encoded value to proofValue. ✓ ✓ ✓ ✓ ✓ ✓ 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. ✓ ✓ ✓ ✓ ✓ ✓ Conforming processors MUST produce errors when non-conforming documents are consumed. ✓ ✓ ✓ ✓ ✓ ✓ If the decodedProofValue starts with any other three byte sequence, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ bbs-2023 (verifiers) VC 2.0 Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Test Name If the proofValue string does not start with u (U+0075 LATIN SMALL LETTER U), indicating that it is a multibase-base64url-no-pad-encoded value, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ If proofConfig.type is not set to DataIntegrityProof and/or proofConfig.cryptosuite is not set to bbs-2023, an error MUST be raised and SHOULD convey an error type of PROOF_GENERATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ Whenever this algorithm (base proof) encodes strings, it MUST use UTF-8 encoding. ✓ ✓ ✓ ✓ ✓ ✓ The proof options MUST contain a type identifier for the cryptographic suite (type) and MUST contain a cryptosuite identifier (cryptosuite). A proof configuration object is produced as output. ✓ ✓ ✓ ✓ ✓ ✓ CBOR-encode components per [RFC8949] where CBOR tagging MUST NOT be used on any of the components. Append the produced encoded value to proofValue. ✓ ✓ ✓ ✓ ✓ ✓ 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. ✓ ✓ ✓ ✓ ✓ ✓ Conforming processors MUST produce errors when non-conforming documents are consumed. ✓ ✓ ✓ ✓ ✓ ✓ If the decodedProofValue starts with any other three byte sequence, an error MUST be raised and SHOULD convey an error type of PROOF_VERIFICATION_ERROR. ✓ ✓ ✓ ✓ ✓ ✓ bbs-2023 (interop) Verifier ⇒ Digital Bazaar, Inc. Grotto Networking Netis Procivis One Core SpruceID Trential ⇓ Issuer |
For now, Differences are performed on text, not graphically, only the latest screenshot is available.
Screenshot requires Playwright/WebDriver enabled