diff --git a/index.html b/index.html index a2a008b..d6a853a 100644 --- a/index.html +++ b/index.html @@ -84,22 +84,22 @@

Conformance Testing Results

- Tests passed 278/308 90% + Tests passed 291/360 80%

- Tests failed 30/308 10% + Tests failed 69/360 20%

- Failures 30 + Failures 69

Tests skipped 0

- Total tests 308 + Total tests 360

- These tests were run on + These tests were run on

Key

@@ -187,6 +187,7 @@

Data Integrity (issuer)

Digital Bazaar EWF LearnCard + Open Security and Identity SpruceID Trinsic @@ -355,6 +356,45 @@

Data Integrity (issuer)

+ +
+
+ + +
{
+                      "name": "AssertionError",
+                      "message": "Expected proof to exist.: expected undefined to exist",
+                      "stack": "AssertionError: Expected proof to exist.: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:43:14)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
+
+
@@ -584,6 +624,45 @@

Data Integrity (issuer)

+ +
+
+ + +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'id')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'id')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:50:18)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
+
+
@@ -813,8 +892,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'should')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'should')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:57:15)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -877,11 +963,6 @@

Data Integrity (issuer)

- - - - "proof.type" field MUST be "Ed25519Signature2020" and the associated document MUST include expected contexts. -
@@ -914,6 +995,11 @@

Data Integrity (issuer)

+ + + + "proof.type" field MUST be "Ed25519Signature2020" and the associated document MUST include expected contexts. +
@@ -978,8 +1064,8 @@

Data Integrity (issuer)

- -
+ +
- -
{
-                      "name": "AssertionError",
-                      "message": "expected false to equal true",
-                      "stack": "AssertionError: expected false to equal true\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:72:32)\n    at process.processImmediate (node:internal/timers:478:21)"
-                    }
-
@@ -1051,7 +1130,7 @@

Data Integrity (issuer)

{
                       "name": "AssertionError",
                       "message": "expected false to equal true",
-                      "stack": "AssertionError: expected false to equal true\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:89:37)\n    at process.processImmediate (node:internal/timers:478:21)"
+                      "stack": "AssertionError: expected false to equal true\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:72:32)\n    at process.processImmediate (node:internal/timers:478:21)"
                     }
@@ -1095,8 +1174,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'should')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'should')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:66:15)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
- - - - If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string. - - -
+ +
+ +
{
+                      "name": "AssertionError",
+                      "message": "expected false to equal true",
+                      "stack": "AssertionError: expected false to equal true\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:89:37)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -1196,6 +1284,11 @@

Data Integrity (issuer)

+ + + + If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string. +
@@ -1356,13 +1449,8 @@

Data Integrity (issuer)

- - - - if "proof.created" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value. - - -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'type')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'type')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:98:18)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -1457,6 +1552,11 @@

Data Integrity (issuer)

+ + + + if "proof.created" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value. +
@@ -1585,11 +1685,6 @@

Data Integrity (issuer)

- - - - if "proof.expires" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value. -
@@ -1622,8 +1717,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'created')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'created')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:112:18)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -1718,6 +1820,11 @@

Data Integrity (issuer)

+ + + + if "proof.expires" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value. +
@@ -1814,11 +1921,6 @@

Data Integrity (issuer)

- - - - "proof.verificationMethod" field MUST exist and be a valid URL. -
@@ -1883,8 +1985,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'expires')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'expires')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:122:18)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -1979,6 +2088,11 @@

Data Integrity (issuer)

+ + + + "proof.verificationMethod" field MUST exist and be a valid URL. +
@@ -2043,11 +2157,6 @@

Data Integrity (issuer)

- - - - "proof.proofPurpose" field MUST exist and be a string. -
@@ -2144,8 +2253,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'should')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'should')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:132:17)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -2240,6 +2356,11 @@

Data Integrity (issuer)

+ + + + "proof.proofPurpose" field MUST exist and be a string. +
@@ -2272,11 +2393,6 @@

Data Integrity (issuer)

- - - - "proof.proofValue" field MUST exist and be a string. -
@@ -2373,8 +2489,8 @@

Data Integrity (issuer)

- -
+ +
- -
{
-                      "name": "AssertionError",
-                      "message": "expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'",
-                      "stack": "AssertionError: expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:156:29)\n    at process.processImmediate (node:internal/timers:478:21)"
-                    }
-
- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'should')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'should')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:149:17)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -2511,7 +2627,7 @@

Data Integrity (issuer)

- The contents of the value ("proof.proofValue") MUST be expressed with a header and encoding as described in Section 2.4 Multibase. + "proof.proofValue" field MUST exist and be a string.
@@ -2641,9 +2757,9 @@

Data Integrity (issuer)

{
-                      "name": "TypeError",
-                      "message": "Cannot read properties of undefined (reading 'slice')",
-                      "stack": "TypeError: Cannot read properties of undefined (reading 'slice')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:169:26)\n    at process.processImmediate (node:internal/timers:478:21)"
+                      "name": "AssertionError",
+                      "message": "expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'",
+                      "stack": "AssertionError: expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:156:29)\n    at process.processImmediate (node:internal/timers:478:21)"
                     }
@@ -2680,8 +2796,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'should')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'should')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:156:17)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -2744,43 +2867,6 @@

Data Integrity (issuer)

- - - - if "proof.domain" field exists, it MUST be either a string, or an unordered set of strings. - - -
-
- -
-
@@ -2813,6 +2899,11 @@

Data Integrity (issuer)

+ + + + The contents of the value ("proof.proofValue") MUST be expressed with a header and encoding as described in Section 2.4 Multibase. +
@@ -2909,8 +3000,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'slice')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'slice')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:169:26)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -2973,13 +3071,8 @@

Data Integrity (issuer)

- - - - if "proof.challenge" field exists, it MUST be a string. - - -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'cryptosuite')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'cryptosuite')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:167:43)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -3074,6 +3174,11 @@

Data Integrity (issuer)

+ + + + if "proof.domain" field exists, it MUST be either a string, or an unordered set of strings. +
@@ -3202,11 +3307,6 @@

Data Integrity (issuer)

- - - - if "proof.previousProof" field exists, it MUST be a string. -
@@ -3239,8 +3339,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'domain')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'domain')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:185:18)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -3335,6 +3442,11 @@

Data Integrity (issuer)

+ + + + if "proof.challenge" field exists, it MUST be a string. +
@@ -3431,11 +3543,6 @@

Data Integrity (issuer)

- - - - if "proof.nonce" field exists, it MUST be a string. -
@@ -3500,8 +3607,8 @@

Data Integrity (issuer)

- -
+ +
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'challenge')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'challenge')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:196:20)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -3596,6 +3710,11 @@

Data Integrity (issuer)

+ + + + if "proof.previousProof" field exists, it MUST be a string. +
@@ -3660,92 +3779,6 @@

Data Integrity (issuer)

- - - - -
-
-
-
-
-
-
-
-
-
-

Ed25519Signature2020 (issuer)

- -
- - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - + - - - - - - - + + + + + - - - - - - + + +
-
- Issuer ⇒ -
-
- Test Name -
-
apicatalog.comDanube TechDigital BazaarEWFLearnCardSpruceIDTrinsic
"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.
@@ -3874,9 +3907,9 @@

Ed25519Signature2020 (issuer)

{
-                      "name": "AssertionError",
-                      "message": "Expected at least one Ed25519 proof.: expected +0 to be at least 1",
-                      "stack": "AssertionError: Expected at least one Ed25519 proof.: expected +0 to be at least 1\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:73:42)\n    at process.processImmediate (node:internal/timers:478:21)"
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'previousProof')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'previousProof')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:208:20)\n    at process.processImmediate (node:internal/timers:478:21)"
                     }
@@ -3945,6 +3978,11 @@

Ed25519Signature2020 (issuer)

if "proof.nonce" field exists, it MUST be a string.
@@ -3977,13 +4015,8 @@

Ed25519Signature2020 (issuer)

"proof" MUST verify when using a conformant verifier. -
+
+
- -
{
-                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
-                    }
-
@@ -4124,8 +4143,8 @@

Ed25519Signature2020 (issuer)

-
+
+
+ +
{
+                      "name": "TypeError",
+                      "message": "Cannot read properties of undefined (reading 'nonce')",
+                      "stack": "TypeError: Cannot read properties of undefined (reading 'nonce')\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:217:20)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -4233,8 +4259,8 @@

Ed25519Signature2020 (issuer)

-
-

Data Integrity (verifier)

+
+

Ed25519Signature2020 (issuer)

-
+
+
-
-
-
-
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected at least one Ed25519 proof.: expected +0 to be at least 1",
+                      "stack": "AssertionError: Expected at least one Ed25519 proof.: expected +0 to be at least 1\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:73:42)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
+
+
+
+
-
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected at least one Ed25519 proof.: expected +0 to be at least 1",
+                      "stack": "AssertionError: Expected at least one Ed25519 proof.: expected +0 to be at least 1\n    at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:73:42)\n    at process.processImmediate (node:internal/timers:478:21)"
+                    }
+
@@ -4530,11 +4571,6 @@

Data Integrity (verifier)

If the "proof" field is invalid, an error MUST be raised.
@@ -4567,8 +4603,13 @@

Data Integrity (verifier)

-
+
"proof" MUST verify when using a conformant verifier. +
+ +
{
+                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                    }
+
@@ -4727,8 +4775,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                    }
+
If the "proof.type" field is missing, an error MUST be raised.
@@ -4828,6 +4878,93 @@

Data Integrity (verifier)

+
+
+
+
+
+
+
+
+
+
+
+

Data Integrity (verifier)

+ +
+ + + + + + + + + + + + + + + + + - - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - - - + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - - -
+
+ Verifier ⇒ +
+
+ Test Name +
+
apicatalog.comDanube TechDigital BazaarEWFLearnCardOpen Security and IdentitySpruceIDTrinsic
If the "proof" field is missing, an error MUST be raised.
@@ -4988,13 +5125,8 @@

Data Integrity (verifier)

If the "proof.type" field is not the string "Ed25519Signature2020", an error MUST be raised. -
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:34:9)"
+                    }
+
@@ -5089,6 +5228,11 @@

Data Integrity (verifier)

If the "proof" field is invalid, an error MUST be raised.
@@ -5217,11 +5361,6 @@

Data Integrity (verifier)

If the "proof.verificationMethod" field is missing, an error MUST be raised.
@@ -5287,8 +5426,8 @@

Data Integrity (verifier)

{
                       "name": "AssertionError",
-                      "message": "Expected verifier to return an HTTP Status code: expected undefined to exist",
-                      "stack": "AssertionError: Expected verifier to return an HTTP Status code: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:37:10)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)"
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:40:9)"
                     }
@@ -5357,6 +5496,11 @@

Data Integrity (verifier)

If the "proof.type" field is missing, an error MUST be raised.
@@ -5453,11 +5597,6 @@

Data Integrity (verifier)

If the "proof.verificationMethod" field is invalid, an error MUST be raised.
@@ -5522,8 +5661,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:46:9)"
+                    }
+
@@ -5618,6 +5764,11 @@

Data Integrity (verifier)

If the "proof.type" field is not the string "Ed25519Signature2020", an error MUST be raised.
@@ -5682,11 +5833,6 @@

Data Integrity (verifier)

If the "proof.proofPurpose" field is missing, an error MUST be raised.
@@ -5783,8 +5929,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:04 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:04 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:52:7)"
+                    }
+
@@ -5879,6 +6032,11 @@

Data Integrity (verifier)

If the "proof.verificationMethod" field is missing, an error MUST be raised.
@@ -5911,13 +6069,8 @@

Data Integrity (verifier)

If the "proof.proofPurpose" field is invalid, an error MUST be raised. -
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected verifier to return an HTTP Status code: expected undefined to exist",
+                      "stack": "AssertionError: Expected verifier to return an HTTP Status code: expected undefined to exist\n    at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:37:10)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)"
+                    }
+
@@ -6044,8 +6204,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 500 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 500 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)"
+                    }
+
@@ -6143,7 +6310,7 @@

Data Integrity (verifier)

If the "proof.proofPurpose" value does not match "options.expectedProofPurpose", an error MUST be raised.If the "proof.verificationMethod" field is invalid, an error MUST be raised.
@@ -6305,8 +6472,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:62:7)"
+                    }
+
@@ -6369,11 +6543,6 @@

Data Integrity (verifier)

If the "proof.proofValue" field is missing, an error MUST be raised.
@@ -6406,6 +6575,11 @@

Data Integrity (verifier)

If the "proof.proofPurpose" field is missing, an error MUST be raised.
@@ -6566,8 +6740,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:67:7)"
+                    }
+
If the "proof.proofValue" field is invalid, an error MUST be raised.
@@ -6667,6 +6843,11 @@

Data Integrity (verifier)

If the "proof.proofPurpose" field is invalid, an error MUST be raised.
@@ -6827,13 +7008,8 @@

Data Integrity (verifier)

If the "proof.created" field is invalid, an error MUST be raised. -
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:72:7)"
+                    }
+
@@ -6928,6 +7111,11 @@

Data Integrity (verifier)

If the "proof.proofPurpose" value does not match "options.expectedProofPurpose", an error MUST be raised.
@@ -7056,11 +7244,6 @@

Data Integrity (verifier)

If the "proof.proofValue" field is not multibase-encoded, an error MUST be raised.
@@ -7093,8 +7276,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:78:7)"
+                    }
+
@@ -7189,6 +7379,11 @@

Data Integrity (verifier)

If the "proof.proofValue" field is missing, an error MUST be raised.
@@ -7285,11 +7480,6 @@

Data Integrity (verifier)

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.
@@ -7354,8 +7544,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:92:7)"
+                    }
+
@@ -7450,6 +7647,11 @@

Data Integrity (verifier)

If the "proof.proofValue" field is invalid, an error MUST be raised.
@@ -7514,11 +7716,6 @@

Data Integrity (verifier)

If the "options.domain" is set and it does not match "proof.domain", an error MUST be raised.
@@ -7615,8 +7812,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:99:7)"
+                    }
+
@@ -7711,6 +7915,11 @@

Data Integrity (verifier)

If the "proof.created" field is invalid, an error MUST be raised.
@@ -7743,11 +7952,6 @@

Data Integrity (verifier)

If the "options.challenge" is set and it does not match "proof.challenge", an error MUST be raised.
@@ -7876,8 +8080,8 @@

Data Integrity (verifier)

-
+
+
+ +
{
+                      "name": "AssertionError",
+                      "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400",
+                      "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n    at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:105:9)"
+                    }
+
@@ -7973,90 +8184,9 @@

Data Integrity (verifier)

-
-
-
-
-
-
-
-
-
-
-
-

Ed25519Signature2020 (verifier)

- -
- - - - - - - - - - - - - + - - - - - - - + + + + + - - - - - - + + + + + - - - - - - - + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-
- Verifier ⇒ -
-
- Test Name -
-
apicatalog.comDanube TechDigital BazaarEWFLearnCardSpruceIDTrinsic
MUST verify a valid VC with an Ed25519Signature2020 proofIf the "proof.proofValue" field is not multibase-encoded, an error MUST be raised.
@@ -8090,8 +8220,8 @@

Ed25519Signature2020 (verifier)

-
+
+
- -
{
-                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/assertions.js:64:10)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:56:13)"
-                    }
-
@@ -8225,8 +8348,8 @@

Ed25519Signature2020 (verifier)

-
+
+
+ +
{
+                      "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:113:7)"
+                    }
+
@@ -8289,11 +8419,6 @@

Ed25519Signature2020 (verifier)

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.
@@ -8326,6 +8451,11 @@

Ed25519Signature2020 (verifier)

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.
@@ -8486,8 +8616,8 @@

Ed25519Signature2020 (verifier)

-
+
+
+ +
{
+                      "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:122:7)"
+                    }
+
If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.
@@ -8587,6 +8719,11 @@

Ed25519Signature2020 (verifier)

If the "options.domain" is set and it does not match "proof.domain", an error MUST be raised.
@@ -8747,13 +8884,8 @@

Ed25519Signature2020 (verifier)

If a canonicalization data hashing algorithm SHA-2-256 is used, 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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:129: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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:138:9)"
+                    }
+
+
+
@@ -8989,8 +9268,8 @@

Ed25519Signature2020 (verifier)

-
-

Ed25519Signature2020 (interop)

+
+

Ed25519Signature2020 (verifier)

- -
{
-                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
-                    }
-
-
+
+
- -
{
-                      "name": "AssertionError",
-                      "message": "Expected verifier to not error.: expected HTTPError { …(7) } to not exist",
-                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError { …(7) } 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
-                    }
-
-
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:73:11)"
+                    }
+
+
+
+
+
+ +
+
+
+
+ +
+
If a canonicalization algorithm other than URDNA2015 is used, 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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:82:11)"
+                    }
+
+
+
+
+
+ +
+
+
+
+ +
+
If a canonicalization data hashing algorithm SHA-2-256 is used, 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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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 ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:91:11)"
+                    }
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+

Ed25519Signature2020 (interop)

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + - - - - - - - + + + + + - - - - - - - + + + + + - - - - - - - - - - @@ -10543,6 +12433,38 @@

Ed25519Signature2020 (interop)

+ @@ -10580,8 +12502,8 @@

Ed25519Signature2020 (interop)

- +
+
+ Verifier ⇒ +
+
+ Issuer +
+
apicatalog.comDanube TechDigital BazaarEWFLearnCardOpen Security and IdentitySpruceIDTrinsic
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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                    }
+
+
+
+
+
+ + +
{
+                      "name": "AssertionError",
+                      "message": "Expected verifier to not error.: expected HTTPError { …(7) } to not exist",
+                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError { …(7) } 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                    }
+
+
+
Danube Tech +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
-                    }
-
Danube Tech
@@ -9372,8 +11227,8 @@

Ed25519Signature2020 (interop)

-
+
+
- -
{
-                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
-                    }
-
@@ -9475,8 +11323,13 @@

Ed25519Signature2020 (interop)

-
+
EWF +
+ +
{
+                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                    }
+
@@ -9571,11 +11431,6 @@

Ed25519Signature2020 (interop)

Digital Bazaar
@@ -9608,8 +11463,8 @@

Ed25519Signature2020 (interop)

-
+
+
- -
{
-                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
-                    }
-
@@ -9711,8 +11559,8 @@

Ed25519Signature2020 (interop)

-
+
+
+ +
{
+                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                    }
+
LearnCard
@@ -9775,8 +11635,8 @@

Ed25519Signature2020 (interop)

-
+
+
+ +
{
+                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                    }
+
EWF
@@ -9851,8 +11713,8 @@

Ed25519Signature2020 (interop)

-
+
+
- -
{
-                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
-                    }
-
@@ -10018,6 +11873,11 @@

Ed25519Signature2020 (interop)

Open Security and Identity
@@ -10051,19 +11911,14 @@

Ed25519Signature2020 (interop)

{
                       "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                     }
LearnCard -
+
+
+ +
{
+                      "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                    }
+
@@ -10127,8 +11989,8 @@

Ed25519Signature2020 (interop)

{
                       "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                      "message": "Expected verifier to not error.: expected HTTPError: A validation error occured in … { …(6) } to not exist",
+                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: A validation error occured in … { …(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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
                     }
@@ -10166,14 +12028,14 @@

Ed25519Signature2020 (interop)

{
                       "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
+                      "message": "Expected verifier to not error.: expected HTTPError { message: [ …(7) ], …(6) } to not exist",
+                      "stack": "AssertionError: Expected verifier to not error.: expected HTTPError { message: [ …(7) ], …(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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66: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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
-                    }
-
@@ -10729,6 +12644,38 @@

Ed25519Signature2020 (interop)

+
+
+ +
+
diff --git a/index.json b/index.json index 5468cba..c4a4845 100644 --- a/index.json +++ b/index.json @@ -22,9 +22,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:e3c7a8b1-30ed-4fcf-a616-c5dc66d2435b", + "_testId": "urn:uuid:0a3ca57a-06b2-4865-a573-20d0914d4c26", "cell": { "columnId": "apicatalog.com", "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." @@ -48,9 +48,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:97f0c5e7-f990-431a-a1c9-880e728fed5f", + "_testId": "urn:uuid:75fc8bfa-07be-4965-81b6-a6d980736558", "cell": { "columnId": "apicatalog.com", "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." @@ -74,9 +74,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:9feb20b9-1bb6-4b4d-b97f-5e8c753c3a0e", + "_testId": "urn:uuid:fafa8672-22e9-419f-961e-7b0e84e0b3c4", "cell": { "columnId": "apicatalog.com", "rowId": "\"proof.type\" field MUST exist and be a string." @@ -100,9 +100,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:fd159fc0-a765-42aa-91b4-f3a1ada964e3", + "_testId": "urn:uuid:ecee6454-045f-4db6-9ef9-44c6ff30d127", "cell": { "columnId": "apicatalog.com", "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." @@ -126,9 +126,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:6ae1bd94-109e-4f54-8c9c-3b8bb2274571", + "_testId": "urn:uuid:dfe3822c-5ff5-4e23-a7f4-d95f2744c4a9", "cell": { "columnId": "apicatalog.com", "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." @@ -153,9 +153,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:0ec42556-483a-41a2-86a2-9a0a67a5de7d", + "_testId": "urn:uuid:9c2c1e5b-f281-4524-8cf9-a9ef1017487f", "cell": { "columnId": "apicatalog.com", "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." @@ -179,16 +179,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:1199f663-35ee-4ef8-b700-5fb3ce8f6b7b", + "_testId": "urn:uuid:012d6566-1eb5-42f3-b01d-acd11a7fd336", "cell": { "columnId": "apicatalog.com", "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -205,9 +205,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:b622dc83-4d5f-4992-990b-798ac730afb1", + "_testId": "urn:uuid:412d8247-d87c-4b89-adb9-d78f572da35a", "cell": { "columnId": "apicatalog.com", "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." @@ -231,9 +231,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:bb03dd81-8d68-4b77-b6a2-359be0659c9d", + "_testId": "urn:uuid:45dd858b-e45b-4f06-b8c5-324a72d6db96", "cell": { "columnId": "apicatalog.com", "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." @@ -257,9 +257,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:590b7035-b89c-4e3d-bcc8-28dc42988d40", + "_testId": "urn:uuid:2e7d5f09-a898-4b3b-8212-713bcd1e3ec6", "cell": { "columnId": "apicatalog.com", "rowId": "\"proof.proofValue\" field MUST exist and be a string." @@ -283,16 +283,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:60ebeec5-bc83-412a-b80d-b33991d65b3e", + "_testId": "urn:uuid:5d449d45-ec2a-478f-845c-3c2ac50c98f5", "cell": { "columnId": "apicatalog.com", "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -309,9 +309,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:c42eac4e-6c2f-4b8f-b892-8f4c55e3e8a1", + "_testId": "urn:uuid:064e81cf-ae44-45be-b0f4-e28b739d30fc", "cell": { "columnId": "apicatalog.com", "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." @@ -335,9 +335,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:297c704b-8529-4a34-8125-d741ff306a0e", + "_testId": "urn:uuid:9fca2f40-b3e6-448b-9478-ccdb8ff494e8", "cell": { "columnId": "apicatalog.com", "rowId": "if \"proof.challenge\" field exists, it MUST be a string." @@ -361,9 +361,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:9c8fdd50-7216-4545-813d-b30b9a8fc39a", + "_testId": "urn:uuid:3283a1af-df2c-482f-afc9-3d4897315038", "cell": { "columnId": "apicatalog.com", "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." @@ -387,9 +387,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:2497d6f6-804d-4c8c-9ed6-c86de9f61c8f", + "_testId": "urn:uuid:d81ce071-b2c9-41dc-b0fe-b9b5fabeec8d", "cell": { "columnId": "apicatalog.com", "rowId": "if \"proof.nonce\" field exists, it MUST be a string." @@ -417,7 +417,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before each\" hook", @@ -440,7 +440,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before all\" hook", @@ -450,12 +450,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 1394, + "_idleStart": 1002, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 4359, + "duration": 3529, "_error": null } ], @@ -467,9 +467,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "9J9jmZ8nhBUbPJvGsBj0j", + "parent": "jojhdDWkXRQ6gwxTha9Tj", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:6bec4254-9428-453a-8d6d-2f0aba234d7f" + "_testId": "urn:uuid:5bf3ea05-0ce4-4a9a-8945-5eb754fa17e4" }, { "title": "Danube Tech", @@ -489,9 +489,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:cb5772df-7f21-40a8-8d0d-d5752e9a294b", + "_testId": "urn:uuid:f252c6b3-dc7b-4795-acb6-9b9a10ca3c00", "cell": { "columnId": "Danube Tech", "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." @@ -515,9 +515,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:fd45a39e-84df-4ee3-88bc-a09ad6218ee2", + "_testId": "urn:uuid:7ca0714b-eb23-431a-8d65-e9909ce41435", "cell": { "columnId": "Danube Tech", "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." @@ -541,16 +541,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:2b7e1038-6d91-4baf-b6c5-911a83b81fb2", + "_testId": "urn:uuid:4aabb995-144c-4d50-9ec2-a86b83d75905", "cell": { "columnId": "Danube Tech", "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -567,9 +567,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:504baac6-e924-4d09-965c-78b12560705c", + "_testId": "urn:uuid:26fec082-3676-4d30-9335-c9d1efa6fe24", "cell": { "columnId": "Danube Tech", "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." @@ -593,9 +593,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:0e2eb8fe-20c8-4a40-92ac-415aed4dba0a", + "_testId": "urn:uuid:0a57ef77-870b-4b22-b2ca-9f9202a9b4d5", "cell": { "columnId": "Danube Tech", "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." @@ -620,16 +620,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:f6bcaee6-a66c-4d7f-aba7-d06e7f4b2889", + "_testId": "urn:uuid:7064e0d6-134c-4335-af3b-5c91719e6163", "cell": { "columnId": "Danube Tech", "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -646,9 +646,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:fd1b944e-d16d-453a-80ab-8f8d3aa86cea", + "_testId": "urn:uuid:b9864ffd-21ba-4d56-95e8-05db6efd4e04", "cell": { "columnId": "Danube Tech", "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." @@ -672,9 +672,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:e2a9e563-3d7f-4f16-acfe-1b8f58f26708", + "_testId": "urn:uuid:5fb30fac-3a87-418c-b9e4-fc0576e49599", "cell": { "columnId": "Danube Tech", "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." @@ -698,9 +698,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:804840a6-4d93-4c92-a8ea-019b06231c4e", + "_testId": "urn:uuid:024b9f75-65d7-41c5-a879-09379dc32e40", "cell": { "columnId": "Danube Tech", "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." @@ -724,9 +724,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:2059a794-e415-42cd-9001-6152e8e6c16f", + "_testId": "urn:uuid:ab5de0ac-2854-4aa3-bb93-e1b2f9f830f2", "cell": { "columnId": "Danube Tech", "rowId": "\"proof.proofValue\" field MUST exist and be a string." @@ -750,16 +750,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:7a7b8f82-37d2-4819-9ec9-2e195387fdf4", + "_testId": "urn:uuid:616afa50-58c4-4126-8a97-e11ce70f6d3d", "cell": { "columnId": "Danube Tech", "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -776,9 +776,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:3101ca1f-ecd0-48a7-88ea-2089c7939de9", + "_testId": "urn:uuid:54a86743-9c63-4804-8835-d878c87482b9", "cell": { "columnId": "Danube Tech", "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." @@ -802,9 +802,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:fb261e23-ff75-4b4c-8845-5a463c9c120c", + "_testId": "urn:uuid:3ffd7c0a-8ca2-48b1-8ec2-c2cab61788b0", "cell": { "columnId": "Danube Tech", "rowId": "if \"proof.challenge\" field exists, it MUST be a string." @@ -828,9 +828,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:7ad9cf8e-2122-4f8c-a0c0-e6a0afda6ec3", + "_testId": "urn:uuid:4fa3b830-afa7-4fe0-bc6f-c8eb2f8d860a", "cell": { "columnId": "Danube Tech", "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." @@ -854,9 +854,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:de0b3a81-bc00-479d-a939-d9da1f19b768", + "_testId": "urn:uuid:3ce07e4c-a110-42b8-a149-c9532e47dc3f", "cell": { "columnId": "Danube Tech", "rowId": "if \"proof.nonce\" field exists, it MUST be a string." @@ -884,7 +884,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before each\" hook", @@ -907,7 +907,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before all\" hook", @@ -917,12 +917,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 5760, + "_idleStart": 4541, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 815, + "duration": 573, "_error": null } ], @@ -934,9 +934,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "9J9jmZ8nhBUbPJvGsBj0j", + "parent": "jojhdDWkXRQ6gwxTha9Tj", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:1a9795fe-6967-4aa7-8918-b6d7c1ff0080" + "_testId": "urn:uuid:553e2e53-5cd6-49db-8545-1f31afd9b39d" }, { "title": "Digital Bazaar", @@ -956,9 +956,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:ab9d0e92-b244-41ff-931a-4935950c1389", + "_testId": "urn:uuid:a3034c5e-e66c-41f7-860d-c4ba3637bd46", "cell": { "columnId": "Digital Bazaar", "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." @@ -982,9 +982,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:c154c9bf-b8f8-42f7-9383-5bb902ea67d2", + "_testId": "urn:uuid:8b6f5d9d-ad30-4507-aeda-546669048206", "cell": { "columnId": "Digital Bazaar", "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." @@ -1008,16 +1008,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:2c04fc6c-5aa3-4bb6-aaea-1cfae6b17c25", + "_testId": "urn:uuid:52ce874f-22cd-4b4f-bec2-04d7ef89f16e", "cell": { "columnId": "Digital Bazaar", "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -1034,9 +1034,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:2080a6ac-f7d0-4a87-ae41-61e3ada78afa", + "_testId": "urn:uuid:2e02abd3-7205-471b-976d-97220791ce5a", "cell": { "columnId": "Digital Bazaar", "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." @@ -1060,9 +1060,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:24b43c5e-ff2c-4198-aa05-e4cb9743474f", + "_testId": "urn:uuid:ed8591f9-995c-49b7-939b-971a87859487", "cell": { "columnId": "Digital Bazaar", "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." @@ -1087,9 +1087,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:06e0f3f8-e8fa-41af-bf7c-9e70795b4a5e", + "_testId": "urn:uuid:d8432de0-df1d-4d9e-ae08-8aa75ad141d0", "cell": { "columnId": "Digital Bazaar", "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." @@ -1113,9 +1113,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:e6ad0e3c-d4da-467a-8265-30093784da9f", + "_testId": "urn:uuid:25b9eefb-d252-4e18-b09f-19077cc8d92d", "cell": { "columnId": "Digital Bazaar", "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." @@ -1139,16 +1139,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:8e195859-1aae-4ae2-b446-7e50222a31b9", + "_testId": "urn:uuid:721e9ae0-e2df-402c-a867-dff84d07bf7d", "cell": { "columnId": "Digital Bazaar", "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -1165,9 +1165,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:7a3cf5f5-5185-43c8-a198-d42c979c4c70", + "_testId": "urn:uuid:8c139638-c4a1-4282-b1c6-54ca3731ec78", "cell": { "columnId": "Digital Bazaar", "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." @@ -1191,9 +1191,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:badbf06e-4f2a-4a97-8d25-035eb5343bfe", + "_testId": "urn:uuid:99d31d7f-9f35-4c2a-942b-a8e022298bc6", "cell": { "columnId": "Digital Bazaar", "rowId": "\"proof.proofValue\" field MUST exist and be a string." @@ -1217,9 +1217,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:1ba71cd5-da84-4925-a1ba-98fb5b60ed1d", + "_testId": "urn:uuid:3410da1c-a4fe-4107-9abb-1e86df363d1a", "cell": { "columnId": "Digital Bazaar", "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." @@ -1243,9 +1243,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:6aeebae4-27f2-4e59-8f01-2c6f80e6eedb", + "_testId": "urn:uuid:57c28465-d42c-4dbd-9a94-7f0075f92224", "cell": { "columnId": "Digital Bazaar", "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." @@ -1269,9 +1269,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:303b8d62-2844-4577-b7b0-9cf1008c006e", + "_testId": "urn:uuid:ceb7c1e4-a416-4c6e-800a-c559ffcda9a2", "cell": { "columnId": "Digital Bazaar", "rowId": "if \"proof.challenge\" field exists, it MUST be a string." @@ -1295,9 +1295,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:c80449d3-7e96-409a-a15a-1e6329d9458c", + "_testId": "urn:uuid:68127452-9b32-4cb8-974c-190961cacef9", "cell": { "columnId": "Digital Bazaar", "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." @@ -1321,9 +1321,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:41da4fe0-1b0f-4585-af4a-f4dc82ebe28b", + "_testId": "urn:uuid:2178613a-5dd7-4e0b-9c1e-a2366f7b048c", "cell": { "columnId": "Digital Bazaar", "rowId": "if \"proof.nonce\" field exists, it MUST be a string." @@ -1351,7 +1351,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before each\" hook", @@ -1374,7 +1374,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before all\" hook", @@ -1384,12 +1384,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 6579, + "_idleStart": 5118, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 883, + "duration": 704, "_error": null } ], @@ -1401,9 +1401,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "9J9jmZ8nhBUbPJvGsBj0j", + "parent": "jojhdDWkXRQ6gwxTha9Tj", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:9328a6f5-c4a0-41ff-8810-ba95425d9486" + "_testId": "urn:uuid:1f5cad3f-d789-43c2-b98e-18fb9e5e88ad" }, { "title": "EWF", @@ -1423,16 +1423,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:7d6ca858-a227-4a2d-8a94-3bbb357b9f74", + "_testId": "urn:uuid:28f568de-38ff-4b54-ba10-e1d0376c7233", "cell": { "columnId": "EWF", "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -1449,9 +1449,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:17d3eadb-c29d-48e9-9ff4-1205a3dc87c7", + "_testId": "urn:uuid:f3234697-a77d-4fba-9d02-356c035f25ae", "cell": { "columnId": "EWF", "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." @@ -1475,9 +1475,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:c71a7cdb-ce36-4e4d-a0b1-380f6c2fed3c", + "_testId": "urn:uuid:4ffe2b99-988e-46aa-9514-5f4afad27b0c", "cell": { "columnId": "EWF", "rowId": "\"proof.type\" field MUST exist and be a string." @@ -1501,9 +1501,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:95c8052c-5cb4-491a-8578-a3bc2b035a6f", + "_testId": "urn:uuid:1f675808-19b9-449a-89d7-9b12892fc950", "cell": { "columnId": "EWF", "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." @@ -1535,9 +1535,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:b5e66f5c-eab5-43c6-a465-19848cde5943", + "_testId": "urn:uuid:31d9aa65-c007-45db-b006-596911cc7772", "cell": { "columnId": "EWF", "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." @@ -1562,9 +1562,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:8c7d88a5-4734-4ca0-a39c-220ac3847fc0", + "_testId": "urn:uuid:a5775082-13d5-464b-941d-48a7b0b453ef", "cell": { "columnId": "EWF", "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." @@ -1588,9 +1588,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:ac637df3-1a87-4889-b136-45c09ccce017", + "_testId": "urn:uuid:6894d118-a629-4daa-918e-371dd6e8b967", "cell": { "columnId": "EWF", "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." @@ -1614,9 +1614,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:5f5a6fb6-369a-4db8-96a3-116b8111c0d4", + "_testId": "urn:uuid:c9121a22-0e88-4aed-b74b-01f004d1ddfd", "cell": { "columnId": "EWF", "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." @@ -1640,9 +1640,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:20929ffd-767c-4e08-850b-05ee60a49367", + "_testId": "urn:uuid:e65e6542-444e-4b89-a8b0-af8b188594be", "cell": { "columnId": "EWF", "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." @@ -1666,16 +1666,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:b6ddf6b5-75a0-433c-a337-a563d23ef562", + "_testId": "urn:uuid:c9356810-a322-4ed4-8df8-b6a6b973ccee", "cell": { "columnId": "EWF", "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "failed", "err": { "name": "AssertionError", @@ -1685,8 +1685,8 @@ "type": "Ed25519Signature2018", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", - "created": "2024-07-07T05:01:35.670Z", - "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..Ig_aDwCt-SySKQx7EPUhWqAXADt5GcMuzJu4C24qHqRyuU9ZvtzWRHJEx-7x2mfp0TlkvJTLdqcP1nK5i8cOAg" + "created": "2024-07-14T05:01:46.589Z", + "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..N-eIMgQRNkHs4hlEFkOiHzyOxetZoPiu6ope8KPZBLsB4pRH4irp6qV_ulPJdDZiJp6i2zo93AezPECl8jleBQ" }, "stack": "AssertionError: expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:156:29)\n at process.processImmediate (node:internal/timers:478:21)" } @@ -1704,16 +1704,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:3c42fbe7-1938-45d9-aa0c-8125c876462b", + "_testId": "urn:uuid:ce49256b-0e56-4012-80e0-2c4b1ca272a4", "cell": { "columnId": "EWF", "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "state": "failed", "err": {} }, @@ -1730,9 +1730,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:7e27f3c5-45f6-41a9-8f1f-0c85624c7ad0", + "_testId": "urn:uuid:74b9b29f-7afa-4a2a-a1c4-21d457229c73", "cell": { "columnId": "EWF", "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." @@ -1756,9 +1756,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:91a3e0e7-3859-4c67-9047-d457e0a96abb", + "_testId": "urn:uuid:1ad1c560-7bad-4b35-88e2-b7efcf700b48", "cell": { "columnId": "EWF", "rowId": "if \"proof.challenge\" field exists, it MUST be a string." @@ -1782,9 +1782,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:13d95fb8-d949-44e0-9930-cc893e5d71d8", + "_testId": "urn:uuid:2c362a91-1e54-47aa-a95d-b74dc5e1c515", "cell": { "columnId": "EWF", "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." @@ -1808,9 +1808,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:a86a7abc-dfe6-481d-b1ac-751c49b6a29d", + "_testId": "urn:uuid:e7142fdf-185f-4336-a32c-5dc435910f4c", "cell": { "columnId": "EWF", "rowId": "if \"proof.nonce\" field exists, it MUST be a string." @@ -1838,7 +1838,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before each\" hook", @@ -1861,7 +1861,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before all\" hook", @@ -1871,12 +1871,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 7464, + "_idleStart": 5825, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 189, + "duration": 491, "_error": null } ], @@ -1888,9 +1888,9 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "9J9jmZ8nhBUbPJvGsBj0j", + "parent": "jojhdDWkXRQ6gwxTha9Tj", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:ccc543eb-dd1f-4eb2-945b-85dac803d316" + "_testId": "urn:uuid:f766e0a4-99fd-4802-8aed-bc457e0a3e80" }, { "title": "LearnCard", @@ -1910,9 +1910,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:164ddadb-8d18-44bd-adc8-806015412105", + "_testId": "urn:uuid:69af73a0-5336-44bd-be84-c7af3382d4e5", "cell": { "columnId": "LearnCard", "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." @@ -1936,16 +1936,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:f66cb21b-d675-4bd9-8bf4-42a6326a4768", + "_testId": "urn:uuid:7a9f90bc-1cef-4909-a2b1-727595fe4434", "cell": { "columnId": "LearnCard", "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -1962,9 +1962,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:ce969e82-f665-4b94-88c3-47ca9ebc542b", + "_testId": "urn:uuid:1bf88526-58fc-4752-9fbd-825d08a9d155", "cell": { "columnId": "LearnCard", "rowId": "\"proof.type\" field MUST exist and be a string." @@ -1988,9 +1988,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:fdc2b437-fe97-4113-bd55-0ff0f1603558", + "_testId": "urn:uuid:c13e455d-1022-4dfd-9242-ac9acbc99ace", "cell": { "columnId": "LearnCard", "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." @@ -2022,9 +2022,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:61308a30-cf0c-4951-9dec-f7ff8d16397e", + "_testId": "urn:uuid:87ff8cda-698b-4fa0-9ec4-e5cfb427b8ef", "cell": { "columnId": "LearnCard", "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." @@ -2049,9 +2049,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:c236eeaf-ed81-4fc0-9981-557b846da5de", + "_testId": "urn:uuid:3da0e6d4-b856-49c0-b262-6c1ae65be0db", "cell": { "columnId": "LearnCard", "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." @@ -2075,9 +2075,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:957ce7ed-ad06-4a64-8a49-8c93e7ba4951", + "_testId": "urn:uuid:8f239b60-32c4-46ef-8b0d-e4c22487def6", "cell": { "columnId": "LearnCard", "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." @@ -2101,16 +2101,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:8f5f94d6-7765-4746-be9d-72fb4aea0eb8", + "_testId": "urn:uuid:979f6489-b80b-4a23-b0d2-8b004951c256", "cell": { "columnId": "LearnCard", "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -2127,9 +2127,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:20aa001f-d96f-43ae-9e2b-74f45b2a2f38", + "_testId": "urn:uuid:84aba318-6d0d-4cfa-9416-ec93fcc4f875", "cell": { "columnId": "LearnCard", "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." @@ -2153,9 +2153,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:64697aaa-0d2b-40d5-8e5b-aa9efe5d071e", + "_testId": "urn:uuid:4bdd72de-3eb5-48d8-9fb2-56559ab2fc81", "cell": { "columnId": "LearnCard", "rowId": "\"proof.proofValue\" field MUST exist and be a string." @@ -2179,9 +2179,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:a68bc7c9-f222-4ce4-b3a7-8c7604b88173", + "_testId": "urn:uuid:76dd5298-b6d8-4eb3-99f8-c54f27e848f0", "cell": { "columnId": "LearnCard", "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." @@ -2205,9 +2205,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:6396b5c0-aca7-47d8-b657-85a5b17e38d2", + "_testId": "urn:uuid:3a65a8c8-2c4f-41a5-bc0a-fcda9395d162", "cell": { "columnId": "LearnCard", "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." @@ -2231,9 +2231,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:63715f16-999d-4d71-acd9-703b9aa4fdec", + "_testId": "urn:uuid:ab42a9e7-8466-4051-b869-e60d3635cc54", "cell": { "columnId": "LearnCard", "rowId": "if \"proof.challenge\" field exists, it MUST be a string." @@ -2257,9 +2257,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:b9cc4eeb-6950-4b29-94df-1d9fb3ff8609", + "_testId": "urn:uuid:2c00f8d3-467b-4b85-acfb-25c46316b2ca", "cell": { "columnId": "LearnCard", "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." @@ -2283,9 +2283,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:d1014666-7b20-4acc-95b2-dbdff764d69f", + "_testId": "urn:uuid:229d8603-7cc8-459e-8e5c-ff39d4ff8399", "cell": { "columnId": "LearnCard", "rowId": "if \"proof.nonce\" field exists, it MUST be a string." @@ -2313,7 +2313,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before each\" hook", @@ -2336,7 +2336,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before all\" hook", @@ -2346,12 +2346,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 7661, + "_idleStart": 6322, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 376, + "duration": 215, "_error": null } ], @@ -2363,12 +2363,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "9J9jmZ8nhBUbPJvGsBj0j", + "parent": "jojhdDWkXRQ6gwxTha9Tj", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:3b040975-6938-4c9f-99e2-9173dc440e17" + "_testId": "urn:uuid:455ed330-91dc-4d62-88b7-37b01ce62b5a" }, { - "title": "SpruceID", + "title": "Open Security and Identity", "ctx": null, "suites": [], "tests": [ @@ -2385,18 +2385,24 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:344f09d1-56ba-4bf4-ad2f-944521aabe90", + "_testId": "urn:uuid:3f389402-2a78-45a5-a092-cb24dc779fde", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected proof to exist.: expected undefined to exist", + "showDiff": false, + "operator": "strictEqual", + "stack": "AssertionError: Expected proof to exist.: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:43:14)\n at process.processImmediate (node:internal/timers:478:21)" + } }, { "type": "test", @@ -2411,18 +2417,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:f92dd751-51f2-4345-9f70-ae795356377e", + "_testId": "urn:uuid:ba2429cf-0273-48f8-8d5e-7cbf7868afe0", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2437,18 +2443,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:a768d8db-667c-4ff3-9853-615615aac570", + "_testId": "urn:uuid:9023d0fd-8df6-4ed2-ad2c-b326e5a9d1bf", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, - "duration": 1, - "state": "passed", - "speed": "fast" + "duration": 0, + "state": "failed", + "err": {} }, { "type": "test", @@ -2463,26 +2469,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:74771cf9-cfad-47d2-a88d-6dab0cd823e7", + "_testId": "urn:uuid:2e72c04f-3a0f-47c7-b85f-384f3a0a008c", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, "duration": 0, "state": "failed", - "err": { - "name": "AssertionError", - "message": "expected false to equal true", - "showDiff": true, - "actual": "false", - "expected": "true", - "operator": "strictEqual", - "stack": "AssertionError: expected false to equal true\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:89:37)\n at process.processImmediate (node:internal/timers:478:21)" - } + "err": {} }, { "type": "test", @@ -2497,19 +2495,19 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:b3a16661-e399-4f03-b6a7-b5eab4665153", + "_testId": "urn:uuid:703bc1c3-4d57-4942-bddc-f5738fe0dbaf", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2524,18 +2522,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:f574cc84-c18c-42d8-bc45-2ff7ef73fa6e", + "_testId": "urn:uuid:bc18172e-8e3c-49ae-80fe-9c6b8c1e8393", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2550,18 +2548,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:bce4a59d-8f15-4d6a-a0e9-eb3858b22ed0", + "_testId": "urn:uuid:95bc5286-63c5-49d1-8a59-cea12df50ec8", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2576,18 +2574,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:741ea909-fa40-47b1-b281-426f3e4dc44d", + "_testId": "urn:uuid:8331709b-b310-4b8e-925c-e706bd4d06d4", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2602,18 +2600,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:c77ea376-4190-41d0-be74-1c127d9c474b", + "_testId": "urn:uuid:7414383d-4ea2-446c-90ea-35ed370e995c", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2628,18 +2626,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:55733db4-80c5-4db7-9d21-b566667cf3f1", + "_testId": "urn:uuid:d6afaa48-3a59-455f-a921-00c3299a94ce", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2654,18 +2652,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:2b2e1844-97cf-4721-8cb8-8d1a3677b00b", + "_testId": "urn:uuid:95188705-8c71-4f01-89e4-5825de3701e9", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2680,18 +2678,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:1795a806-60b4-4654-9ed1-ba10cd86b94b", + "_testId": "urn:uuid:5c1f50a4-57e2-47f7-adaf-0dfba690bcf6", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2706,18 +2704,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:030b8cca-d80e-44b9-94c3-75f4fdff1142", + "_testId": "urn:uuid:190d9bd2-0733-485b-86e3-fc2f8bf88cd2", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "if \"proof.challenge\" field exists, it MUST be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2732,18 +2730,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:f555c3f5-21fa-4146-9e5d-7a15aa7b4f83", + "_testId": "urn:uuid:d0552ecc-605f-4653-a819-fab6a163f164", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", @@ -2758,18 +2756,18 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:975b69d5-e200-46d3-9342-affc3bdee303", + "_testId": "urn:uuid:c86ba9db-08c8-40ff-b8bd-3e707ddd5fff", "cell": { - "columnId": "SpruceID", + "columnId": "Open Security and Identity", "rowId": "if \"proof.nonce\" field exists, it MUST be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} } ], "root": false, @@ -2777,7 +2775,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook in \"SpruceID\"", + "title": "\"before each\" hook in \"Open Security and Identity\"", "body": "function() {\n this.currentTest.cell = {\n columnId,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, @@ -2788,7 +2786,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before each\" hook", @@ -2800,7 +2798,7 @@ ], "_beforeAll": [ { - "title": "\"before all\" hook in \"SpruceID\"", + "title": "\"before all\" hook in \"Open Security and Identity\"", "body": "async function() {\n const [issuer] = endpoints;\n if(!issuer) {\n throw new Error(`Expected ${vendorName} to have an issuer.`);\n }\n data = await createInitialVc({issuer, vc: validVc});\n proofs = Array.isArray(data.proof) ? data.proof : [data.proof];\n }", "async": 0, "sync": true, @@ -2811,7 +2809,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before all\" hook", @@ -2821,12 +2819,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 8041, + "_idleStart": 6541, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 365, + "duration": 541, "_error": null } ], @@ -2838,12 +2836,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "9J9jmZ8nhBUbPJvGsBj0j", + "parent": "jojhdDWkXRQ6gwxTha9Tj", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:115db689-3ee8-4e51-9099-d78a3c749ceb" + "_testId": "urn:uuid:75e2918f-b7d8-41af-8ca9-749a82725905" }, { - "title": "Trinsic", + "title": "SpruceID", "ctx": null, "suites": [], "tests": [ @@ -2860,11 +2858,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:cb35c16a-847f-4098-ae00-cfcf46814a18", + "_testId": "urn:uuid:f73f5e84-e226-4fac-be45-5230d99ace90", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, @@ -2886,11 +2884,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:ecda54ce-7735-4b43-9e8c-28d0459151f8", + "_testId": "urn:uuid:f76931d7-7365-4919-9b69-4593b278b151", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, @@ -2912,11 +2910,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:540e0120-1995-4180-a758-87d6b2fd33e0", + "_testId": "urn:uuid:5eacb405-069f-40a9-8ee2-69ae46ecc6ab", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, @@ -2938,18 +2936,26 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:58ffddb8-e3d3-4302-b2f8-487c9a37e3b7", + "_testId": "urn:uuid:8ab0d9b2-8bcb-4de2-9f70-d17e69c38c7a", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "expected false to equal true", + "showDiff": true, + "actual": "false", + "expected": "true", + "operator": "strictEqual", + "stack": "AssertionError: expected false to equal true\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:89:37)\n at process.processImmediate (node:internal/timers:478:21)" + } }, { "type": "test", @@ -2964,11 +2970,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:e5daf3fe-777b-4417-afb1-c9455a06cf9e", + "_testId": "urn:uuid:18de9a4a-9aec-4ab5-b49b-9f1465736493", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, @@ -2991,11 +2997,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:e5004518-3537-4be8-84bb-b65836739949", + "_testId": "urn:uuid:467b4ada-1713-43bd-a002-90ba9bc4daf8", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, @@ -3017,11 +3023,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:89a7bcac-c9c1-4480-bf27-c5cb743eb2a8", + "_testId": "urn:uuid:0687b655-62fd-442f-b989-f5a47e03ad39", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, @@ -3043,11 +3049,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:ac3933ed-871a-43af-a9ca-8e71d641b420", + "_testId": "urn:uuid:4f1b660a-e762-417f-aea5-4b4b68c03b8a", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, @@ -3069,11 +3075,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:7b8416b4-29e9-45ee-a601-b2474fc0d7fa", + "_testId": "urn:uuid:5f02b114-25ec-4b17-89c6-8ef41403af49", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, @@ -3095,11 +3101,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:968cf841-6b79-4f88-a04e-d814582a62cf", + "_testId": "urn:uuid:de0b6139-9b4f-458e-a2d4-47b83dfc6ca0", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, @@ -3121,11 +3127,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:cfd79d87-38cb-4edb-85de-4b63909455bd", + "_testId": "urn:uuid:472e949c-14a8-41b1-9267-6f43bc3e26ee", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, @@ -3147,11 +3153,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:a9f9605e-26d3-4cf8-a859-690074c9c2bf", + "_testId": "urn:uuid:d4b75494-d76c-4c33-99f9-02dad4bb2612", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, @@ -3173,11 +3179,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:502d4bd4-4935-4c3f-bcba-73e024dad77b", + "_testId": "urn:uuid:603ec418-f038-4d4d-b29f-0e53b7d26e10", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "if \"proof.challenge\" field exists, it MUST be a string." }, "_events": {}, @@ -3199,11 +3205,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:0a412508-ddcb-4c23-b6d0-1c98d8ad3303", + "_testId": "urn:uuid:dc09fa19-781d-4040-bb1d-f319430752bc", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." }, "_events": {}, @@ -3225,11 +3231,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:d354497e-0f51-4b80-94aa-18ca8b917e74", + "_testId": "urn:uuid:72c95736-01a3-4660-b2a7-004037e3d868", "cell": { - "columnId": "Trinsic", + "columnId": "SpruceID", "rowId": "if \"proof.nonce\" field exists, it MUST be a string." }, "_events": {}, @@ -3244,7 +3250,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook in \"Trinsic\"", + "title": "\"before each\" hook in \"SpruceID\"", "body": "function() {\n this.currentTest.cell = {\n columnId,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, @@ -3255,7 +3261,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before each\" hook", @@ -3267,7 +3273,7 @@ ], "_beforeAll": [ { - "title": "\"before all\" hook in \"Trinsic\"", + "title": "\"before all\" hook in \"SpruceID\"", "body": "async function() {\n const [issuer] = endpoints;\n if(!issuer) {\n throw new Error(`Expected ${vendorName} to have an issuer.`);\n }\n data = await createInitialVc({issuer, vc: validVc});\n proofs = Array.isArray(data.proof) ? data.proof : [data.proof];\n }", "async": 0, "sync": true, @@ -3278,7 +3284,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before all\" hook", @@ -3288,12 +3294,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 8410, + "_idleStart": 7088, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 694, + "duration": 119, "_error": null } ], @@ -3305,44 +3311,15 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "9J9jmZ8nhBUbPJvGsBj0j", + "parent": "jojhdDWkXRQ6gwxTha9Tj", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:64f15ac7-3543-4c7d-bce2-0d62a8868167" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "dHDy95eOeN260QIsfSAKt", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Issuer", - "_testId": "urn:uuid:1ec23249-bf09-4de5-b2f3-646c8dc89ff9", - "columns": [ - "apicatalog.com", - "Danube Tech", - "Digital Bazaar", - "EWF", - "LearnCard", - "SpruceID", - "Trinsic" - ], - "rows": [ + "_testId": "urn:uuid:065a4573-a999-4ed7-bf11-a59c4cc34b55" + }, { - "id": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", - "cells": [ + "title": "Trinsic", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", @@ -3356,11 +3333,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:e3c7a8b1-30ed-4fcf-a616-c5dc66d2435b", + "_testId": "urn:uuid:d501f5df-0a08-4eb0-86bc-b1b5a6f30f2b", "cell": { - "columnId": "apicatalog.com", + "columnId": "Trinsic", "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, @@ -3371,8 +3348,8 @@ }, { "type": "test", - "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", - "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3382,12 +3359,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:cb5772df-7f21-40a8-8d0d-d5752e9a294b", + "_testId": "urn:uuid:3b537e26-a1b2-45e1-80c2-a58441354ca0", "cell": { - "columnId": "Danube Tech", - "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." + "columnId": "Trinsic", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, @@ -3397,8 +3374,8 @@ }, { "type": "test", - "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", - "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3408,12 +3385,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:ab9d0e92-b244-41ff-931a-4935950c1389", + "_testId": "urn:uuid:3867c875-71a3-46f4-ba1e-1639a582e2ff", "cell": { - "columnId": "Digital Bazaar", - "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." + "columnId": "Trinsic", + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -3423,8 +3400,8 @@ }, { "type": "test", - "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", - "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3434,23 +3411,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:7d6ca858-a227-4a2d-8a94-3bbb357b9f74", + "_testId": "urn:uuid:e7a814c0-c33b-4099-9fa7-7d7cd16d543c", "cell": { - "columnId": "EWF", - "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." + "columnId": "Trinsic", + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", - "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3460,23 +3437,24 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:164ddadb-8d18-44bd-adc8-806015412105", + "_testId": "urn:uuid:d411335d-8059-4344-b903-63d3a71acb3b", "cell": { - "columnId": "LearnCard", - "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." + "columnId": "Trinsic", + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", - "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3486,23 +3464,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:344f09d1-56ba-4bf4-ad2f-944521aabe90", + "_testId": "urn:uuid:1c4d6e6f-a000-4366-9760-31f60aa626ae", "cell": { - "columnId": "SpruceID", - "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." + "columnId": "Trinsic", + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", - "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3512,28 +3490,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:cb35c16a-847f-4098-ae00-cfcf46814a18", + "_testId": "urn:uuid:ed2e2006-7e2b-443f-a6cc-068f656740d9", "cell": { "columnId": "Trinsic", - "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, "duration": 0, "state": "passed", "speed": "fast" - } - ] - }, - { - "id": "if \"proof.id\" field exists, it MUST be a valid URL.", - "cells": [ + }, { "type": "test", - "title": "if \"proof.id\" field exists, it MUST be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3543,12 +3516,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:97f0c5e7-f990-431a-a1c9-880e728fed5f", + "_testId": "urn:uuid:8654671e-39ba-4f9b-b146-f8017c166503", "cell": { - "columnId": "apicatalog.com", - "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." + "columnId": "Trinsic", + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, @@ -3558,8 +3531,8 @@ }, { "type": "test", - "title": "if \"proof.id\" field exists, it MUST be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3569,12 +3542,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:fd45a39e-84df-4ee3-88bc-a09ad6218ee2", + "_testId": "urn:uuid:b7201dc1-f382-4267-8377-0da38afe2593", "cell": { - "columnId": "Danube Tech", - "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." + "columnId": "Trinsic", + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -3584,8 +3557,8 @@ }, { "type": "test", - "title": "if \"proof.id\" field exists, it MUST be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3595,12 +3568,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:c154c9bf-b8f8-42f7-9383-5bb902ea67d2", + "_testId": "urn:uuid:31e62a0a-9e24-4bad-b038-14cf52211aec", "cell": { - "columnId": "Digital Bazaar", - "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." + "columnId": "Trinsic", + "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -3610,8 +3583,8 @@ }, { "type": "test", - "title": "if \"proof.id\" field exists, it MUST be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3621,12 +3594,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:17d3eadb-c29d-48e9-9ff4-1205a3dc87c7", + "_testId": "urn:uuid:2cbb712d-f921-41c3-bdcb-8401d8f99f4f", "cell": { - "columnId": "EWF", - "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." + "columnId": "Trinsic", + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, @@ -3636,8 +3609,8 @@ }, { "type": "test", - "title": "if \"proof.id\" field exists, it MUST be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3647,12 +3620,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:f66cb21b-d675-4bd9-8bf4-42a6326a4768", + "_testId": "urn:uuid:0c703739-9b54-41f2-a55e-7deb186fdb9a", "cell": { - "columnId": "LearnCard", - "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." + "columnId": "Trinsic", + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, @@ -3662,8 +3635,8 @@ }, { "type": "test", - "title": "if \"proof.id\" field exists, it MUST be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3673,12 +3646,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:f92dd751-51f2-4345-9f70-ae795356377e", + "_testId": "urn:uuid:57df5b94-98f3-455a-8bfb-27dc4784b4b8", "cell": { - "columnId": "SpruceID", - "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." + "columnId": "Trinsic", + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." }, "_events": {}, "_eventsCount": 1, @@ -3688,8 +3661,8 @@ }, { "type": "test", - "title": "if \"proof.id\" field exists, it MUST be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3699,28 +3672,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:ecda54ce-7735-4b43-9e8c-28d0459151f8", + "_testId": "urn:uuid:423e4167-66db-4e1d-9228-4545e2ef20ef", "cell": { "columnId": "Trinsic", - "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, "state": "passed", "speed": "fast" - } - ] - }, - { - "id": "\"proof.type\" field MUST exist and be a string.", - "cells": [ + }, { "type": "test", - "title": "\"proof.type\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3730,23 +3698,27 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:9feb20b9-1bb6-4b4d-b97f-5e8c753c3a0e", + "_testId": "urn:uuid:162ec1ef-868d-400a-9b71-3a33efb94324", "cell": { - "columnId": "apicatalog.com", - "rowId": "\"proof.type\" field MUST exist and be a string." + "columnId": "Trinsic", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "\"proof.type\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", + "title": "\"before each\" hook in \"Trinsic\"", + "body": "function() {\n this.currentTest.cell = {\n columnId,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3755,24 +3727,21 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "type": "hook", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:2b7e1038-6d91-4baf-b6c5-911a83b81fb2", - "cell": { - "columnId": "Danube Tech", - "rowId": "\"proof.type\" field MUST exist and be a string." - }, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before each\" hook", "_events": {}, "_eventsCount": 1, - "duration": 1, - "state": "passed", - "speed": "fast" - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [ { - "type": "test", - "title": "\"proof.type\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", + "title": "\"before all\" hook in \"Trinsic\"", + "body": "async function() {\n const [issuer] = endpoints;\n if(!issuer) {\n throw new Error(`Expected ${vendorName} to have an issuer.`);\n }\n data = await createInitialVc({issuer, vc: validVc});\n proofs = Array.isArray(data.proof) ? data.proof : [data.proof];\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3781,24 +3750,77 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "type": "hook", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:2c04fc6c-5aa3-4bb6-aaea-1cfae6b17c25", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "\"proof.type\" field MUST exist and be a string." - }, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before all\" hook", "_events": {}, "_eventsCount": 1, - "duration": 1, - "state": "passed", - "speed": "fast" - }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 7210, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 347, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "jojhdDWkXRQ6gwxTha9Tj", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "_testId": "urn:uuid:fe4aa437-1ee8-4a25-b468-e4e0fda685da" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "wH8v8jHAQPjILnjKGnNgA", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Issuer", + "_testId": "urn:uuid:90ada7c4-a42d-477c-9ba4-8564a6977815", + "columns": [ + "apicatalog.com", + "Danube Tech", + "Digital Bazaar", + "EWF", + "LearnCard", + "Open Security and Identity", + "SpruceID", + "Trinsic" + ], + "rows": [ + { + "id": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "cells": [ { "type": "test", - "title": "\"proof.type\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", + "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3808,12 +3830,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:c71a7cdb-ce36-4e4d-a0b1-380f6c2fed3c", + "_testId": "urn:uuid:0a3ca57a-06b2-4865-a573-20d0914d4c26", "cell": { - "columnId": "EWF", - "rowId": "\"proof.type\" field MUST exist and be a string." + "columnId": "apicatalog.com", + "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, @@ -3823,8 +3845,8 @@ }, { "type": "test", - "title": "\"proof.type\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", + "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3834,12 +3856,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:ce969e82-f665-4b94-88c3-47ca9ebc542b", + "_testId": "urn:uuid:f252c6b3-dc7b-4795-acb6-9b9a10ca3c00", "cell": { - "columnId": "LearnCard", - "rowId": "\"proof.type\" field MUST exist and be a string." + "columnId": "Danube Tech", + "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, @@ -3849,8 +3871,8 @@ }, { "type": "test", - "title": "\"proof.type\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", + "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3860,23 +3882,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:a768d8db-667c-4ff3-9853-615615aac570", + "_testId": "urn:uuid:a3034c5e-e66c-41f7-860d-c4ba3637bd46", "cell": { - "columnId": "SpruceID", - "rowId": "\"proof.type\" field MUST exist and be a string." + "columnId": "Digital Bazaar", + "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof.type\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", + "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3886,28 +3908,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:540e0120-1995-4180-a758-87d6b2fd33e0", + "_testId": "urn:uuid:28f568de-38ff-4b54-ba10-e1d0376c7233", "cell": { - "columnId": "Trinsic", - "rowId": "\"proof.type\" field MUST exist and be a string." + "columnId": "EWF", + "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, "duration": 0, "state": "passed", "speed": "fast" - } - ] - }, - { - "id": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", - "cells": [ + }, { "type": "test", - "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", + "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3917,12 +3934,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:fd159fc0-a765-42aa-91b4-f3a1ada964e3", + "_testId": "urn:uuid:69af73a0-5336-44bd-be84-c7af3382d4e5", "cell": { - "columnId": "apicatalog.com", - "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." + "columnId": "LearnCard", + "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, @@ -3932,8 +3949,8 @@ }, { "type": "test", - "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", + "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3943,23 +3960,29 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:504baac6-e924-4d09-965c-78b12560705c", + "_testId": "urn:uuid:3f389402-2a78-45a5-a092-cb24dc779fde", "cell": { - "columnId": "Danube Tech", - "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." + "columnId": "Open Security and Identity", + "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected proof to exist.: expected undefined to exist", + "showDiff": false, + "operator": "strictEqual", + "stack": "AssertionError: Expected proof to exist.: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:43:14)\n at process.processImmediate (node:internal/timers:478:21)" + } }, { "type": "test", - "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", + "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3969,12 +3992,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:2080a6ac-f7d0-4a87-ae41-61e3ada78afa", + "_testId": "urn:uuid:f73f5e84-e226-4fac-be45-5230d99ace90", "cell": { - "columnId": "Digital Bazaar", - "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." + "columnId": "SpruceID", + "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, @@ -3984,8 +4007,8 @@ }, { "type": "test", - "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", + "title": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects.", + "body": "function() {\n should.exist(data, 'Expected data.');\n const proof = data.proof;\n should.exist(proof, 'Expected proof to exist.');\n const validType = isObjectOrArrayOfObjects(proof);\n validType.should.equal(true, 'Expected proof to be' +\n 'either an object or an unordered set of objects.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -3995,65 +4018,28 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:95c8052c-5cb4-491a-8578-a3bc2b035a6f", + "_testId": "urn:uuid:d501f5df-0a08-4eb0-86bc-b1b5a6f30f2b", "cell": { - "columnId": "EWF", - "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." - }, - "_events": {}, - "_eventsCount": 1, - "duration": 1, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "expected false to equal true", - "showDiff": true, - "actual": "false", - "expected": "true", - "operator": "strictEqual", - "stack": "AssertionError: expected false to equal true\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:72:32)\n at process.processImmediate (node:internal/timers:478:21)" - } - }, - { - "type": "test", - "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", - "ctx": null, - "_testId": "urn:uuid:fdc2b437-fe97-4113-bd55-0ff0f1603558", - "cell": { - "columnId": "LearnCard", - "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." + "columnId": "Trinsic", + "rowId": "\"proof\" field MUST exist and MUST be either a single object or an unordered set of objects." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "expected false to equal true", - "showDiff": true, - "actual": "false", - "expected": "true", - "operator": "strictEqual", - "stack": "AssertionError: expected false to equal true\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:89:37)\n at process.processImmediate (node:internal/timers:478:21)" - } - }, + "state": "passed", + "speed": "fast" + } + ] + }, + { + "id": "if \"proof.id\" field exists, it MUST be a valid URL.", + "cells": [ { "type": "test", - "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4063,31 +4049,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:74771cf9-cfad-47d2-a88d-6dab0cd823e7", + "_testId": "urn:uuid:75fc8bfa-07be-4965-81b6-a6d980736558", "cell": { - "columnId": "SpruceID", - "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." + "columnId": "apicatalog.com", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "expected false to equal true", - "showDiff": true, - "actual": "false", - "expected": "true", - "operator": "strictEqual", - "stack": "AssertionError: expected false to equal true\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:89:37)\n at process.processImmediate (node:internal/timers:478:21)" - } + "state": "passed", + "speed": "fast" }, { "type": "test", - "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4097,28 +4075,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:58ffddb8-e3d3-4302-b2f8-487c9a37e3b7", + "_testId": "urn:uuid:7ca0714b-eb23-431a-8d65-e9909ce41435", "cell": { - "columnId": "Trinsic", - "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." + "columnId": "Danube Tech", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, "duration": 0, "state": "passed", "speed": "fast" - } - ] - }, - { - "id": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", - "cells": [ + }, { "type": "test", - "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", - "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4128,24 +4101,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:6ae1bd94-109e-4f54-8c9c-3b8bb2274571", + "_testId": "urn:uuid:8b6f5d9d-ad30-4507-aeda-546669048206", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." + "columnId": "Digital Bazaar", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", - "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4155,24 +4127,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:0e2eb8fe-20c8-4a40-92ac-415aed4dba0a", + "_testId": "urn:uuid:f3234697-a77d-4fba-9d02-356c035f25ae", "cell": { - "columnId": "Danube Tech", - "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." + "columnId": "EWF", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", - "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4182,24 +4153,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:24b43c5e-ff2c-4198-aa05-e4cb9743474f", + "_testId": "urn:uuid:7a9f90bc-1cef-4909-a2b1-727595fe4434", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." + "columnId": "LearnCard", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", - "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4209,24 +4179,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:b5e66f5c-eab5-43c6-a465-19848cde5943", + "_testId": "urn:uuid:ba2429cf-0273-48f8-8d5e-7cbf7868afe0", "cell": { - "columnId": "EWF", - "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." + "columnId": "Open Security and Identity", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", - "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", - "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4236,24 +4205,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:61308a30-cf0c-4951-9dec-f7ff8d16397e", + "_testId": "urn:uuid:f76931d7-7365-4919-9b69-4593b278b151", "cell": { - "columnId": "LearnCard", - "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." + "columnId": "SpruceID", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", - "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", + "title": "if \"proof.id\" field exists, it MUST be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.id) {\n shouldBeUrl({url: proof.id, prop: 'proof.id'});\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4263,24 +4231,28 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:b3a16661-e399-4f03-b6a7-b5eab4665153", + "_testId": "urn:uuid:3b537e26-a1b2-45e1-80c2-a58441354ca0", "cell": { - "columnId": "SpruceID", - "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." + "columnId": "Trinsic", + "rowId": "if \"proof.id\" field exists, it MUST be a valid URL." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" - }, + } + ] + }, + { + "id": "\"proof.type\" field MUST exist and be a string.", + "cells": [ { "type": "test", - "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", - "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4290,29 +4262,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:e5daf3fe-777b-4417-afb1-c9455a06cf9e", + "_testId": "urn:uuid:fafa8672-22e9-419f-961e-7b0e84e0b3c4", "cell": { - "columnId": "Trinsic", - "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." + "columnId": "apicatalog.com", + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" - } - ] - }, - { - "id": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "cells": [ + }, { "type": "test", - "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4322,12 +4288,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:0ec42556-483a-41a2-86a2-9a0a67a5de7d", + "_testId": "urn:uuid:4aabb995-144c-4d50-9ec2-a86b83d75905", "cell": { - "columnId": "apicatalog.com", - "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "columnId": "Danube Tech", + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -4337,8 +4303,8 @@ }, { "type": "test", - "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4348,12 +4314,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:f6bcaee6-a66c-4d7f-aba7-d06e7f4b2889", + "_testId": "urn:uuid:52ce874f-22cd-4b4f-bec2-04d7ef89f16e", "cell": { - "columnId": "Danube Tech", - "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "columnId": "Digital Bazaar", + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -4363,8 +4329,8 @@ }, { "type": "test", - "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4374,12 +4340,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:06e0f3f8-e8fa-41af-bf7c-9e70795b4a5e", + "_testId": "urn:uuid:4ffe2b99-988e-46aa-9514-5f4afad27b0c", "cell": { - "columnId": "Digital Bazaar", - "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "columnId": "EWF", + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -4389,8 +4355,8 @@ }, { "type": "test", - "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4400,12 +4366,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:8c7d88a5-4734-4ca0-a39c-220ac3847fc0", + "_testId": "urn:uuid:1bf88526-58fc-4752-9fbd-825d08a9d155", "cell": { - "columnId": "EWF", - "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "columnId": "LearnCard", + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -4415,8 +4381,8 @@ }, { "type": "test", - "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4426,23 +4392,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:c236eeaf-ed81-4fc0-9981-557b846da5de", + "_testId": "urn:uuid:9023d0fd-8df6-4ed2-ad2c-b326e5a9d1bf", "cell": { - "columnId": "LearnCard", - "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "columnId": "Open Security and Identity", + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", - "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4452,12 +4418,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:f574cc84-c18c-42d8-bc45-2ff7ef73fa6e", + "_testId": "urn:uuid:5eacb405-069f-40a9-8ee2-69ae46ecc6ab", "cell": { "columnId": "SpruceID", - "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -4467,8 +4433,8 @@ }, { "type": "test", - "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string', 'Expected \"proof.type\" to be a string.');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4478,12 +4444,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:e5004518-3537-4be8-84bb-b65836739949", + "_testId": "urn:uuid:3867c875-71a3-46f4-ba1e-1639a582e2ff", "cell": { "columnId": "Trinsic", - "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -4494,12 +4460,12 @@ ] }, { - "id": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "id": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", "cells": [ { "type": "test", - "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4509,23 +4475,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:1199f663-35ee-4ef8-b700-5fb3ce8f6b7b", + "_testId": "urn:uuid:ecee6454-045f-4db6-9ef9-44c6ff30d127", "cell": { "columnId": "apicatalog.com", - "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4535,12 +4501,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:fd1b944e-d16d-453a-80ab-8f8d3aa86cea", + "_testId": "urn:uuid:26fec082-3676-4d30-9335-c9d1efa6fe24", "cell": { "columnId": "Danube Tech", - "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, @@ -4550,8 +4516,8 @@ }, { "type": "test", - "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4561,12 +4527,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:e6ad0e3c-d4da-467a-8265-30093784da9f", + "_testId": "urn:uuid:2e02abd3-7205-471b-976d-97220791ce5a", "cell": { "columnId": "Digital Bazaar", - "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, @@ -4576,8 +4542,8 @@ }, { "type": "test", - "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4587,23 +4553,31 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:ac637df3-1a87-4889-b136-45c09ccce017", + "_testId": "urn:uuid:1f675808-19b9-449a-89d7-9b12892fc950", "cell": { "columnId": "EWF", - "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, - "duration": 0, - "state": "passed", - "speed": "fast" - }, - { + "duration": 1, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "expected false to equal true", + "showDiff": true, + "actual": "false", + "expected": "true", + "operator": "strictEqual", + "stack": "AssertionError: expected false to equal true\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:72:32)\n at process.processImmediate (node:internal/timers:478:21)" + } + }, + { "type": "test", - "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4613,23 +4587,57 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:957ce7ed-ad06-4a64-8a49-8c93e7ba4951", + "_testId": "urn:uuid:c13e455d-1022-4dfd-9242-ac9acbc99ace", "cell": { "columnId": "LearnCard", - "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "expected false to equal true", + "showDiff": true, + "actual": "false", + "expected": "true", + "operator": "strictEqual", + "stack": "AssertionError: expected false to equal true\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:89:37)\n at process.processImmediate (node:internal/timers:478:21)" + } }, { "type": "test", - "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", + "ctx": null, + "_testId": "urn:uuid:2e72c04f-3a0f-47c7-b85f-384f3a0a008c", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4639,23 +4647,31 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:bce4a59d-8f15-4d6a-a0e9-eb3858b22ed0", + "_testId": "urn:uuid:8ab0d9b2-8bcb-4de2-9f70-d17e69c38c7a", "cell": { "columnId": "SpruceID", - "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "expected false to equal true", + "showDiff": true, + "actual": "false", + "expected": "true", + "operator": "strictEqual", + "stack": "AssertionError: expected false to equal true\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:89:37)\n at process.processImmediate (node:internal/timers:478:21)" + } }, { "type": "test", - "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", + "title": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('type');\n proof.type.should.be.a(\n 'string',\n 'Expected \"proof.type\" to be a string.'\n );\n const hasExpectedType = expectedProofTypes.includes(proof.type);\n hasExpectedType.should.equal(true);\n\n if(proof.type === 'DataIntegrityProof') {\n const expectedContexts = [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://w3id.org/security/data-integrity/v2'\n ];\n const hasExpectedContexts = expectedContexts.some(\n value => data['@context'].includes(value));\n hasExpectedContexts.should.equal(true);\n }\n\n if(proof.type === 'Ed25519Signature2020') {\n const expectedContext =\n 'https://w3id.org/security/suites/ed25519-2020/v1';\n const hasExpectedContext =\n data['@context'].includes(expectedContext);\n hasExpectedContext.should.equal(true);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4665,12 +4681,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:89a7bcac-c9c1-4480-bf27-c5cb743eb2a8", + "_testId": "urn:uuid:e7a814c0-c33b-4099-9fa7-7d7cd16d543c", "cell": { "columnId": "Trinsic", - "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + "rowId": "\"proof.type\" field MUST be \"Ed25519Signature2020\" and the associated document MUST include expected contexts." }, "_events": {}, "_eventsCount": 1, @@ -4681,12 +4697,12 @@ ] }, { - "id": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "id": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", "cells": [ { "type": "test", - "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4696,23 +4712,24 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:b622dc83-4d5f-4992-990b-798ac730afb1", + "_testId": "urn:uuid:dfe3822c-5ff5-4e23-a7f4-d95f2744c4a9", "cell": { "columnId": "apicatalog.com", - "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4722,23 +4739,24 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:e2a9e563-3d7f-4f16-acfe-1b8f58f26708", + "_testId": "urn:uuid:0a57ef77-870b-4b22-b2ca-9f9202a9b4d5", "cell": { "columnId": "Danube Tech", - "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4748,23 +4766,24 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:8e195859-1aae-4ae2-b446-7e50222a31b9", + "_testId": "urn:uuid:ed8591f9-995c-49b7-939b-971a87859487", "cell": { "columnId": "Digital Bazaar", - "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4774,23 +4793,24 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:5f5a6fb6-369a-4db8-96a3-116b8111c0d4", + "_testId": "urn:uuid:31d9aa65-c007-45db-b006-596911cc7772", "cell": { "columnId": "EWF", - "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4800,23 +4820,51 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:8f5f94d6-7765-4746-be9d-72fb4aea0eb8", + "_testId": "urn:uuid:87ff8cda-698b-4fa0-9ec4-e5cfb427b8ef", "cell": { "columnId": "LearnCard", - "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", + "ctx": null, + "_testId": "urn:uuid:703bc1c3-4d57-4942-bddc-f5738fe0dbaf", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." + }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4826,23 +4874,24 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:741ea909-fa40-47b1-b281-426f3e4dc44d", + "_testId": "urn:uuid:18de9a4a-9aec-4ab5-b49b-9f1465736493", "cell": { "columnId": "SpruceID", - "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", + "title": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string.", + "body": "function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.';\n for(const proof of proofs) {\n if(proof.type && proof.type === 'DataIntegrityProof') {\n should.exist(\n proof.cryptosuite,\n 'If the proof type is DataIntegrityProof, cryptosuite MUST ' +\n 'be specified');\n proof.cryptosuite.should.be.a(\n 'string',\n 'cryptosuite value MUST be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4852,15 +4901,16 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:ac3933ed-871a-43af-a9ca-8e71d641b420", + "_testId": "urn:uuid:d411335d-8059-4344-b903-63d3a71acb3b", "cell": { "columnId": "Trinsic", - "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." + "rowId": "If the proof type is DataIntegrityProof, cryptosuite MUST be specified; otherwise, cryptosuite MAY be specified. If specified, its value MUST be a string." }, "_events": {}, "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=If%20the%20proof%20type%20is%20DataIntegrityProof%2C%20cryptosuite%20MUST%20be%20specified%3B%20otherwise%2C%20cryptosuite%20MAY%20be%20specified.%20If%20specified%2C%20its%20value%20MUST%20be%20a%20string.", "duration": 0, "state": "passed", "speed": "fast" @@ -4868,12 +4918,12 @@ ] }, { - "id": "\"proof.proofPurpose\" field MUST exist and be a string.", + "id": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", "cells": [ { "type": "test", - "title": "\"proof.proofPurpose\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4883,12 +4933,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:bb03dd81-8d68-4b77-b6a2-359be0659c9d", + "_testId": "urn:uuid:9c2c1e5b-f281-4524-8cf9-a9ef1017487f", "cell": { "columnId": "apicatalog.com", - "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -4898,8 +4948,8 @@ }, { "type": "test", - "title": "\"proof.proofPurpose\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4909,23 +4959,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:804840a6-4d93-4c92-a8ea-019b06231c4e", + "_testId": "urn:uuid:7064e0d6-134c-4335-af3b-5c91719e6163", "cell": { "columnId": "Danube Tech", - "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof.proofPurpose\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4935,12 +4985,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:7a3cf5f5-5185-43c8-a198-d42c979c4c70", + "_testId": "urn:uuid:d8432de0-df1d-4d9e-ae08-8aa75ad141d0", "cell": { "columnId": "Digital Bazaar", - "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -4950,8 +5000,8 @@ }, { "type": "test", - "title": "\"proof.proofPurpose\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4961,12 +5011,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:20929ffd-767c-4e08-850b-05ee60a49367", + "_testId": "urn:uuid:a5775082-13d5-464b-941d-48a7b0b453ef", "cell": { "columnId": "EWF", - "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -4976,8 +5026,8 @@ }, { "type": "test", - "title": "\"proof.proofPurpose\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -4987,12 +5037,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:20aa001f-d96f-43ae-9e2b-74f45b2a2f38", + "_testId": "urn:uuid:3da0e6d4-b856-49c0-b262-6c1ae65be0db", "cell": { "columnId": "LearnCard", - "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -5002,8 +5052,34 @@ }, { "type": "test", - "title": "\"proof.proofPurpose\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", + "ctx": null, + "_testId": "urn:uuid:bc18172e-8e3c-49ae-80fe-9c6b8c1e8393", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5013,12 +5089,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:c77ea376-4190-41d0-be74-1c127d9c474b", + "_testId": "urn:uuid:467b4ada-1713-43bd-a002-90ba9bc4daf8", "cell": { "columnId": "SpruceID", - "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -5028,8 +5104,8 @@ }, { "type": "test", - "title": "\"proof.proofPurpose\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", + "title": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.created) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.created.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5039,28 +5115,28 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:7b8416b4-29e9-45ee-a601-b2474fc0d7fa", + "_testId": "urn:uuid:1c4d6e6f-a000-4366-9760-31f60aa626ae", "cell": { "columnId": "Trinsic", - "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." + "rowId": "if \"proof.created\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" } ] }, { - "id": "\"proof.proofValue\" field MUST exist and be a string.", + "id": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", "cells": [ { "type": "test", - "title": "\"proof.proofValue\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5070,12 +5146,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:590b7035-b89c-4e3d-bcc8-28dc42988d40", + "_testId": "urn:uuid:012d6566-1eb5-42f3-b01d-acd11a7fd336", "cell": { "columnId": "apicatalog.com", - "rowId": "\"proof.proofValue\" field MUST exist and be a string." + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -5085,8 +5161,8 @@ }, { "type": "test", - "title": "\"proof.proofValue\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5096,12 +5172,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:2059a794-e415-42cd-9001-6152e8e6c16f", + "_testId": "urn:uuid:b9864ffd-21ba-4d56-95e8-05db6efd4e04", "cell": { "columnId": "Danube Tech", - "rowId": "\"proof.proofValue\" field MUST exist and be a string." + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -5111,8 +5187,8 @@ }, { "type": "test", - "title": "\"proof.proofValue\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5122,12 +5198,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:badbf06e-4f2a-4a97-8d25-035eb5343bfe", + "_testId": "urn:uuid:25b9eefb-d252-4e18-b09f-19077cc8d92d", "cell": { "columnId": "Digital Bazaar", - "rowId": "\"proof.proofValue\" field MUST exist and be a string." + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -5137,8 +5213,8 @@ }, { "type": "test", - "title": "\"proof.proofValue\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5148,35 +5224,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:b6ddf6b5-75a0-433c-a337-a563d23ef562", + "_testId": "urn:uuid:6894d118-a629-4daa-918e-371dd6e8b967", "cell": { "columnId": "EWF", - "rowId": "\"proof.proofValue\" field MUST exist and be a string." + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, - "duration": 1, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'", - "showDiff": false, - "actual": { - "type": "Ed25519Signature2018", - "proofPurpose": "assertionMethod", - "verificationMethod": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", - "created": "2024-07-07T05:01:35.670Z", - "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..Ig_aDwCt-SySKQx7EPUhWqAXADt5GcMuzJu4C24qHqRyuU9ZvtzWRHJEx-7x2mfp0TlkvJTLdqcP1nK5i8cOAg" - }, - "stack": "AssertionError: expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:156:29)\n at process.processImmediate (node:internal/timers:478:21)" - } + "duration": 0, + "state": "passed", + "speed": "fast" }, { "type": "test", - "title": "\"proof.proofValue\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5186,12 +5250,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:64697aaa-0d2b-40d5-8e5b-aa9efe5d071e", + "_testId": "urn:uuid:8f239b60-32c4-46ef-8b0d-e4c22487def6", "cell": { "columnId": "LearnCard", - "rowId": "\"proof.proofValue\" field MUST exist and be a string." + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -5201,8 +5265,34 @@ }, { "type": "test", - "title": "\"proof.proofValue\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", + "ctx": null, + "_testId": "urn:uuid:95bc5286-63c5-49d1-8a59-cea12df50ec8", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5212,12 +5302,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:55733db4-80c5-4db7-9d21-b566667cf3f1", + "_testId": "urn:uuid:0687b655-62fd-442f-b989-f5a47e03ad39", "cell": { "columnId": "SpruceID", - "rowId": "\"proof.proofValue\" field MUST exist and be a string." + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -5227,8 +5317,8 @@ }, { "type": "test", - "title": "\"proof.proofValue\" field MUST exist and be a string.", - "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", + "title": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.expires) {\n // check if \"created\" is a valid XML Schema 1.1 dateTimeStamp\n // value\n proof.expires.should.match(dateRegex);\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5238,12 +5328,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:968cf841-6b79-4f88-a04e-d814582a62cf", + "_testId": "urn:uuid:ed2e2006-7e2b-443f-a6cc-068f656740d9", "cell": { "columnId": "Trinsic", - "rowId": "\"proof.proofValue\" field MUST exist and be a string." + "rowId": "if \"proof.expires\" field exists, it MUST be a valid XMLSCHEMA-11 dateTimeStamp value." }, "_events": {}, "_eventsCount": 1, @@ -5254,12 +5344,12 @@ ] }, { - "id": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "id": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", "cells": [ { "type": "test", - "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", - "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5269,12 +5359,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:60ebeec5-bc83-412a-b80d-b33991d65b3e", + "_testId": "urn:uuid:412d8247-d87c-4b89-adb9-d78f572da35a", "cell": { "columnId": "apicatalog.com", - "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, @@ -5284,8 +5374,8 @@ }, { "type": "test", - "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", - "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5295,23 +5385,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:7a7b8f82-37d2-4819-9ec9-2e195387fdf4", + "_testId": "urn:uuid:5fb30fac-3a87-418c-b9e4-fc0576e49599", "cell": { "columnId": "Danube Tech", - "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, - "duration": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", - "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5321,12 +5411,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:1ba71cd5-da84-4925-a1ba-98fb5b60ed1d", + "_testId": "urn:uuid:721e9ae0-e2df-402c-a867-dff84d07bf7d", "cell": { "columnId": "Digital Bazaar", - "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, @@ -5336,8 +5426,8 @@ }, { "type": "test", - "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", - "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5347,23 +5437,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:3c42fbe7-1938-45d9-aa0c-8125c876462b", + "_testId": "urn:uuid:c9121a22-0e88-4aed-b74b-01f004d1ddfd", "cell": { "columnId": "EWF", - "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "failed", - "err": {} + "state": "passed", + "speed": "fast" }, { "type": "test", - "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", - "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5373,12 +5463,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:a68bc7c9-f222-4ce4-b3a7-8c7604b88173", + "_testId": "urn:uuid:979f6489-b80b-4a23-b0d2-8b004951c256", "cell": { "columnId": "LearnCard", - "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, @@ -5388,8 +5478,34 @@ }, { "type": "test", - "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", - "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", + "ctx": null, + "_testId": "urn:uuid:8331709b-b310-4b8e-925c-e706bd4d06d4", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5399,12 +5515,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:2b2e1844-97cf-4721-8cb8-8d1a3677b00b", + "_testId": "urn:uuid:4f1b660a-e762-417f-aea5-4b4b68c03b8a", "cell": { "columnId": "SpruceID", - "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, @@ -5414,8 +5530,8 @@ }, { "type": "test", - "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", - "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", + "title": "\"proof.verificationMethod\" field MUST exist and be a valid URL.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('verificationMethod');\n let result;\n let err;\n try {\n result = new URL(proof.verificationMethod);\n } catch(e) {\n err = e;\n }\n should.not.exist(err, 'Expected URL check of the ' +\n '\"verificationMethod\" to not error.');\n should.exist(result, 'Expected \"verificationMethod\" ' +\n 'to be a URL');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5425,12 +5541,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:cfd79d87-38cb-4edb-85de-4b63909455bd", + "_testId": "urn:uuid:8654671e-39ba-4f9b-b146-f8017c166503", "cell": { "columnId": "Trinsic", - "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." + "rowId": "\"proof.verificationMethod\" field MUST exist and be a valid URL." }, "_events": {}, "_eventsCount": 1, @@ -5441,12 +5557,12 @@ ] }, { - "id": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "id": "\"proof.proofPurpose\" field MUST exist and be a string.", "cells": [ { "type": "test", - "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5456,12 +5572,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:c42eac4e-6c2f-4b8f-b892-8f4c55e3e8a1", + "_testId": "urn:uuid:45dd858b-e45b-4f06-b8c5-324a72d6db96", "cell": { "columnId": "apicatalog.com", - "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5471,8 +5587,8 @@ }, { "type": "test", - "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5482,12 +5598,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:3101ca1f-ecd0-48a7-88ea-2089c7939de9", + "_testId": "urn:uuid:024b9f75-65d7-41c5-a879-09379dc32e40", "cell": { "columnId": "Danube Tech", - "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5497,8 +5613,8 @@ }, { "type": "test", - "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5508,12 +5624,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:6aeebae4-27f2-4e59-8f01-2c6f80e6eedb", + "_testId": "urn:uuid:8c139638-c4a1-4282-b1c6-54ca3731ec78", "cell": { "columnId": "Digital Bazaar", - "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5523,8 +5639,8 @@ }, { "type": "test", - "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5534,12 +5650,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:7e27f3c5-45f6-41a9-8f1f-0c85624c7ad0", + "_testId": "urn:uuid:e65e6542-444e-4b89-a8b0-af8b188594be", "cell": { "columnId": "EWF", - "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5549,8 +5665,8 @@ }, { "type": "test", - "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5560,12 +5676,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:6396b5c0-aca7-47d8-b657-85a5b17e38d2", + "_testId": "urn:uuid:84aba318-6d0d-4cfa-9416-ec93fcc4f875", "cell": { "columnId": "LearnCard", - "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5575,8 +5691,34 @@ }, { "type": "test", - "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", + "ctx": null, + "_testId": "urn:uuid:7414383d-4ea2-446c-90ea-35ed370e995c", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5586,12 +5728,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:1795a806-60b4-4654-9ed1-ba10cd86b94b", + "_testId": "urn:uuid:5f02b114-25ec-4b17-89c6-8ef41403af49", "cell": { "columnId": "SpruceID", - "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5601,8 +5743,8 @@ }, { "type": "test", - "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", + "title": "\"proof.proofPurpose\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofPurpose');\n proof.proofPurpose.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5612,12 +5754,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:a9f9605e-26d3-4cf8-a859-690074c9c2bf", + "_testId": "urn:uuid:b7201dc1-f382-4267-8377-0da38afe2593", "cell": { "columnId": "Trinsic", - "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." + "rowId": "\"proof.proofPurpose\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5628,12 +5770,12 @@ ] }, { - "id": "if \"proof.challenge\" field exists, it MUST be a string.", + "id": "\"proof.proofValue\" field MUST exist and be a string.", "cells": [ { "type": "test", - "title": "if \"proof.challenge\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5643,12 +5785,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:297c704b-8529-4a34-8125-d741ff306a0e", + "_testId": "urn:uuid:2e7d5f09-a898-4b3b-8212-713bcd1e3ec6", "cell": { "columnId": "apicatalog.com", - "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5658,8 +5800,8 @@ }, { "type": "test", - "title": "if \"proof.challenge\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5669,12 +5811,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:fb261e23-ff75-4b4c-8845-5a463c9c120c", + "_testId": "urn:uuid:ab5de0ac-2854-4aa3-bb93-e1b2f9f830f2", "cell": { "columnId": "Danube Tech", - "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5684,8 +5826,8 @@ }, { "type": "test", - "title": "if \"proof.challenge\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5695,12 +5837,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:303b8d62-2844-4577-b7b0-9cf1008c006e", + "_testId": "urn:uuid:99d31d7f-9f35-4c2a-942b-a8e022298bc6", "cell": { "columnId": "Digital Bazaar", - "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5710,8 +5852,8 @@ }, { "type": "test", - "title": "if \"proof.challenge\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5721,23 +5863,35 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:91a3e0e7-3859-4c67-9047-d457e0a96abb", + "_testId": "urn:uuid:c9356810-a322-4ed4-8df8-b6a6b973ccee", "cell": { "columnId": "EWF", - "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": { + "name": "AssertionError", + "message": "expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'", + "showDiff": false, + "actual": { + "type": "Ed25519Signature2018", + "proofPurpose": "assertionMethod", + "verificationMethod": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", + "created": "2024-07-14T05:01:46.589Z", + "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..N-eIMgQRNkHs4hlEFkOiHzyOxetZoPiu6ope8KPZBLsB4pRH4irp6qV_ulPJdDZiJp6i2zo93AezPECl8jleBQ" + }, + "stack": "AssertionError: expected { type: 'Ed25519Signature2018', …(4) } to have property 'proofValue'\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/create.js:156:29)\n at process.processImmediate (node:internal/timers:478:21)" + } }, { "type": "test", - "title": "if \"proof.challenge\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5747,12 +5901,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:63715f16-999d-4d71-acd9-703b9aa4fdec", + "_testId": "urn:uuid:4bdd72de-3eb5-48d8-9fb2-56559ab2fc81", "cell": { "columnId": "LearnCard", - "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5762,8 +5916,8 @@ }, { "type": "test", - "title": "if \"proof.challenge\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5773,23 +5927,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:030b8cca-d80e-44b9-94c3-75f4fdff1142", + "_testId": "urn:uuid:d6afaa48-3a59-455f-a921-00c3299a94ce", "cell": { - "columnId": "SpruceID", - "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + "columnId": "Open Security and Identity", + "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, "duration": 0, - "state": "passed", - "speed": "fast" + "state": "failed", + "err": {} }, { "type": "test", - "title": "if \"proof.challenge\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5799,12 +5953,38 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:502d4bd4-4935-4c3f-bcba-73e024dad77b", + "_testId": "urn:uuid:de0b6139-9b4f-458e-a2d4-47b83dfc6ca0", + "cell": { + "columnId": "SpruceID", + "rowId": "\"proof.proofValue\" field MUST exist and be a string." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "\"proof.proofValue\" field MUST exist and be a string.", + "body": "function() {\n for(const proof of proofs) {\n proof.should.have.property('proofValue');\n proof.proofValue.should.be.a('string');\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "udraGLkJEDLGmTLTm_ryT", + "ctx": null, + "_testId": "urn:uuid:31e62a0a-9e24-4bad-b038-14cf52211aec", "cell": { "columnId": "Trinsic", - "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + "rowId": "\"proof.proofValue\" field MUST exist and be a string." }, "_events": {}, "_eventsCount": 1, @@ -5815,12 +5995,12 @@ ] }, { - "id": "if \"proof.previousProof\" field exists, it MUST be a string.", + "id": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", "cells": [ { "type": "test", - "title": "if \"proof.previousProof\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5830,23 +6010,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:9c8fdd50-7216-4545-813d-b30b9a8fc39a", + "_testId": "urn:uuid:5d449d45-ec2a-478f-845c-3c2ac50c98f5", "cell": { "columnId": "apicatalog.com", - "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "if \"proof.previousProof\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5856,12 +6036,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:7ad9cf8e-2122-4f8c-a0c0-e6a0afda6ec3", + "_testId": "urn:uuid:616afa50-58c4-4126-8a97-e11ce70f6d3d", "cell": { "columnId": "Danube Tech", - "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, @@ -5871,8 +6051,8 @@ }, { "type": "test", - "title": "if \"proof.previousProof\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5882,12 +6062,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:c80449d3-7e96-409a-a15a-1e6329d9458c", + "_testId": "urn:uuid:3410da1c-a4fe-4107-9abb-1e86df363d1a", "cell": { "columnId": "Digital Bazaar", - "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, @@ -5897,8 +6077,8 @@ }, { "type": "test", - "title": "if \"proof.previousProof\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5908,23 +6088,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:13d95fb8-d949-44e0-9930-cc893e5d71d8", + "_testId": "urn:uuid:ce49256b-0e56-4012-80e0-2c4b1ca272a4", "cell": { "columnId": "EWF", - "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, - "duration": 0, - "state": "passed", - "speed": "fast" + "duration": 1, + "state": "failed", + "err": {} }, { "type": "test", - "title": "if \"proof.previousProof\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5934,12 +6114,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:b9cc4eeb-6950-4b29-94df-1d9fb3ff8609", + "_testId": "urn:uuid:76dd5298-b6d8-4eb3-99f8-c54f27e848f0", "cell": { "columnId": "LearnCard", - "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, @@ -5949,8 +6129,34 @@ }, { "type": "test", - "title": "if \"proof.previousProof\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", + "ctx": null, + "_testId": "urn:uuid:95188705-8c71-4f01-89e4-5825de3701e9", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5960,12 +6166,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:f555c3f5-21fa-4146-9e5d-7a15aa7b4f83", + "_testId": "urn:uuid:472e949c-14a8-41b1-9267-6f43bc3e26ee", "cell": { "columnId": "SpruceID", - "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, @@ -5975,8 +6181,8 @@ }, { "type": "test", - "title": "if \"proof.previousProof\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", + "title": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase.", + "body": "function() {\n for(const proof of proofs) {\n const {\n prefix: expectedPrefix,\n name: encodingName\n } = expectedMultibasePrefix(proof.cryptosuite);\n\n proof.proofValue.slice(0, 1)\n .should.equal(\n expectedPrefix,\n `Expected \"proof.proofValue\" to be a ${encodingName} value`\n );\n\n isValidMultibaseEncoded(proof.proofValue, expectedPrefix).should\n .equal(\n true,\n `Expected \"proof.proofValue\" to be a valid ${encodingName} value`\n );\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -5986,12 +6192,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:0a412508-ddcb-4c23-b6d0-1c98d8ad3303", + "_testId": "urn:uuid:2cbb712d-f921-41c3-bdcb-8401d8f99f4f", "cell": { "columnId": "Trinsic", - "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + "rowId": "The contents of the value (\"proof.proofValue\") MUST be expressed with a header and encoding as described in Section 2.4 Multibase." }, "_events": {}, "_eventsCount": 1, @@ -6002,12 +6208,12 @@ ] }, { - "id": "if \"proof.nonce\" field exists, it MUST be a string.", + "id": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", "cells": [ { "type": "test", - "title": "if \"proof.nonce\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6017,12 +6223,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "I2GCLMniFnLRPxU6tjqIQ", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:2497d6f6-804d-4c8c-9ed6-c86de9f61c8f", + "_testId": "urn:uuid:064e81cf-ae44-45be-b0f4-e28b739d30fc", "cell": { "columnId": "apicatalog.com", - "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, @@ -6032,8 +6238,8 @@ }, { "type": "test", - "title": "if \"proof.nonce\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6043,12 +6249,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "q6UesWjM01lmrz_qMYbNw", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:de0b3a81-bc00-479d-a939-d9da1f19b768", + "_testId": "urn:uuid:54a86743-9c63-4804-8835-d878c87482b9", "cell": { "columnId": "Danube Tech", - "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, @@ -6058,8 +6264,8 @@ }, { "type": "test", - "title": "if \"proof.nonce\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6069,12 +6275,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "2_rMfR4W_t69vxRonomiY", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:41da4fe0-1b0f-4585-af4a-f4dc82ebe28b", + "_testId": "urn:uuid:57c28465-d42c-4dbd-9a94-7f0075f92224", "cell": { "columnId": "Digital Bazaar", - "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, @@ -6084,8 +6290,8 @@ }, { "type": "test", - "title": "if \"proof.nonce\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6095,12 +6301,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "_QIAc3tgna-jEtulvkkPs", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:a86a7abc-dfe6-481d-b1ac-751c49b6a29d", + "_testId": "urn:uuid:74b9b29f-7afa-4a2a-a1c4-21d457229c73", "cell": { "columnId": "EWF", - "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, @@ -6110,8 +6316,8 @@ }, { "type": "test", - "title": "if \"proof.nonce\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6121,12 +6327,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "LJ8J8TGedNOvnTKcxn7fL", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:d1014666-7b20-4acc-95b2-dbdff764d69f", + "_testId": "urn:uuid:3a65a8c8-2c4f-41a5-bc0a-fcda9395d162", "cell": { "columnId": "LearnCard", - "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, @@ -6136,8 +6342,34 @@ }, { "type": "test", - "title": "if \"proof.nonce\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", + "ctx": null, + "_testId": "urn:uuid:5c1f50a4-57e2-47f7-adaf-0dfba690bcf6", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6147,12 +6379,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "O_4BQuHNrF0Ee-zYk7pLQ", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:975b69d5-e200-46d3-9342-affc3bdee303", + "_testId": "urn:uuid:d4b75494-d76c-4c33-99f9-02dad4bb2612", "cell": { "columnId": "SpruceID", - "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, @@ -6162,8 +6394,8 @@ }, { "type": "test", - "title": "if \"proof.nonce\" field exists, it MUST be a string.", - "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "title": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.domain) {\n const validType = isStringOrArrayOfStrings(proof.domain);\n validType.should.equal(true, 'Expected ' +\n '\"proof.domain\" to be either a string or an unordered ' +\n 'set of strings.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6173,12 +6405,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "7vz4eu7imu2ZzwPvj2AAJ", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:d354497e-0f51-4b80-94aa-18ca8b917e74", + "_testId": "urn:uuid:0c703739-9b54-41f2-a55e-7deb186fdb9a", "cell": { "columnId": "Trinsic", - "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + "rowId": "if \"proof.domain\" field exists, it MUST be either a string, or an unordered set of strings." }, "_events": {}, "_eventsCount": 1, @@ -6187,22 +6419,14 @@ "speed": "fast" } ] - } - ] - }, - { - "title": "Ed25519Signature2020 (issuer)", - "ctx": null, - "suites": [ + }, { - "title": "apicatalog.com", - "ctx": null, - "suites": [], - "tests": [ + "id": "if \"proof.challenge\" field exists, it MUST be a string.", + "cells": [ { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6212,32 +6436,49 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "Oc1Nglk9ThyGQZeaV_6_O", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:119b93da-74fb-481c-878a-5d06c46478c5", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:9fca2f40-b3e6-448b-9478-ccdb8ff494e8", "cell": { "columnId": "apicatalog.com", - "rowId": "\"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." + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 9238, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZtqnwMd6ThLdfmwVIJc46", + "ctx": null, + "_testId": "urn:uuid:3ffd7c0a-8ca2-48b1-8ec2-c2cab61788b0", + "cell": { + "columnId": "Danube Tech", + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." }, - "duration": 1, + "_events": {}, + "_eventsCount": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6247,155 +6488,49 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "Oc1Nglk9ThyGQZeaV_6_O", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:95b6c95c-c8b6-4a09-8e57-66c15029b748", + "_testId": "urn:uuid:ceb7c1e4-a416-4c6e-800a-c559ffcda9a2", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, + "duration": 0, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "YtotC-buGcuGvJRar76il", + "ctx": null, + "_testId": "urn:uuid:1ad1c560-7bad-4b35-88e2-b7efcf700b48", "cell": { - "columnId": "apicatalog.com", - "rowId": "\"proof\" MUST verify when using a conformant verifier." + "columnId": "EWF", + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 9240, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 93, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", - "showDiff": false, - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:29aed5f5-6cf1-4f80-8368-7157e6aa935b\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:01:37Z\",\"proofValue\":\"z5fPdNPzS7m22vCNf8JEEBW8PrhDK2jM9EbqnFr613DCMw35MyndVAUWWRzhTQjN2D14PYhjoGpqARWEgsBg7LowU\"}},\"options\":{\"checks\":[\"proof\"]}}", - "method": "POST", - "json": { - "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "id": "urn:uuid:29aed5f5-6cf1-4f80-8368-7157e6aa935b", - "type": "VerifiableCredential", - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "proof": { - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", - "type": "Ed25519Signature2020", - "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:01:37Z", - "proofValue": "z5fPdNPzS7m22vCNf8JEEBW8PrhDK2jM9EbqnFr613DCMw35MyndVAUWWRzhTQjN2D14PYhjoGpqARWEgsBg7LowU" - } - }, - "options": { - "checks": [ - "proof" - ] - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/credentials/verify", - "status": 400, - "data": { - "checks": [ - "PROOF", - "INVALID_SIGNATURE" - ], - "warnings": [], - "errors": [] - } - }, - "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" - } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [ + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "passed", + "speed": "fast" + }, { - "title": "\"before all\" hook in \"apicatalog.com\"", - "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "type": "test", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6404,47 +6539,24 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "Oc1Nglk9ThyGQZeaV_6_O", - "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "originalTitle": "\"before all\" hook", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", + "ctx": null, + "_testId": "urn:uuid:ab42a9e7-8466-4051-b869-e60d3635cc54", + "cell": { + "columnId": "LearnCard", + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 9107, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 131, - "_error": null - } - ], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "FdAmwJVHXEzT-Dq_Q_sDQ", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:8e6653e7-f3c2-4581-9aa7-57ea7de975a6" - }, - { - "title": "Danube Tech", - "ctx": null, - "suites": [], - "tests": [ + "duration": 0, + "state": "passed", + "speed": "fast" + }, { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6454,32 +6566,49 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "zRG9SOxJf_ENyhfPV0aLi", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:95d6f528-ed02-4c0d-90c0-d7654281dd76", + "_testId": "urn:uuid:190d9bd2-0733-485b-86e3-fc2f8bf88cd2", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "0r-mvrIebNWsWI6Tg7tSs", + "ctx": null, + "_testId": "urn:uuid:603ec418-f038-4d4d-b29f-0e53b7d26e10", "cell": { - "columnId": "Danube Tech", - "rowId": "\"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." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 9584, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "columnId": "SpruceID", + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." }, - "duration": 1, + "_events": {}, + "_eventsCount": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "if \"proof.challenge\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.challenge) {\n // domain must be specified\n should.exist(proof.domain, 'Expected \"proof.domain\" ' +\n 'to be specified.');\n proof.challenge.should.be.a('string', 'Expected ' +\n '\"proof.challenge\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6489,154 +6618,54 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "zRG9SOxJf_ENyhfPV0aLi", + "parent": "udraGLkJEDLGmTLTm_ryT", "ctx": null, - "_testId": "urn:uuid:b2c720cf-a83d-444a-9da5-699ec27cc6d9", + "_testId": "urn:uuid:57df5b94-98f3-455a-8bfb-27dc4784b4b8", + "cell": { + "columnId": "Trinsic", + "rowId": "if \"proof.challenge\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, + "duration": 0, + "state": "passed", + "speed": "fast" + } + ] + }, + { + "id": "if \"proof.previousProof\" field exists, it MUST be a string.", + "cells": [ + { + "type": "test", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "91yvHHDS0MC2OdkIi1E0v", + "ctx": null, + "_testId": "urn:uuid:3283a1af-df2c-482f-afc9-3d4897315038", "cell": { - "columnId": "Danube Tech", - "rowId": "\"proof\" MUST verify when using a conformant verifier." + "columnId": "apicatalog.com", + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 9584, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 1468, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", - "showDiff": false, - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:4b10e1e4-d018-489a-a5fb-b057dc372308\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-07T05:01:37Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo#z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo\",\"proofValue\":\"z2dMqc2sbMaBmckCg65LhpsSWS4dS71vicBcQ5VtvkLUhEmPmu9GrXSUBf4ydo5mECEUzJJSBUyD82ocgucbKpome\"}},\"options\":{\"checks\":[\"proof\"]}}", - "method": "POST", - "json": { - "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "id": "urn:uuid:4b10e1e4-d018-489a-a5fb-b057dc372308", - "type": [ - "VerifiableCredential" - ], - "issuer": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "proof": { - "type": "Ed25519Signature2020", - "created": "2024-07-07T05:01:37Z", - "proofPurpose": "assertionMethod", - "verificationMethod": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo#z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", - "proofValue": "z2dMqc2sbMaBmckCg65LhpsSWS4dS71vicBcQ5VtvkLUhEmPmu9GrXSUBf4ydo5mECEUzJJSBUyD82ocgucbKpome" - } - }, - "options": { - "checks": [ - "proof" - ] - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://univerifier.io/1.0/credentials/verify", - "status": 400, - "data": { - "checks": [ - "proof" - ] - } - }, - "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" - } - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [ + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "passed", + "speed": "fast" + }, { - "title": "\"before all\" hook in \"Danube Tech\"", - "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "type": "test", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6645,47 +6674,24 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "zRG9SOxJf_ENyhfPV0aLi", - "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "originalTitle": "\"before all\" hook", + "parent": "ZtqnwMd6ThLdfmwVIJc46", + "ctx": null, + "_testId": "urn:uuid:4fa3b830-afa7-4fe0-bc6f-c8eb2f8d860a", + "cell": { + "columnId": "Danube Tech", + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 9334, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 249, - "_error": null - } - ], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "FdAmwJVHXEzT-Dq_Q_sDQ", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:25e00a58-9cf7-463b-9636-23b1b38f50b4" - }, - { - "title": "Digital Bazaar", - "ctx": null, - "suites": [], - "tests": [ + "duration": 0, + "state": "passed", + "speed": "fast" + }, { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6695,32 +6701,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "4Ju7mWL4YGbIdBF4bd1vJ", + "parent": "iHIfA9NPw5jZK2pNN4Buy", "ctx": null, - "_testId": "urn:uuid:0334c40b-cbbf-49ef-a817-036d7d171b23", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:68127452-9b32-4cb8-974c-190961cacef9", "cell": { "columnId": "Digital Bazaar", - "rowId": "\"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." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 11755, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." }, - "duration": 1, + "_events": {}, + "_eventsCount": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6730,37 +6727,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "4Ju7mWL4YGbIdBF4bd1vJ", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:92bbd123-783e-4696-8446-2637679923c8", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:2c362a91-1e54-47aa-a95d-b74dc5e1c515", "cell": { - "columnId": "Digital Bazaar", - "rowId": "\"proof\" MUST verify when using a conformant verifier." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 11756, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "columnId": "EWF", + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." }, - "duration": 726, + "_events": {}, + "_eventsCount": 1, + "duration": 0, "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [ + "speed": "fast" + }, { - "title": "\"before all\" hook in \"Digital Bazaar\"", - "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "type": "test", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6769,47 +6752,24 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "4Ju7mWL4YGbIdBF4bd1vJ", - "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "originalTitle": "\"before all\" hook", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", + "ctx": null, + "_testId": "urn:uuid:2c00f8d3-467b-4b85-acfb-25c46316b2ca", + "cell": { + "columnId": "LearnCard", + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 11054, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 701, - "_error": null - } - ], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "FdAmwJVHXEzT-Dq_Q_sDQ", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:5f0482dd-5d20-4646-9f6a-d1e0144f6b9a" - }, - { - "title": "EWF", - "ctx": null, - "suites": [], - "tests": [ + "duration": 0, + "state": "passed", + "speed": "fast" + }, { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6819,40 +6779,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "OG5P5VWQT0zhLk1RlGgEc", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, - "_testId": "urn:uuid:ba9ef3b5-2e5d-420d-8958-7b2dbb3d8161", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:d0552ecc-605f-4653-a819-fab6a163f164", "cell": { - "columnId": "EWF", - "rowId": "\"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." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 12586, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "columnId": "Open Security and Identity", + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." }, + "_events": {}, + "_eventsCount": 1, "duration": 0, "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected at least one Ed25519 proof.: expected +0 to be at least 1", - "showDiff": true, - "actual": "0", - "expected": "1", - "operator": "strictEqual", - "stack": "AssertionError: Expected at least one Ed25519 proof.: expected +0 to be at least 1\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:73:42)\n at process.processImmediate (node:internal/timers:478:21)" - } + "err": {} }, { "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6862,37 +6805,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "OG5P5VWQT0zhLk1RlGgEc", + "parent": "0r-mvrIebNWsWI6Tg7tSs", "ctx": null, - "_testId": "urn:uuid:910a94d3-7333-4e16-a1bd-ff467394a549", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:dc09fa19-781d-4040-bb1d-f319430752bc", "cell": { - "columnId": "EWF", - "rowId": "\"proof\" MUST verify when using a conformant verifier." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 12587, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "columnId": "SpruceID", + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." }, - "duration": 34, + "_events": {}, + "_eventsCount": 1, + "duration": 0, "state": "passed", "speed": "fast" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [ + }, { - "title": "\"before all\" hook in \"EWF\"", - "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "type": "test", + "title": "if \"proof.previousProof\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.previousProof) {\n proof.previousProof.should.be.a('string', 'Expected ' +\n '\"proof.previousProof\" to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6901,47 +6830,29 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "OG5P5VWQT0zhLk1RlGgEc", - "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "originalTitle": "\"before all\" hook", + "parent": "udraGLkJEDLGmTLTm_ryT", + "ctx": null, + "_testId": "urn:uuid:423e4167-66db-4e1d-9228-4545e2ef20ef", + "cell": { + "columnId": "Trinsic", + "rowId": "if \"proof.previousProof\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 12482, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 104, - "_error": null + "duration": 0, + "state": "passed", + "speed": "fast" } - ], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "FdAmwJVHXEzT-Dq_Q_sDQ", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:75dfe0bd-2ad6-4704-adb7-7e48cc0fc0fa" + ] }, { - "title": "LearnCard", - "ctx": null, - "suites": [], - "tests": [ + "id": "if \"proof.nonce\" field exists, it MUST be a string.", + "cells": [ { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6951,32 +6862,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "VmZ6peJwA3gmZMXP21Ge-", + "parent": "91yvHHDS0MC2OdkIi1E0v", "ctx": null, - "_testId": "urn:uuid:7804d31c-cea9-4508-b854-d814feec5394", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:d81ce071-b2c9-41dc-b0fe-b9b5fabeec8d", "cell": { - "columnId": "LearnCard", - "rowId": "\"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." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 12779, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "columnId": "apicatalog.com", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." }, + "_events": {}, + "_eventsCount": 1, "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -6986,37 +6888,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "VmZ6peJwA3gmZMXP21Ge-", + "parent": "ZtqnwMd6ThLdfmwVIJc46", "ctx": null, - "_testId": "urn:uuid:9553d37e-bd3c-4019-8023-3a2068eb6752", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:3ce07e4c-a110-42b8-a149-c9532e47dc3f", "cell": { - "columnId": "LearnCard", - "rowId": "\"proof\" MUST verify when using a conformant verifier." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 12780, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "columnId": "Danube Tech", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." }, - "duration": 144, + "_events": {}, + "_eventsCount": 1, + "duration": 0, "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [ + "speed": "fast" + }, { - "title": "\"before all\" hook in \"LearnCard\"", - "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "type": "test", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7025,47 +6913,24 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "VmZ6peJwA3gmZMXP21Ge-", - "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "originalTitle": "\"before all\" hook", + "parent": "iHIfA9NPw5jZK2pNN4Buy", + "ctx": null, + "_testId": "urn:uuid:2178613a-5dd7-4e0b-9c1e-a2366f7b048c", + "cell": { + "columnId": "Digital Bazaar", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 12620, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 158, - "_error": null - } - ], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "FdAmwJVHXEzT-Dq_Q_sDQ", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:0a1e565c-018a-45f8-ad0c-92c19a63bbd8" - }, - { - "title": "SpruceID", - "ctx": null, - "suites": [], - "tests": [ + "duration": 0, + "state": "passed", + "speed": "fast" + }, { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7075,32 +6940,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "IMv1-XX4NQ5PlGhTnFejq", + "parent": "YtotC-buGcuGvJRar76il", "ctx": null, - "_testId": "urn:uuid:7ff073c2-2e27-41d3-9daf-59322c326c4f", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:e7142fdf-185f-4336-a32c-5dc435910f4c", "cell": { - "columnId": "SpruceID", - "rowId": "\"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." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 13302, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "columnId": "EWF", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." }, - "duration": 1, + "_events": {}, + "_eventsCount": 1, + "duration": 0, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7110,37 +6966,23 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "IMv1-XX4NQ5PlGhTnFejq", + "parent": "Gtc7Bl8Ojb04G8EO1Q1r5", "ctx": null, - "_testId": "urn:uuid:eaac52b8-7578-4beb-856f-cb0d086f0e92", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:229d8603-7cc8-459e-8e5c-ff39d4ff8399", "cell": { - "columnId": "SpruceID", - "rowId": "\"proof\" MUST verify when using a conformant verifier." - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 13303, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "columnId": "LearnCard", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." }, - "duration": 103, + "_events": {}, + "_eventsCount": 1, + "duration": 0, "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [ + "speed": "fast" + }, { - "title": "\"before all\" hook in \"SpruceID\"", - "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "type": "test", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7149,40 +6991,82 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "IMv1-XX4NQ5PlGhTnFejq", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "ZgSJ1KslEPMuumypYvZOh", "ctx": null, + "_testId": "urn:uuid:c86ba9db-08c8-40ff-b8bd-3e707ddd5fff", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + }, + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "failed", + "err": {} + }, + { + "type": "test", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "originalTitle": "\"before all\" hook", + "parent": "0r-mvrIebNWsWI6Tg7tSs", + "ctx": null, + "_testId": "urn:uuid:72c95736-01a3-4660-b2a7-004037e3d868", + "cell": { + "columnId": "SpruceID", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." + }, "_events": {}, "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 12924, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true + "duration": 0, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "if \"proof.nonce\" field exists, it MUST be a string.", + "body": "function() {\n for(const proof of proofs) {\n if(proof.nonce) {\n proof.nonce.should.be.a('string', 'Expected \"proof.nonce\" ' +\n 'to be a string.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "udraGLkJEDLGmTLTm_ryT", + "ctx": null, + "_testId": "urn:uuid:162ec1ef-868d-400a-9b71-3a33efb94324", + "cell": { + "columnId": "Trinsic", + "rowId": "if \"proof.nonce\" field exists, it MUST be a string." }, - "duration": 379, - "_error": null + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "state": "passed", + "speed": "fast" } - ], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "FdAmwJVHXEzT-Dq_Q_sDQ", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:44c4477b-1c53-4283-a5cc-81770205a06a" - }, + ] + } + ] + }, + { + "title": "Ed25519Signature2020 (issuer)", + "ctx": null, + "suites": [ { - "title": "Trinsic", + "title": "apicatalog.com", "ctx": null, "suites": [], "tests": [ @@ -7199,25 +7083,25 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "F_s5SFS5QykDNdP49GP88", + "parent": "qviy7EAPMtCMZTd9b-J-5", "ctx": null, - "_testId": "urn:uuid:f0cab9d1-43d3-4ba4-a252-e3811fb5b447", + "_testId": "urn:uuid:123f3c2a-f3c3-456e-8f22-e1cba816b622", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "Trinsic", + "columnId": "apicatalog.com", "rowId": "\"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." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13514, + "_idleStart": 7693, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 1, "state": "passed", "speed": "fast" }, @@ -7234,27 +7118,145 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "F_s5SFS5QykDNdP49GP88", + "parent": "qviy7EAPMtCMZTd9b-J-5", "ctx": null, - "_testId": "urn:uuid:1f6f5082-1652-460a-b6b0-e3d2cfad9332", + "_testId": "urn:uuid:fedc381a-8db0-433c-ade9-ac885ac439d4", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "Trinsic", + "columnId": "apicatalog.com", "rowId": "\"proof\" MUST verify when using a conformant verifier." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13516, + "_idleStart": 7694, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 155, - "state": "passed", - "speed": "slow" + "duration": 84, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:d52762d4-2afc-429a-8881-70793a844e96\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:01:47Z\",\"proofValue\":\"z49oNmLifQXNv5Atn7p2sWpiNrjg6wHAWphjgLnUV98i7h97YAMKXYTGefiY9MXJGpqR9QnMEMqtSEpNtKcZfMTmk\"}},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "urn:uuid:d52762d4-2afc-429a-8881-70793a844e96", + "type": "VerifiableCredential", + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "issuanceDate": "2020-03-16T22:37:26.544Z", + "credentialSubject": { + "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" + }, + "proof": { + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:01:47Z", + "proofValue": "z49oNmLifQXNv5Atn7p2sWpiNrjg6wHAWphjgLnUV98i7h97YAMKXYTGefiY9MXJGpqR9QnMEMqtSEpNtKcZfMTmk" + } + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.apicatalog.com/credentials/verify", + "status": 400, + "data": { + "checks": [ + "PROOF", + "INVALID_SIGNATURE" + ], + "warnings": [], + "errors": [] + } + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } } ], "root": false, @@ -7263,7 +7265,7 @@ "_beforeEach": [], "_beforeAll": [ { - "title": "\"before all\" hook in \"Trinsic\"", + "title": "\"before all\" hook in \"apicatalog.com\"", "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", "async": 0, "sync": true, @@ -7274,7 +7276,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "F_s5SFS5QykDNdP49GP88", + "parent": "qviy7EAPMtCMZTd9b-J-5", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", "originalTitle": "\"before all\" hook", @@ -7284,12 +7286,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13406, + "_idleStart": 7561, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 131, "_error": null } ], @@ -7301,44 +7303,15 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "FdAmwJVHXEzT-Dq_Q_sDQ", + "parent": "jDrn76Oz_SMCzhVdSESDc", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "_testId": "urn:uuid:9818bc23-883b-4d1e-a28b-58ea75e44c16" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "dHDy95eOeN260QIsfSAKt", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Issuer", - "_testId": "urn:uuid:67bb2473-a42a-4c76-addd-4a9b37958086", - "columns": [ - "apicatalog.com", - "Danube Tech", - "Digital Bazaar", - "EWF", - "LearnCard", - "SpruceID", - "Trinsic" - ], - "rows": [ + "_testId": "urn:uuid:4f3491d2-30e0-4112-9b87-2b065f4faa87" + }, { - "id": "\"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.", - "cells": [ + "title": "Danube Tech", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", "title": "\"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.", @@ -7352,20 +7325,20 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "Oc1Nglk9ThyGQZeaV_6_O", + "parent": "uz0FV50QEjyJ7_BEOiAU3", "ctx": null, - "_testId": "urn:uuid:119b93da-74fb-481c-878a-5d06c46478c5", + "_testId": "urn:uuid:21ead62b-4e44-4972-8976-8143602ce11e", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "apicatalog.com", + "columnId": "Danube Tech", "rowId": "\"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." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 9238, + "_idleStart": 7965, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -7376,8 +7349,8 @@ }, { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7387,28 +7360,82 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "zRG9SOxJf_ENyhfPV0aLi", + "parent": "uz0FV50QEjyJ7_BEOiAU3", "ctx": null, - "_testId": "urn:uuid:95d6f528-ed02-4c0d-90c0-d7654281dd76", + "_testId": "urn:uuid:21435675-79a2-482f-8843-aa3a58cee8fb", "_events": {}, "_eventsCount": 1, "cell": { "columnId": "Danube Tech", - "rowId": "\"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." + "rowId": "\"proof\" MUST verify when using a conformant verifier." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 9584, + "_idleStart": 7965, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1, + "duration": 783, "state": "passed", - "speed": "fast" - }, + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [ + { + "title": "\"before all\" hook in \"Danube Tech\"", + "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "uz0FV50QEjyJ7_BEOiAU3", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 7780, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 185, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "jDrn76Oz_SMCzhVdSESDc", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "_testId": "urn:uuid:63da7106-1849-4b0c-bef9-510d01d526fb" + }, + { + "title": "Digital Bazaar", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", "title": "\"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.", @@ -7422,9 +7449,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "4Ju7mWL4YGbIdBF4bd1vJ", + "parent": "xYqcqH-7m13jpeoNc2ObN", "ctx": null, - "_testId": "urn:uuid:0334c40b-cbbf-49ef-a817-036d7d171b23", + "_testId": "urn:uuid:7d0bf662-73a5-4975-a6b2-00f062463eb3", "_events": {}, "_eventsCount": 1, "cell": { @@ -7435,7 +7462,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11755, + "_idleStart": 9241, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -7444,6 +7471,95 @@ "state": "passed", "speed": "fast" }, + { + "type": "test", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "xYqcqH-7m13jpeoNc2ObN", + "ctx": null, + "_testId": "urn:uuid:82dafd3a-5ffb-4456-971e-931e98d9ee7f", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 9241, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 575, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [ + { + "title": "\"before all\" hook in \"Digital Bazaar\"", + "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "xYqcqH-7m13jpeoNc2ObN", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 8749, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 491, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "jDrn76Oz_SMCzhVdSESDc", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "_testId": "urn:uuid:494ebb4f-2100-4b24-b62c-ae68cc74ec95" + }, + { + "title": "EWF", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", "title": "\"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.", @@ -7457,9 +7573,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "OG5P5VWQT0zhLk1RlGgEc", + "parent": "gq7F2uulQgcZ_jO_NuNTC", "ctx": null, - "_testId": "urn:uuid:ba9ef3b5-2e5d-420d-8958-7b2dbb3d8161", + "_testId": "urn:uuid:6277a6c5-ae18-4533-aacd-b2724acb486e", "_events": {}, "_eventsCount": 1, "cell": { @@ -7470,7 +7586,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12586, + "_idleStart": 9915, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -7489,8 +7605,8 @@ }, { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7500,28 +7616,82 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "VmZ6peJwA3gmZMXP21Ge-", + "parent": "gq7F2uulQgcZ_jO_NuNTC", "ctx": null, - "_testId": "urn:uuid:7804d31c-cea9-4508-b854-d814feec5394", + "_testId": "urn:uuid:08eac949-cfb6-4319-96db-1dba50df6e27", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "LearnCard", - "rowId": "\"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." + "columnId": "EWF", + "rowId": "\"proof\" MUST verify when using a conformant verifier." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12779, + "_idleStart": 9916, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 98, "state": "passed", - "speed": "fast" - }, + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [ + { + "title": "\"before all\" hook in \"EWF\"", + "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "gq7F2uulQgcZ_jO_NuNTC", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 9817, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 98, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "jDrn76Oz_SMCzhVdSESDc", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "_testId": "urn:uuid:5e69a136-1308-4eec-a321-06ed2ee8c50f" + }, + { + "title": "LearnCard", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", "title": "\"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.", @@ -7535,20 +7705,20 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "IMv1-XX4NQ5PlGhTnFejq", + "parent": "QmARP_IAIbdu61wz2vVNu", "ctx": null, - "_testId": "urn:uuid:7ff073c2-2e27-41d3-9daf-59322c326c4f", + "_testId": "urn:uuid:4af5df56-0a5e-4c4f-8d73-506c8bc8cf24", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "\"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." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13302, + "_idleStart": 10088, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -7559,8 +7729,8 @@ }, { "type": "test", - "title": "\"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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7570,37 +7740,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "F_s5SFS5QykDNdP49GP88", + "parent": "QmARP_IAIbdu61wz2vVNu", "ctx": null, - "_testId": "urn:uuid:f0cab9d1-43d3-4ba4-a252-e3811fb5b447", + "_testId": "urn:uuid:cc5f4393-ebf1-4999-be96-241da0562a54", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "Trinsic", - "rowId": "\"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." + "columnId": "LearnCard", + "rowId": "\"proof\" MUST verify when using a conformant verifier." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13514, + "_idleStart": 10088, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 0, + "duration": 87, "state": "passed", - "speed": "fast" + "speed": "slow" } - ] - }, - { - "id": "\"proof\" MUST verify when using a conformant verifier.", - "cells": [ + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [ { - "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "\"before all\" hook in \"LearnCard\"", + "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7609,145 +7779,84 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "Oc1Nglk9ThyGQZeaV_6_O", + "type": "hook", + "parent": "QmARP_IAIbdu61wz2vVNu", "ctx": null, - "_testId": "urn:uuid:95b6c95c-c8b6-4a09-8e57-66c15029b748", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before all\" hook", "_events": {}, "_eventsCount": 1, - "cell": { - "columnId": "apicatalog.com", - "rowId": "\"proof\" MUST verify when using a conformant verifier." - }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 9240, + "_idleStart": 10013, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 93, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", - "showDiff": false, - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:29aed5f5-6cf1-4f80-8368-7157e6aa935b\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:01:37Z\",\"proofValue\":\"z5fPdNPzS7m22vCNf8JEEBW8PrhDK2jM9EbqnFr613DCMw35MyndVAUWWRzhTQjN2D14PYhjoGpqARWEgsBg7LowU\"}},\"options\":{\"checks\":[\"proof\"]}}", - "method": "POST", - "json": { - "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "id": "urn:uuid:29aed5f5-6cf1-4f80-8368-7157e6aa935b", - "type": "VerifiableCredential", - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "proof": { - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", - "type": "Ed25519Signature2020", - "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:01:37Z", - "proofValue": "z5fPdNPzS7m22vCNf8JEEBW8PrhDK2jM9EbqnFr613DCMw35MyndVAUWWRzhTQjN2D14PYhjoGpqARWEgsBg7LowU" - } - }, - "options": { - "checks": [ - "proof" - ] - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/credentials/verify", - "status": 400, - "data": { - "checks": [ - "PROOF", - "INVALID_SIGNATURE" - ], - "warnings": [], - "errors": [] - } - }, - "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + "duration": 74, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "jDrn76Oz_SMCzhVdSESDc", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "_testId": "urn:uuid:3dfc1530-5095-404f-95d8-fcc01f9b4d96" + }, + { + "title": "Open Security and Identity", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "8kTX7nqXY2dVy9322H-6-", + "ctx": null, + "_testId": "urn:uuid:403fa7b1-5238-463d-a808-c98832c3caca", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "\"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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 10228, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 0, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected at least one Ed25519 proof.: expected +0 to be at least 1", + "showDiff": true, + "actual": "0", + "expected": "1", + "operator": "strictEqual", + "stack": "AssertionError: Expected at least one Ed25519 proof.: expected +0 to be at least 1\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:73:42)\n at process.processImmediate (node:internal/timers:478:21)" } }, { @@ -7763,25 +7872,25 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "zRG9SOxJf_ENyhfPV0aLi", + "parent": "8kTX7nqXY2dVy9322H-6-", "ctx": null, - "_testId": "urn:uuid:b2c720cf-a83d-444a-9da5-699ec27cc6d9", + "_testId": "urn:uuid:30baa129-e35c-4de9-8982-c9f279457e61", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "Danube Tech", + "columnId": "Open Security and Identity", "rowId": "\"proof\" MUST verify when using a conformant verifier." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 9584, + "_idleStart": 10228, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1468, + "duration": 32, "state": "failed", "err": { "name": "AssertionError", @@ -7793,30 +7902,11 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:4b10e1e4-d018-489a-a5fb-b057dc372308\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-07T05:01:37Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo#z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo\",\"proofValue\":\"z2dMqc2sbMaBmckCg65LhpsSWS4dS71vicBcQ5VtvkLUhEmPmu9GrXSUBf4ydo5mECEUzJJSBUyD82ocgucbKpome\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "id": "urn:uuid:4b10e1e4-d018-489a-a5fb-b057dc372308", - "type": [ - "VerifiableCredential" - ], - "issuer": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "proof": { - "type": "Ed25519Signature2020", - "created": "2024-07-07T05:01:37Z", - "proofPurpose": "assertionMethod", - "verificationMethod": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo#z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", - "proofValue": "z2dMqc2sbMaBmckCg65LhpsSWS4dS71vicBcQ5VtvkLUhEmPmu9GrXSUBf4ydo5mECEUzJJSBUyD82ocgucbKpome" - } + "verifiableCredential": null }, "options": { "checks": [ @@ -7890,22 +7980,169 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://univerifier.io/1.0/credentials/verify", - "status": 400, + "requestUrl": "https://vc.opsec.id/credentials/verify", + "status": 422, "data": { - "checks": [ - "proof" + "detail": [ + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "@context" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "type" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuer" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuanceDate" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "credentialSubject" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "proof" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "@context" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "type" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuer" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "credentialSubject" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "proof" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + } ] } }, "operator": "notStrictEqual", "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } - }, + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [ { - "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "\"before all\" hook in \"Open Security and Identity\"", + "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7914,33 +8151,47 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "4Ju7mWL4YGbIdBF4bd1vJ", + "type": "hook", + "parent": "8kTX7nqXY2dVy9322H-6-", "ctx": null, - "_testId": "urn:uuid:92bbd123-783e-4696-8446-2637679923c8", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before all\" hook", "_events": {}, "_eventsCount": 1, - "cell": { - "columnId": "Digital Bazaar", - "rowId": "\"proof\" MUST verify when using a conformant verifier." - }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 11756, + "_idleStart": 10176, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 726, - "state": "passed", - "speed": "slow" - }, + "duration": 51, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "jDrn76Oz_SMCzhVdSESDc", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "_testId": "urn:uuid:32417125-79b8-4588-9b15-981659477789" + }, + { + "title": "SpruceID", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -7950,25 +8201,25 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "OG5P5VWQT0zhLk1RlGgEc", + "parent": "Mr6e4_lxZ2VixGAUsq0M3", "ctx": null, - "_testId": "urn:uuid:910a94d3-7333-4e16-a1bd-ff467394a549", + "_testId": "urn:uuid:0804d9fd-d889-41ec-8bae-1320d249ae93", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "EWF", - "rowId": "\"proof\" MUST verify when using a conformant verifier." + "columnId": "SpruceID", + "rowId": "\"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." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12587, + "_idleStart": 10300, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 34, + "duration": 0, "state": "passed", "speed": "fast" }, @@ -7985,32 +8236,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "VmZ6peJwA3gmZMXP21Ge-", + "parent": "Mr6e4_lxZ2VixGAUsq0M3", "ctx": null, - "_testId": "urn:uuid:9553d37e-bd3c-4019-8023-3a2068eb6752", + "_testId": "urn:uuid:2fb930d3-61c2-467c-93f9-35b623d8eb5c", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "LearnCard", + "columnId": "SpruceID", "rowId": "\"proof\" MUST verify when using a conformant verifier." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 12780, + "_idleStart": 10301, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 144, + "duration": 26, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [ { - "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "\"before all\" hook in \"SpruceID\"", + "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8019,33 +8275,47 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "IMv1-XX4NQ5PlGhTnFejq", + "type": "hook", + "parent": "Mr6e4_lxZ2VixGAUsq0M3", "ctx": null, - "_testId": "urn:uuid:eaac52b8-7578-4beb-856f-cb0d086f0e92", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before all\" hook", "_events": {}, "_eventsCount": 1, - "cell": { - "columnId": "SpruceID", - "rowId": "\"proof\" MUST verify when using a conformant verifier." - }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13303, + "_idleStart": 10262, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 103, - "state": "passed", - "speed": "slow" - }, + "duration": 39, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "jDrn76Oz_SMCzhVdSESDc", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "_testId": "urn:uuid:63fba4c8-de2c-4c3d-9a77-3aa799a61d93" + }, + { + "title": "Trinsic", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "\"proof\" MUST verify when using a conformant verifier.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8055,45 +8325,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", - "parent": "F_s5SFS5QykDNdP49GP88", + "parent": "mcTKipnAL3omqEqLsrXv0", "ctx": null, - "_testId": "urn:uuid:1f6f5082-1652-460a-b6b0-e3d2cfad9332", + "_testId": "urn:uuid:1b21474f-c22b-4cbf-8665-5acdb3fad9a4", "_events": {}, "_eventsCount": 1, "cell": { "columnId": "Trinsic", - "rowId": "\"proof\" MUST verify when using a conformant verifier." + "rowId": "\"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." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13516, + "_idleStart": 10364, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 155, + "duration": 0, "state": "passed", - "speed": "slow" - } - ] - } - ] - }, - { - "title": "Data Integrity (verifier)", - "ctx": null, - "suites": [ - { - "title": "apicatalog.com", - "ctx": null, - "suites": [], - "tests": [ + "speed": "fast" + }, { "type": "test", - "title": "If the \"proof\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8102,33 +8359,38 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "mcTKipnAL3omqEqLsrXv0", "ctx": null, - "_testId": "urn:uuid:805036dc-cafb-4d2a-be8f-cac09b2bedc8", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof\" field is missing, an error MUST be raised." - }, + "_testId": "urn:uuid:6d23656f-ff04-4e5f-a52f-fc9b5971aa9e", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13705, + "_idleStart": 10364, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 51, "state": "passed", - "speed": "slow" - }, + "speed": "medium" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [ { - "type": "test", - "title": "If the \"proof\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", + "title": "\"before all\" hook in \"Trinsic\"", + "body": "async function() {\n const [issuer] = endpoints;\n verifier = implementation.verifiers.find(\n verifier => verifier.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n if(error) {\n throw error;\n }\n issuedVc = data;\n const {proof} = issuedVc || {};\n proofs = Array.isArray(proof) ? proof : [proof];\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8137,33 +8399,77 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "type": "hook", + "parent": "mcTKipnAL3omqEqLsrXv0", "ctx": null, - "_testId": "urn:uuid:55404bd2-deea-419c-924a-b81bf2882535", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof\" field is invalid, an error MUST be raised." - }, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "originalTitle": "\"before all\" hook", "_events": {}, "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13808, + "_idleStart": 10327, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 77, - "state": "passed", - "speed": "slow" - }, + "duration": 36, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "jDrn76Oz_SMCzhVdSESDc", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "_testId": "urn:uuid:2d3d2a2c-688b-4e51-a0c6-df8a179bfc35" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "wH8v8jHAQPjILnjKGnNgA", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Issuer", + "_testId": "urn:uuid:67b9cd99-13c7-4a5b-93e2-92098f00f2ae", + "columns": [ + "apicatalog.com", + "Danube Tech", + "Digital Bazaar", + "EWF", + "LearnCard", + "Open Security and Identity", + "SpruceID", + "Trinsic" + ], + "rows": [ + { + "id": "\"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.", + "cells": [ { "type": "test", - "title": "If the \"proof.type\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8172,33 +8478,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "qviy7EAPMtCMZTd9b-J-5", "ctx": null, - "_testId": "urn:uuid:cd077f00-72a8-4e54-aa7b-e035ea830853", + "_testId": "urn:uuid:123f3c2a-f3c3-456e-8f22-e1cba816b622", + "_events": {}, + "_eventsCount": 1, "cell": { "columnId": "apicatalog.com", - "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." + "rowId": "\"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." }, - "_events": {}, - "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13884, + "_idleStart": 7693, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 79, + "duration": 1, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8207,33 +8513,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "uz0FV50QEjyJ7_BEOiAU3", "ctx": null, - "_testId": "urn:uuid:809ebd66-afa2-4538-958a-9bdc13c06240", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." - }, + "_testId": "urn:uuid:21ead62b-4e44-4972-8976-8143602ce11e", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "Danube Tech", + "rowId": "\"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." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13964, + "_idleStart": 7965, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 75, + "duration": 1, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8242,33 +8548,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "xYqcqH-7m13jpeoNc2ObN", "ctx": null, - "_testId": "urn:uuid:f707019b-c1fd-4155-814b-8e09c4520b85", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." - }, + "_testId": "urn:uuid:7d0bf662-73a5-4975-a6b2-00f062463eb3", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "\"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." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14040, + "_idleStart": 9241, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 71, + "duration": 1, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8277,33 +8583,41 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "gq7F2uulQgcZ_jO_NuNTC", "ctx": null, - "_testId": "urn:uuid:bd24a7f5-dd83-430f-90d4-8d8f50f242b3", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." - }, + "_testId": "urn:uuid:6277a6c5-ae18-4533-aacd-b2724acb486e", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "\"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." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14111, + "_idleStart": 9915, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 76, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected at least one Ed25519 proof.: expected +0 to be at least 1", + "showDiff": true, + "actual": "0", + "expected": "1", + "operator": "strictEqual", + "stack": "AssertionError: Expected at least one Ed25519 proof.: expected +0 to be at least 1\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:73:42)\n at process.processImmediate (node:internal/timers:478:21)" + } }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8312,33 +8626,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "QmARP_IAIbdu61wz2vVNu", "ctx": null, - "_testId": "urn:uuid:cb24a5ef-7c22-48cc-858b-cad209804ea3", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." - }, + "_testId": "urn:uuid:4af5df56-0a5e-4c4f-8d73-506c8bc8cf24", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "\"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." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14187, + "_idleStart": 10088, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 72, + "duration": 1, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8347,33 +8661,41 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "8kTX7nqXY2dVy9322H-6-", "ctx": null, - "_testId": "urn:uuid:f534827b-a993-49c0-81ea-8a033db43d26", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." - }, + "_testId": "urn:uuid:403fa7b1-5238-463d-a808-c98832c3caca", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "\"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." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14260, + "_idleStart": 10228, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 77, - "state": "passed", - "speed": "slow" + "duration": 0, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected at least one Ed25519 proof.: expected +0 to be at least 1", + "showDiff": true, + "actual": "0", + "expected": "1", + "operator": "strictEqual", + "stack": "AssertionError: Expected at least one Ed25519 proof.: expected +0 to be at least 1\n at Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:73:42)\n at process.processImmediate (node:internal/timers:478:21)" + } }, { "type": "test", - "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8382,33 +8704,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "Mr6e4_lxZ2VixGAUsq0M3", "ctx": null, - "_testId": "urn:uuid:a666b03c-8dad-45a1-a9dc-4a6673bfc4d4", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." - }, + "_testId": "urn:uuid:0804d9fd-d889-41ec-8bae-1320d249ae93", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "\"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." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14338, + "_idleStart": 10300, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 78, + "duration": 0, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", + "title": "\"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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n should.exist(issuedVc, 'Expected issuer to have issued a ' +\n 'credential.');\n should.exist(proofs, 'Expected credential to have a proof.');\n const ed25519Proofs = proofs.filter(\n proof => proof?.type === 'Ed25519Signature2020');\n ed25519Proofs.length.should.be.gte(1, 'Expected at least one ' +\n 'Ed25519 proof.');\n for(const proof of ed25519Proofs) {\n should.exist(proof.proofValue, 'Expected a proof value on ' +\n 'the proof.');\n const valueBytes = bs58Decode({id: proof.proofValue});\n should.exist(proof.verificationMethod);\n const vmBytes = await getPublicKeyBytes({\n did: proof.verificationMethod});\n vmBytes.byteLength.should.be.oneOf([32, 57], 'Expected public ' +\n 'key bytes to be either 32 or 57 bytes.');\n if(vmBytes.byteLength === 32) {\n valueBytes.byteLength.should.equal(64, 'Expected 64 bytes ' +\n 'proofValue for 32 bytes key.');\n } else {\n valueBytes.byteLength.should.equal(114, 'Expected 114 bytes ' +\n 'proofValue for 57 bytes key.');\n }\n }\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8417,33 +8739,38 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "mcTKipnAL3omqEqLsrXv0", "ctx": null, - "_testId": "urn:uuid:06a18cfc-d381-4c72-a417-2a98f40c5f0c", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." - }, + "_testId": "urn:uuid:1b21474f-c22b-4cbf-8665-5acdb3fad9a4", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "\"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." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14415, + "_idleStart": 10364, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 81, + "duration": 0, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "\"proof\" MUST verify when using a conformant verifier.", + "cells": [ { "type": "test", - "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8452,33 +8779,151 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "qviy7EAPMtCMZTd9b-J-5", "ctx": null, - "_testId": "urn:uuid:fa8f2b1b-7656-4bd3-9feb-6dbb3f46ce39", + "_testId": "urn:uuid:fedc381a-8db0-433c-ade9-ac885ac439d4", + "_events": {}, + "_eventsCount": 1, "cell": { "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." + "rowId": "\"proof\" MUST verify when using a conformant verifier." }, - "_events": {}, - "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14497, + "_idleStart": 7694, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 81, - "state": "passed", - "speed": "slow" + "duration": 84, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:d52762d4-2afc-429a-8881-70793a844e96\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:01:47Z\",\"proofValue\":\"z49oNmLifQXNv5Atn7p2sWpiNrjg6wHAWphjgLnUV98i7h97YAMKXYTGefiY9MXJGpqR9QnMEMqtSEpNtKcZfMTmk\"}},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "urn:uuid:d52762d4-2afc-429a-8881-70793a844e96", + "type": "VerifiableCredential", + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "issuanceDate": "2020-03-16T22:37:26.544Z", + "credentialSubject": { + "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" + }, + "proof": { + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:01:47Z", + "proofValue": "z49oNmLifQXNv5Atn7p2sWpiNrjg6wHAWphjgLnUV98i7h97YAMKXYTGefiY9MXJGpqR9QnMEMqtSEpNtKcZfMTmk" + } + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.apicatalog.com/credentials/verify", + "status": 400, + "data": { + "checks": [ + "PROOF", + "INVALID_SIGNATURE" + ], + "warnings": [], + "errors": [] + } + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } }, { "type": "test", - "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8487,33 +8932,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "uz0FV50QEjyJ7_BEOiAU3", "ctx": null, - "_testId": "urn:uuid:1d168e2d-0753-404c-9788-cd0fef240d4a", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." - }, + "_testId": "urn:uuid:21435675-79a2-482f-8843-aa3a58cee8fb", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "Danube Tech", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14578, + "_idleStart": 7965, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 73, + "duration": 783, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8522,33 +8967,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "xYqcqH-7m13jpeoNc2ObN", "ctx": null, - "_testId": "urn:uuid:18d888fe-9d87-41e1-afe2-e4d6d6dc7072", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." - }, + "_testId": "urn:uuid:82dafd3a-5ffb-4456-971e-931e98d9ee7f", "_events": {}, "_eventsCount": 1, - "timer": { + "cell": { + "columnId": "Digital Bazaar", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, + "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14652, + "_idleStart": 9241, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 73, + "duration": 575, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8557,34 +9002,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "gq7F2uulQgcZ_jO_NuNTC", "ctx": null, - "_testId": "urn:uuid:3c6d2d68-9712-40c7-befc-d30b1cca08cf", - "cell": { - "columnId": "apicatalog.com", - "rowId": "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." - }, + "_testId": "urn:uuid:08eac949-cfb6-4319-96db-1dba50df6e27", "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", + "cell": { + "columnId": "EWF", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14725, + "_idleStart": 9916, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 74, + "duration": 98, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8593,33 +9037,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "QmARP_IAIbdu61wz2vVNu", "ctx": null, - "_testId": "urn:uuid:21f89782-86ef-4e7a-8023-1883d2bb7068", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." - }, + "_testId": "urn:uuid:cc5f4393-ebf1-4999-be96-241da0562a54", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14799, + "_idleStart": 10088, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 76, + "duration": 87, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8628,37 +9072,273 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "8kTX7nqXY2dVy9322H-6-", "ctx": null, - "_testId": "urn:uuid:e5aaad3a-b76b-44cd-92a6-94a46a11e944", - "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." - }, + "_testId": "urn:uuid:30baa129-e35c-4de9-8982-c9f279457e61", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14876, + "_idleStart": 10228, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 77, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [ + "duration": 32, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "verifiableCredential": null + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/verify", + "status": 422, + "data": { + "detail": [ + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "@context" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "type" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuer" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuanceDate" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "credentialSubject" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "proof" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "@context" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "type" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuer" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "credentialSubject" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "proof" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + } + ] + } + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js:105:24)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } + }, { - "title": "\"before each\" hook in \"apicatalog.com\"", - "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", + "type": "test", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8667,21 +9347,33 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "Mr6e4_lxZ2VixGAUsq0M3", "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "originalTitle": "\"before each\" hook", + "_testId": "urn:uuid:2fb930d3-61c2-467c-93f9-35b623d8eb5c", "_events": {}, "_eventsCount": 1, - "duration": 0, - "_error": null - } - ], - "_beforeAll": [ + "cell": { + "columnId": "SpruceID", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 10301, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 26, + "state": "passed", + "speed": "fast" + }, { - "title": "\"before all\" hook in \"apicatalog.com\"", - "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", + "type": "test", + "title": "\"proof\" MUST verify when using a conformant verifier.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title,\n };\n should.exist(verifier, 'Expected implementation to have a VC ' +\n 'HTTP API compatible verifier.');\n const {result, error} = await verifier.post({json: {\n verifiableCredential: issuedVc,\n options: {checks: ['proof']}\n }});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected verifier to return a result.');\n result.status.should.not.equal(400, 'Expected status code to not ' +\n 'be 400.');\n result.status.should.equal(200, 'Expected status code to be 200.');\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -8690,40 +9382,39 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "type": "hook", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/10-create.js", + "parent": "mcTKipnAL3omqEqLsrXv0", "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "originalTitle": "\"before all\" hook", + "_testId": "urn:uuid:6d23656f-ff04-4e5f-a52f-fc9b5971aa9e", "_events": {}, "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "\"proof\" MUST verify when using a conformant verifier." + }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13673, + "_idleStart": 10364, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 33, - "_error": null + "duration": 51, + "state": "passed", + "speed": "medium" } - ], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "gqRiKTgbENKVcO6GmaH-V", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:35019ef1-d884-4a8d-9b01-4996ee9f91f7" - }, + ] + } + ] + }, + { + "title": "Data Integrity (verifier)", + "ctx": null, + "suites": [ { - "title": "Danube Tech", + "title": "apicatalog.com", "ctx": null, "suites": [], "tests": [ @@ -8740,11 +9431,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:265422e9-5629-4f43-9858-8f46bd66ac89", + "_testId": "urn:uuid:537e8c57-8ec0-42b7-9c48-88378ff7c896", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, @@ -8753,14 +9444,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14980, + "_idleStart": 10449, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1121, + "duration": 59, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -8775,11 +9466,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:291c358c-f00c-460b-b6c7-c8c47d306b1b", + "_testId": "urn:uuid:74af2020-16d2-47e0-b8a0-429313ed79b9", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -8788,14 +9479,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 16102, + "_idleStart": 10509, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 623, + "duration": 56, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -8810,11 +9501,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:8411159b-72c4-43e2-8e70-1f4fb686132f", + "_testId": "urn:uuid:2f4f7f0c-02cf-4d1f-8a7d-029d423ca0f5", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, @@ -8823,14 +9514,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 16726, + "_idleStart": 10566, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 299, + "duration": 64, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -8845,11 +9536,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:1d417a36-417b-46e8-890a-d32005d011bb", + "_testId": "urn:uuid:f5e88403-2f28-481b-9f30-56eef9764cfb", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, @@ -8858,14 +9549,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17025, + "_idleStart": 10631, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 298, + "duration": 52, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -8880,11 +9571,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:80626564-7bd8-4613-b2df-30826cb278cf", + "_testId": "urn:uuid:56d3283f-b790-4e6c-9207-707ce2581adf", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, @@ -8893,20 +9584,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17323, + "_idleStart": 10683, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 175, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to return an HTTP Status code: expected undefined to exist", - "showDiff": false, - "operator": "strictEqual", - "stack": "AssertionError: Expected verifier to return an HTTP Status code: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:37:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)" - } + "duration": 46, + "state": "passed", + "speed": "medium" }, { "type": "test", @@ -8921,11 +9606,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:cb22d7dd-428d-4ae9-a82a-1b816cf63ac0", + "_testId": "urn:uuid:e7c24c2d-317f-4b3a-9910-0db8ac9f02f7", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -8934,14 +9619,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17498, + "_idleStart": 10729, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 768, + "duration": 54, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -8956,11 +9641,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:4d17f47b-076c-4196-99b7-9d67b82e4301", + "_testId": "urn:uuid:2a7553ef-4d75-4cd5-940b-ba196c7a17df", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, @@ -8969,14 +9654,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 18266, + "_idleStart": 10782, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 734, + "duration": 49, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -8991,11 +9676,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:61d264b0-8479-4ed3-9eed-665fba10f651", + "_testId": "urn:uuid:b043709d-2b64-4c58-8b8e-634e576c7c52", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -9004,14 +9689,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 19000, + "_idleStart": 10831, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 741, + "duration": 62, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -9026,11 +9711,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:313fa31d-b5e7-4d98-aedf-da4e707f5372", + "_testId": "urn:uuid:12d185bd-9ec3-4439-9bc5-498be3aa2b16", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, @@ -9039,14 +9724,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 19742, + "_idleStart": 10894, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 728, + "duration": 73, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -9061,11 +9746,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:ae17ca9f-9144-4b06-ba3c-4f5e42ddfa19", + "_testId": "urn:uuid:3043b493-66fa-4fb5-a817-aa2883549516", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, @@ -9074,14 +9759,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 20469, + "_idleStart": 10967, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 766, + "duration": 53, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -9096,11 +9781,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:b470b6f2-c14d-4c44-b00e-1f3c3c28feed", + "_testId": "urn:uuid:75efd32a-17bf-44e2-8268-90f449bf38dd", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -9109,14 +9794,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 21236, + "_idleStart": 11022, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 732, + "duration": 59, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -9131,11 +9816,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:03a40aef-7114-43f5-b5cd-3488692ca8c8", + "_testId": "urn:uuid:1cd2cd5d-9795-432c-9011-e74606321315", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -9144,14 +9829,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 21969, + "_idleStart": 11081, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 726, + "duration": 46, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -9166,11 +9851,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:07944321-a820-4939-b0ad-1eb117e41085", + "_testId": "urn:uuid:46e957d3-ff69-4c56-9690-ed2ebd60a6e6", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, "_events": {}, @@ -9179,14 +9864,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 22695, + "_idleStart": 11128, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 728, + "duration": 53, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -9201,11 +9886,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:43b1e2bc-92e6-47ba-909e-440d3ee2ebeb", + "_testId": "urn:uuid:6eacaabe-7d45-4815-91f4-652060df6b4c", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "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." }, "_events": {}, @@ -9215,14 +9900,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 23424, + "_idleStart": 11180, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 804, + "duration": 47, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -9237,11 +9922,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:86449306-4015-4d30-a6a6-79fc63303a8a", + "_testId": "urn:uuid:9cc0460c-46cb-45c1-b68c-2a6cb1d07167", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, "_events": {}, @@ -9250,14 +9935,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 24228, + "_idleStart": 11228, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 737, + "duration": 49, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -9272,11 +9957,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:184b7b90-de49-43b2-904c-0e90709e015e", + "_testId": "urn:uuid:af9cc921-9b1c-4cba-a19e-a3fa84234c6e", "cell": { - "columnId": "Danube Tech", + "columnId": "apicatalog.com", "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, "_events": {}, @@ -9285,14 +9970,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 24966, + "_idleStart": 11276, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 814, + "duration": 61, "state": "passed", - "speed": "slow" + "speed": "medium" } ], "root": false, @@ -9300,7 +9985,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook in \"Danube Tech\"", + "title": "\"before each\" hook in \"apicatalog.com\"", "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, @@ -9311,7 +9996,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before each\" hook", @@ -9323,7 +10008,7 @@ ], "_beforeAll": [ { - "title": "\"before all\" hook in \"Danube Tech\"", + "title": "\"before all\" hook in \"apicatalog.com\"", "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", "async": 0, "sync": true, @@ -9334,7 +10019,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before all\" hook", @@ -9344,12 +10029,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14953, + "_idleStart": 10418, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 32, "_error": null } ], @@ -9361,12 +10046,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gqRiKTgbENKVcO6GmaH-V", + "parent": "GHw7FNcpDHaPu0-3wYevD", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:dc98d517-9d48-4985-8c83-deab38b9f57f" + "_testId": "urn:uuid:19f06774-5256-454c-bed3-8103c22488bb" }, { - "title": "Digital Bazaar", + "title": "Danube Tech", "ctx": null, "suites": [], "tests": [ @@ -9383,11 +10068,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:d3f212c6-d44a-4b81-8c93-1c6dfc7a6281", + "_testId": "urn:uuid:d2b52885-385e-4e94-8f5f-3e0a7db21e27", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, @@ -9396,12 +10081,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25804, + "_idleStart": 11360, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 859, + "duration": 1009, "state": "passed", "speed": "slow" }, @@ -9418,11 +10103,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:ba01b4dc-b1b1-4c85-8afc-991e940cb32e", + "_testId": "urn:uuid:37199707-ede7-4ecb-a532-e5b9c7b56001", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -9431,12 +10116,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26664, + "_idleStart": 12369, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 611, "state": "passed", "speed": "slow" }, @@ -9453,11 +10138,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:85ab1049-52d9-4a30-98aa-21909d850075", + "_testId": "urn:uuid:54b389e7-abec-4665-95a8-f8cffa0deae5", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, @@ -9466,12 +10151,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26775, + "_idleStart": 12981, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 110, + "duration": 223, "state": "passed", "speed": "slow" }, @@ -9488,11 +10173,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:57f03ffe-43e5-48a3-af7f-b299c7d4edea", + "_testId": "urn:uuid:71373ef7-441f-42e2-8aed-6cc3ca32a0ae", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, @@ -9501,12 +10186,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26886, + "_idleStart": 13204, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 228, "state": "passed", "speed": "slow" }, @@ -9523,11 +10208,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:16edac08-8725-44e9-822b-11013325d7bd", + "_testId": "urn:uuid:69ddf165-1ba8-4ccf-baa7-61933de58837", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, @@ -9536,14 +10221,20 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26987, + "_idleStart": 13432, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 97, - "state": "passed", - "speed": "slow" + "duration": 106, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to return an HTTP Status code: expected undefined to exist", + "showDiff": false, + "operator": "strictEqual", + "stack": "AssertionError: Expected verifier to return an HTTP Status code: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:37:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)" + } }, { "type": "test", @@ -9558,11 +10249,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:e65086a5-6922-4a72-8d13-fbb394c6e3c3", + "_testId": "urn:uuid:cd51c1a3-b6c4-4e69-8130-4be575bbdf3f", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -9571,12 +10262,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27084, + "_idleStart": 13538, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 113, + "duration": 663, "state": "passed", "speed": "slow" }, @@ -9593,11 +10284,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:e0da7219-d30e-42da-8689-7284c15640f5", + "_testId": "urn:uuid:93baee26-12b5-4e4e-9712-a0432aeb5b9b", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, @@ -9606,12 +10297,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27199, + "_idleStart": 14201, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 658, "state": "passed", "speed": "slow" }, @@ -9628,11 +10319,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:fca23d55-141a-46d4-a46b-ecd378666f5d", + "_testId": "urn:uuid:e6369e5a-e1b8-4d19-925f-f4ee1266dd89", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -9641,12 +10332,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27293, + "_idleStart": 14860, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 658, "state": "passed", "speed": "slow" }, @@ -9663,11 +10354,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:af0fd8cc-3c5c-40c6-a995-1ae617925fcd", + "_testId": "urn:uuid:fc2790b6-657a-4c0a-a56d-e4f192014f86", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, @@ -9676,12 +10367,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27393, + "_idleStart": 15519, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 110, + "duration": 649, "state": "passed", "speed": "slow" }, @@ -9698,11 +10389,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:72d38f84-6424-46e8-9826-c57aa74c3b24", + "_testId": "urn:uuid:bcce18a4-1844-48a7-b301-3acab0fdb2fe", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, @@ -9711,12 +10402,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27503, + "_idleStart": 16167, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 124, + "duration": 660, "state": "passed", "speed": "slow" }, @@ -9733,11 +10424,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:f8decb62-9e09-4368-84e1-6c7da3632ae2", + "_testId": "urn:uuid:c6a746cd-5822-49bb-9626-a29e6429c014", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -9746,12 +10437,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27628, + "_idleStart": 16828, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 114, + "duration": 648, "state": "passed", "speed": "slow" }, @@ -9768,11 +10459,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:fb7059f7-39ee-4a70-b395-38b552a06269", + "_testId": "urn:uuid:3d9d2f60-bc71-4abf-acdc-7e0e693b836c", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -9781,12 +10472,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27742, + "_idleStart": 17477, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 107, + "duration": 673, "state": "passed", "speed": "slow" }, @@ -9803,11 +10494,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:2c3e549b-e969-4e26-842c-0abf187af38c", + "_testId": "urn:uuid:8943df90-cbd5-4f9b-acf4-215d70f39d60", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, "_events": {}, @@ -9816,12 +10507,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27849, + "_idleStart": 18149, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 121, + "duration": 654, "state": "passed", "speed": "slow" }, @@ -9838,11 +10529,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:11756abc-d16a-47d9-8a0b-e825786d6065", + "_testId": "urn:uuid:494802da-03e5-47a1-a769-6c699f08b0c1", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "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." }, "_events": {}, @@ -9852,12 +10543,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27970, + "_idleStart": 18804, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 664, "state": "passed", "speed": "slow" }, @@ -9874,11 +10565,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:0c6877bf-4646-445c-8e6f-699bba8287cb", + "_testId": "urn:uuid:894534c8-0a4b-4042-aa20-c03c43a36a8d", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, "_events": {}, @@ -9887,12 +10578,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28072, + "_idleStart": 19467, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 669, "state": "passed", "speed": "slow" }, @@ -9909,11 +10600,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:88a9affe-982b-456a-807c-7b206a0b0bf5", + "_testId": "urn:uuid:196a0b51-0c7e-47a4-bf78-826486b5cd87", "cell": { - "columnId": "Digital Bazaar", + "columnId": "Danube Tech", "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, "_events": {}, @@ -9922,12 +10613,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28170, + "_idleStart": 20136, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 658, "state": "passed", "speed": "slow" } @@ -9937,7 +10628,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook in \"Digital Bazaar\"", + "title": "\"before each\" hook in \"Danube Tech\"", "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, @@ -9948,7 +10639,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before each\" hook", @@ -9960,7 +10651,7 @@ ], "_beforeAll": [ { - "title": "\"before all\" hook in \"Digital Bazaar\"", + "title": "\"before all\" hook in \"Danube Tech\"", "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", "async": 0, "sync": true, @@ -9971,7 +10662,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before all\" hook", @@ -9981,12 +10672,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25780, + "_idleStart": 11338, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, + "duration": 23, "_error": null } ], @@ -9998,12 +10689,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gqRiKTgbENKVcO6GmaH-V", + "parent": "GHw7FNcpDHaPu0-3wYevD", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:e5cfe774-1d5b-440f-a177-9ac2d41dc061" + "_testId": "urn:uuid:a0251f3a-2b6a-4fa7-9540-45225d38c8ce" }, { - "title": "EWF", + "title": "Digital Bazaar", "ctx": null, "suites": [], "tests": [ @@ -10020,11 +10711,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:2a241274-96f7-46ad-a1d3-44186f204b06", + "_testId": "urn:uuid:2840c9d7-15f1-4c55-8f05-7b527be1b8fa", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10033,12 +10724,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28292, + "_idleStart": 20821, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 432, "state": "passed", "speed": "slow" }, @@ -10055,11 +10746,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:d04e83d3-24af-4150-8b4c-3841efcbf669", + "_testId": "urn:uuid:983228a9-45a5-493f-b9ee-705064d760de", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -10068,14 +10759,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28389, + "_idleStart": 21253, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 39, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10090,11 +10781,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:ff4cc21f-88f1-4653-918e-336b39d9fb83", + "_testId": "urn:uuid:ce42ae4a-4a2a-4e4f-af49-c64719c950e2", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10103,14 +10794,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28417, + "_idleStart": 21293, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 45, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10125,11 +10816,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:f6db97dc-b4a5-4a71-b68f-5583b79d9409", + "_testId": "urn:uuid:39a4ee6c-ece6-41ea-827a-375d2bd53543", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, @@ -10138,14 +10829,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28444, + "_idleStart": 21338, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 40, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10160,11 +10851,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:41899922-c698-4256-b50b-8f19eedd0a12", + "_testId": "urn:uuid:bdae8979-77b2-45d1-813c-8672aab40c80", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10173,12 +10864,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28471, + "_idleStart": 21378, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, + "duration": 36, "state": "passed", "speed": "fast" }, @@ -10195,11 +10886,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:d964a96d-8c9f-4233-87a0-bb76e29c5b89", + "_testId": "urn:uuid:5c41c685-79cd-42ba-870b-0962c634fae3", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -10208,14 +10899,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28496, + "_idleStart": 21414, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 48, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10230,11 +10921,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:624da91a-670d-44a9-a8b9-16af295e9910", + "_testId": "urn:uuid:f8384ee4-ab65-4c5b-8e25-854d4a856d77", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10243,14 +10934,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28525, + "_idleStart": 21462, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 42, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10265,11 +10956,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:6f61c0cc-3403-45a5-bcbf-a2bb684f9aaa", + "_testId": "urn:uuid:ba2aab8a-bd1e-428a-b2b3-f994acb881fa", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -10278,14 +10969,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28552, + "_idleStart": 21505, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 41, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10300,11 +10991,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:06ee73db-ab24-44ba-868d-8c9a597b5ca3", + "_testId": "urn:uuid:391d276d-c121-495f-b183-bee183fe8654", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, @@ -10313,14 +11004,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28579, + "_idleStart": 21547, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 25, + "duration": 56, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10335,11 +11026,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:34581e1e-acbc-4cbe-9989-a01c14f44098", + "_testId": "urn:uuid:85dbf8b7-1c6e-44bf-8b41-da34d5741d53", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10348,14 +11039,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28605, + "_idleStart": 21603, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 49, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10370,11 +11061,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:a5f92d08-f958-4964-8c81-2661fe5bd0ba", + "_testId": "urn:uuid:392b700a-c664-4a35-ba35-8b0d273865e1", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -10383,14 +11074,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28631, + "_idleStart": 21652, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 46, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10405,11 +11096,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:14754e0a-9703-4aea-8b6e-eb87ccabcb3f", + "_testId": "urn:uuid:e034f60f-09b9-4538-aad3-977fd479277a", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -10418,14 +11109,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28659, + "_idleStart": 21699, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 54, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10440,11 +11131,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:7424e005-be35-40e7-b885-13865e05c0c7", + "_testId": "urn:uuid:8145c0b2-6dc4-4ef4-84f7-8d1c6d029d8a", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, "_events": {}, @@ -10453,14 +11144,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28686, + "_idleStart": 21754, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 48, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10475,11 +11166,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:c4690d6e-54f6-4d73-a91e-fb33099a1a93", + "_testId": "urn:uuid:08c0500e-7582-4bc1-a07b-d88625a529e4", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "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." }, "_events": {}, @@ -10489,14 +11180,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28712, + "_idleStart": 21802, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 43, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10511,11 +11202,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:3a3e8d27-0826-4087-a952-2722ad129d02", + "_testId": "urn:uuid:5e0d446f-976c-47f5-9188-5e5e4f2bce9c", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, "_events": {}, @@ -10524,14 +11215,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28741, + "_idleStart": 21846, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 40, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", @@ -10546,11 +11237,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:bec6ebc7-f7f8-40c1-ab14-218085f30e15", + "_testId": "urn:uuid:10d40547-7ff4-479c-bbf6-054df8f0805c", "cell": { - "columnId": "EWF", + "columnId": "Digital Bazaar", "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, "_events": {}, @@ -10559,14 +11250,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28766, + "_idleStart": 21886, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 25, + "duration": 41, "state": "passed", - "speed": "fast" + "speed": "medium" } ], "root": false, @@ -10574,7 +11265,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook in \"EWF\"", + "title": "\"before each\" hook in \"Digital Bazaar\"", "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, @@ -10585,7 +11276,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before each\" hook", @@ -10597,7 +11288,7 @@ ], "_beforeAll": [ { - "title": "\"before all\" hook in \"EWF\"", + "title": "\"before all\" hook in \"Digital Bazaar\"", "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", "async": 0, "sync": true, @@ -10608,7 +11299,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before all\" hook", @@ -10618,12 +11309,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28268, + "_idleStart": 20795, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, + "duration": 26, "_error": null } ], @@ -10635,12 +11326,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gqRiKTgbENKVcO6GmaH-V", + "parent": "GHw7FNcpDHaPu0-3wYevD", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:932643cf-44f7-4233-8431-d84d8df8b491" + "_testId": "urn:uuid:9400d9c0-5f27-41c3-8a82-6922e5739bb8" }, { - "title": "LearnCard", + "title": "EWF", "ctx": null, "suites": [], "tests": [ @@ -10657,11 +11348,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:1cd02d9d-3b0e-41ad-a2f0-e9ea39c4065a", + "_testId": "urn:uuid:0fc87bf2-be82-4c3e-9481-8253c90c02f5", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10670,12 +11361,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28812, + "_idleStart": 21950, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 259, + "duration": 382, "state": "passed", "speed": "slow" }, @@ -10692,11 +11383,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:72d82456-a8ad-4e61-a16c-87a9c7038ada", + "_testId": "urn:uuid:72c3f4bf-7d21-42b7-9877-25b9fdb8ae64", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -10705,12 +11396,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29072, + "_idleStart": 22332, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 103, + "duration": 88, "state": "passed", "speed": "slow" }, @@ -10727,11 +11418,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:d6569b43-87b1-48e1-9ff8-8374814f1054", + "_testId": "urn:uuid:366f959f-9757-4210-997f-d6997bba296e", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10740,12 +11431,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29176, + "_idleStart": 22421, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 104, + "duration": 90, "state": "passed", "speed": "slow" }, @@ -10762,11 +11453,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:3fc4f9cf-0412-44f8-b8c6-a1d0bf1ac15a", + "_testId": "urn:uuid:50155ad9-5fe2-4338-9ee9-05d7af4ed5cb", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, @@ -10775,12 +11466,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29280, + "_idleStart": 22511, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 157, + "duration": 91, "state": "passed", "speed": "slow" }, @@ -10797,11 +11488,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:ca0385ba-559e-4f37-9eab-dfacefcae42e", + "_testId": "urn:uuid:832957c9-ffd6-4a73-a8cd-6d51095ffc9c", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10810,12 +11501,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29438, + "_idleStart": 22602, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 94, "state": "passed", "speed": "slow" }, @@ -10832,11 +11523,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:0f9b4039-35bf-4027-bee3-4995160c0ff9", + "_testId": "urn:uuid:5df42c01-fa8d-4166-9f0b-b1ee03752395", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -10845,12 +11536,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29531, + "_idleStart": 22697, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 131, + "duration": 97, "state": "passed", "speed": "slow" }, @@ -10867,11 +11558,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:ab90417c-239b-4f45-9386-b69959063c40", + "_testId": "urn:uuid:45db50e1-a2ed-4177-b74a-a220b205a806", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10880,12 +11571,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29662, + "_idleStart": 22795, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 103, + "duration": 95, "state": "passed", "speed": "slow" }, @@ -10902,11 +11593,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:03ebb8d1-8203-493d-8c0e-d993a63f613f", + "_testId": "urn:uuid:0370cd9d-132b-44de-b005-862be9ac8f4b", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -10915,12 +11606,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29765, + "_idleStart": 22890, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 92, "state": "passed", "speed": "slow" }, @@ -10937,11 +11628,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:5ed1bb69-fe25-4eb9-88f8-48ca7dc0c94b", + "_testId": "urn:uuid:69ae0447-e67e-4787-a232-5e77b46bbeb7", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, @@ -10950,12 +11641,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29873, + "_idleStart": 22983, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 88, "state": "passed", "speed": "slow" }, @@ -10972,11 +11663,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:ee7e9551-3d3d-4939-ae08-24af4cbb7861", + "_testId": "urn:uuid:5e9b93c7-1034-45d9-a24b-5e5a3214a031", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, @@ -10985,12 +11676,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30006, + "_idleStart": 23071, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 131, + "duration": 88, "state": "passed", "speed": "slow" }, @@ -11007,11 +11698,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:76c0a2b7-ead8-432b-9d5a-e505b050ce1e", + "_testId": "urn:uuid:088dc457-eecd-4e0a-a0fe-bf518cd71ff3", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -11020,12 +11711,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30136, + "_idleStart": 23159, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 126, + "duration": 88, "state": "passed", "speed": "slow" }, @@ -11042,11 +11733,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:94a0126d-5712-4437-9a1b-6dd8e1b80b87", + "_testId": "urn:uuid:c9d43c06-b7f5-47ea-ba1f-dab059f14c02", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -11055,12 +11746,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30262, + "_idleStart": 23247, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 89, "state": "passed", "speed": "slow" }, @@ -11077,11 +11768,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:4a767604-1b95-490e-87cb-dde99c443608", + "_testId": "urn:uuid:01e297f1-210e-42bf-b090-3248f5b35301", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, "_events": {}, @@ -11090,12 +11781,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30395, + "_idleStart": 23336, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 128, + "duration": 98, "state": "passed", "speed": "slow" }, @@ -11112,11 +11803,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:ed3f7d9d-12d3-4e89-98cc-47855dd621da", + "_testId": "urn:uuid:4441e864-2830-445b-a129-41426430e332", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "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." }, "_events": {}, @@ -11126,12 +11817,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30523, + "_idleStart": 23435, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 117, + "duration": 92, "state": "passed", "speed": "slow" }, @@ -11148,11 +11839,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:1ef5540b-72cc-4d59-955d-8a7aa70f75b0", + "_testId": "urn:uuid:ceccf468-65e2-4128-81b1-7278747453f6", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, "_events": {}, @@ -11161,12 +11852,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30641, + "_idleStart": 23526, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 122, + "duration": 88, "state": "passed", "speed": "slow" }, @@ -11183,11 +11874,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:8e56a53b-a32e-4c92-a8b0-006c22f1c6e8", + "_testId": "urn:uuid:30980bca-fdb2-4c9a-be6f-dc2814b3b07a", "cell": { - "columnId": "LearnCard", + "columnId": "EWF", "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, "_events": {}, @@ -11196,12 +11887,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30764, + "_idleStart": 23615, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 138, + "duration": 89, "state": "passed", "speed": "slow" } @@ -11211,7 +11902,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook in \"LearnCard\"", + "title": "\"before each\" hook in \"EWF\"", "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, @@ -11222,7 +11913,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before each\" hook", @@ -11234,7 +11925,7 @@ ], "_beforeAll": [ { - "title": "\"before all\" hook in \"LearnCard\"", + "title": "\"before all\" hook in \"EWF\"", "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", "async": 0, "sync": true, @@ -11245,7 +11936,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before all\" hook", @@ -11255,12 +11946,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28792, + "_idleStart": 21926, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 21, + "duration": 23, "_error": null } ], @@ -11272,12 +11963,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gqRiKTgbENKVcO6GmaH-V", + "parent": "GHw7FNcpDHaPu0-3wYevD", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:d26ed5b5-7edf-4d1f-a83a-9bf1834d13e1" + "_testId": "urn:uuid:c5333646-9243-4ba9-b2f3-384d02cab66a" }, { - "title": "SpruceID", + "title": "LearnCard", "ctx": null, "suites": [], "tests": [ @@ -11294,11 +11985,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:78eb2c7d-c5a2-457f-a743-7d44d86c999e", + "_testId": "urn:uuid:67f852b4-b373-4d61-ab14-42784874d96a", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, @@ -11307,12 +11998,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30925, + "_idleStart": 23727, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 154, "state": "passed", "speed": "slow" }, @@ -11329,11 +12020,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:7cfa43ec-50cc-4bee-b017-d8ee180bed0c", + "_testId": "urn:uuid:2798d96b-a24d-475b-9bfb-6ded2d45817b", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -11342,14 +12033,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31033, + "_idleStart": 23881, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 37, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", @@ -11364,11 +12055,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:baffeec6-1f44-4ef4-82dc-83d760b1c795", + "_testId": "urn:uuid:4d49b267-edf7-43b1-8489-04cc33eea172", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, @@ -11377,14 +12068,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31128, + "_idleStart": 23918, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, + "duration": 35, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", @@ -11399,11 +12090,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:91afb899-025e-4add-b502-11cec320ac4a", + "_testId": "urn:uuid:49891989-ee7c-431f-a81d-1f3777490f58", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, @@ -11412,14 +12103,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31223, + "_idleStart": 23954, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 68, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11434,11 +12125,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:7c38927e-d703-4e03-bce4-d6939ee04ed0", + "_testId": "urn:uuid:76e248e2-53d1-4d82-b4ae-dd415f05eb58", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, @@ -11447,14 +12138,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31319, + "_idleStart": 24022, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 34, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", @@ -11469,11 +12160,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:c534bca2-3363-4e81-b8bb-defdac34702e", + "_testId": "urn:uuid:2070253f-df25-4b08-ba61-2bf93e38d475", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -11482,12 +12173,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31414, + "_idleStart": 24056, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 76, "state": "passed", "speed": "slow" }, @@ -11504,11 +12195,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:6d227f26-fe75-4700-971e-5a511fd964cc", + "_testId": "urn:uuid:c7ef93bb-0be2-4cc9-97da-51a339d06e5d", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, @@ -11517,14 +12208,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31511, + "_idleStart": 24133, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 38, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11539,11 +12230,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:5ae2116e-f5f9-47ff-9b5d-9eb9cf7e7a15", + "_testId": "urn:uuid:8f718065-b008-4dc0-91b1-60ce1bacc11b", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -11552,14 +12243,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31607, + "_idleStart": 24171, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 48, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11574,11 +12265,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:50296770-8681-480c-963c-afdcaa257d3e", + "_testId": "urn:uuid:77d53a61-7e06-465a-a339-d851e3919cb9", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, @@ -11587,14 +12278,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31705, + "_idleStart": 24222, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 73, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11609,11 +12300,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:0a1b4ae5-c932-49d4-9fa2-b73c3f809637", + "_testId": "urn:uuid:161d8c2b-62dc-4f81-82a4-57c3aecb8cfd", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, @@ -11622,12 +12313,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31805, + "_idleStart": 24295, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 77, "state": "passed", "speed": "slow" }, @@ -11644,11 +12335,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:defaf04f-2b0c-489b-aa96-7ebcb697f327", + "_testId": "urn:uuid:6223405e-ffd3-4a5b-ae2e-47813c1a2a70", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -11657,14 +12348,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31901, + "_idleStart": 24371, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 64, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11679,11 +12370,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:d139f0a5-7286-4792-9754-95ec7db4b5db", + "_testId": "urn:uuid:f028812f-26da-4284-af01-96f9d731ceed", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -11692,14 +12383,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32000, + "_idleStart": 24435, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 68, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11714,11 +12405,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:64773608-7cb1-4b85-9ae0-d1ddc8e3b939", + "_testId": "urn:uuid:6e48f49f-ef0b-480e-9fd4-68a764ba934e", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, "_events": {}, @@ -11727,14 +12418,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32096, + "_idleStart": 24503, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 67, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11749,11 +12440,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:f41d63fa-8253-44d9-b47d-b7a6803628aa", + "_testId": "urn:uuid:db59f951-e1a1-49f7-a2f6-90960db40f68", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "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." }, "_events": {}, @@ -11763,14 +12454,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32195, + "_idleStart": 24570, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 71, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11785,11 +12476,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:0eaa95cb-8d17-4132-846b-bf6d48a0905b", + "_testId": "urn:uuid:cea2d7ec-e86c-4132-a517-4cf1859cd138", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, "_events": {}, @@ -11798,14 +12489,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32291, + "_idleStart": 24641, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, + "duration": 74, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -11820,11 +12511,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:d5e3c26b-8dbf-437e-b347-e2e383daa94c", + "_testId": "urn:uuid:d0891d42-3d4b-49fb-9d78-5d128ef90ad6", "cell": { - "columnId": "SpruceID", + "columnId": "LearnCard", "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, "_events": {}, @@ -11833,14 +12524,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32385, + "_idleStart": 24716, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 75, "state": "passed", - "speed": "slow" + "speed": "medium" } ], "root": false, @@ -11848,7 +12539,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook in \"SpruceID\"", + "title": "\"before each\" hook in \"LearnCard\"", "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, @@ -11859,7 +12550,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before each\" hook", @@ -11871,7 +12562,7 @@ ], "_beforeAll": [ { - "title": "\"before all\" hook in \"SpruceID\"", + "title": "\"before all\" hook in \"LearnCard\"", "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", "async": 0, "sync": true, @@ -11882,7 +12573,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before all\" hook", @@ -11892,7 +12583,7 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30901, + "_idleStart": 23704, "_onTimeout": null, "_repeat": null, "_destroyed": true @@ -11909,12 +12600,12 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gqRiKTgbENKVcO6GmaH-V", + "parent": "GHw7FNcpDHaPu0-3wYevD", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:05b2de00-eaa7-4f9a-84d8-2624d72d295f" + "_testId": "urn:uuid:8271db96-a5a2-4111-8db4-a527fdb2b023" }, { - "title": "Trinsic", + "title": "Open Security and Identity", "ctx": null, "suites": [], "tests": [ @@ -11931,11 +12622,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:343035b8-2e0c-4e81-8839-dc43d9f73fcc", + "_testId": "urn:uuid:5cbde381-a83a-47bf-90ef-2908e76f0217", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, @@ -11944,14 +12635,22 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32506, + "_idleStart": 24818, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 277, - "state": "passed", - "speed": "slow" + "duration": 199, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:34:9)" + } }, { "type": "test", @@ -11966,11 +12665,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:b8078e86-20a8-4869-80fb-91dd7c34194c", + "_testId": "urn:uuid:684390a7-e884-4e37-85c5-1fe1e8c23875", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -11979,14 +12678,22 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32782, + "_idleStart": 25018, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, - "state": "passed", - "speed": "slow" + "duration": 34, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:40:9)" + } }, { "type": "test", @@ -12001,11 +12708,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:e1b63c20-34c1-41ef-b323-625636d8e44a", + "_testId": "urn:uuid:737239ec-d124-43e3-9344-6dd2fede33d9", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, @@ -12014,14 +12721,22 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32872, + "_idleStart": 25053, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, - "state": "passed", - "speed": "slow" + "duration": 28, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:46:9)" + } }, { "type": "test", @@ -12036,11 +12751,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:2f39276d-4046-4bb3-8caa-7d13e45ced64", + "_testId": "urn:uuid:6a4e0292-bd70-4cf3-a16f-2e59c021d284", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, @@ -12049,14 +12764,21 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32963, + "_idleStart": 25081, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, - "state": "passed", - "speed": "slow" + "duration": 100, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:04 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:04 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:52:7)" + } }, { "type": "test", @@ -12071,11 +12793,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:859dca53-48a0-482f-9f6a-db01ad451e18", + "_testId": "urn:uuid:9dccb995-1b5b-4d58-8bd7-f198b43b5185", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, @@ -12084,14 +12806,22 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33052, + "_idleStart": 25181, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, - "state": "passed", - "speed": "slow" + "duration": 74, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 500 to equal 400", + "showDiff": true, + "actual": "500", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 500 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)" + } }, { "type": "test", @@ -12106,11 +12836,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:9a68b3d0-8c94-44a6-b207-aaa0371b767a", + "_testId": "urn:uuid:6861fcee-9772-4881-8fb4-882c28536b42", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -12119,14 +12849,21 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33141, + "_idleStart": 25256, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 106, - "state": "passed", - "speed": "slow" + "duration": 198, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:62:7)" + } }, { "type": "test", @@ -12141,11 +12878,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:f92f9fc9-5f82-40ea-9243-d4ca2331ee2c", + "_testId": "urn:uuid:15322f07-6ab8-46c0-a041-a5a8a7ef4d86", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, @@ -12154,14 +12891,22 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33247, + "_idleStart": 25455, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, - "state": "passed", - "speed": "slow" + "duration": 29, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:67:7)" + } }, { "type": "test", @@ -12176,11 +12921,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:3d2bb833-c813-486e-88ca-15e1ae76effa", + "_testId": "urn:uuid:2525ca09-0f3f-48a9-9b6b-a7d9db0e526c", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -12189,14 +12934,22 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33339, + "_idleStart": 25485, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, - "state": "passed", - "speed": "slow" + "duration": 28, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:72:7)" + } }, { "type": "test", @@ -12211,11 +12964,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:fa0b469e-2351-4c61-9d0f-297f23d959ce", + "_testId": "urn:uuid:3a89ada7-ec12-42f1-9ea8-9cbc4aec6b67", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, @@ -12224,14 +12977,21 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33430, + "_idleStart": 25512, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, - "state": "passed", - "speed": "slow" + "duration": 41, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:78:7)" + } }, { "type": "test", @@ -12246,11 +13006,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:db5d3c82-9da0-4227-85b8-11e9fc366e23", + "_testId": "urn:uuid:bc8a9060-609b-47b3-b81b-56597142419a", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, @@ -12259,14 +13019,22 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33523, + "_idleStart": 25554, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 104, - "state": "passed", - "speed": "slow" + "duration": 27, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:92:7)" + } }, { "type": "test", @@ -12281,11 +13049,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:a8e35a8b-87bb-49a1-b3ec-4e9be0ea90b5", + "_testId": "urn:uuid:326b9787-9e15-4263-821f-0b6adbf2853f", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -12294,14 +13062,22 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33627, + "_idleStart": 25581, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, - "state": "passed", - "speed": "slow" + "duration": 27, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:99:7)" + } }, { "type": "test", @@ -12316,11 +13092,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:3398d843-553a-4e26-bc78-5ea9078a26f0", + "_testId": "urn:uuid:ebb5b767-be12-43fd-abac-fbf99f5f15d0", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, "_events": {}, @@ -12329,17 +13105,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33726, + "_idleStart": 25609, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 88, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", + "duration": 28, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:105:9)" + } + }, + { + "type": "test", "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, @@ -12351,11 +13135,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:3e87c653-755f-4142-9d6c-ad8686b60b5a", + "_testId": "urn:uuid:ad580f82-b16c-4806-b72c-bc168c1cdabd", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, "_events": {}, @@ -12364,14 +13148,21 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33814, + "_idleStart": 25637, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 476, - "state": "passed", - "speed": "slow" + "duration": 36, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:113:7)" + } }, { "type": "test", @@ -12386,11 +13177,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:64ebe6a9-b7a6-4fbf-be03-bb8dd18a14b3", + "_testId": "urn:uuid:aa99b6f1-33b2-460f-9561-4f9c85d5e687", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "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." }, "_events": {}, @@ -12400,14 +13191,21 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34291, + "_idleStart": 25673, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 87, - "state": "passed", - "speed": "slow" + "duration": 36, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:122:7)" + } }, { "type": "test", @@ -12422,11 +13220,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:3e1f5d3f-3840-4033-b7cd-b86c3e74bcbc", + "_testId": "urn:uuid:84178022-54a4-4c96-92d5-4981823e331d", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, "_events": {}, @@ -12435,14 +13233,21 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34378, + "_idleStart": 25710, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, - "state": "passed", - "speed": "slow" + "duration": 33, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:129:9)" + } }, { "type": "test", @@ -12457,11 +13262,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:6c32dc4d-5d32-41d2-acb0-e18e359b307f", + "_testId": "urn:uuid:65ae0342-0fed-4770-957b-fb50afeae4a0", "cell": { - "columnId": "Trinsic", + "columnId": "Open Security and Identity", "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, "_events": {}, @@ -12470,14 +13275,21 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34467, + "_idleStart": 25744, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, - "state": "passed", - "speed": "slow" + "duration": 37, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:138:9)" + } } ], "root": false, @@ -12485,7 +13297,7 @@ "_retries": -1, "_beforeEach": [ { - "title": "\"before each\" hook in \"Trinsic\"", + "title": "\"before each\" hook in \"Open Security and Identity\"", "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, @@ -12496,7 +13308,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before each\" hook", @@ -12508,7 +13320,7 @@ ], "_beforeAll": [ { - "title": "\"before all\" hook in \"Trinsic\"", + "title": "\"before all\" hook in \"Open Security and Identity\"", "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", "async": 0, "sync": true, @@ -12519,7 +13331,7 @@ "_currentRetry": 0, "pending": false, "type": "hook", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", "originalTitle": "\"before all\" hook", @@ -12529,12 +13341,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32481, + "_idleStart": 24792, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 25, + "duration": 27, "_error": null } ], @@ -12546,44 +13358,15 @@ "_onlyTests": [], "_onlySuites": [], "delayed": false, - "parent": "gqRiKTgbENKVcO6GmaH-V", + "parent": "GHw7FNcpDHaPu0-3wYevD", "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:53a0457e-6b9c-4b63-941e-a58afb08022c" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "PW3liachjlpuxaEege7Ur", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Verifier", - "_testId": "urn:uuid:4f0ca3a9-0895-4c93-823b-1b02f827c2bb", - "columns": [ - "apicatalog.com", - "Danube Tech", - "Digital Bazaar", - "EWF", - "LearnCard", - "SpruceID", - "Trinsic" - ], - "rows": [ + "_testId": "urn:uuid:8f07565b-517b-482d-9ef1-c51b297d2004" + }, { - "id": "If the \"proof\" field is missing, an error MUST be raised.", - "cells": [ + "title": "SpruceID", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", "title": "If the \"proof\" field is missing, an error MUST be raised.", @@ -12597,11 +13380,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:805036dc-cafb-4d2a-be8f-cac09b2bedc8", + "_testId": "urn:uuid:545743d5-c655-4876-a4b1-ec9d1e072bec", "cell": { - "columnId": "apicatalog.com", + "columnId": "SpruceID", "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, @@ -12610,19 +13393,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13705, + "_idleStart": 25807, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 86, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12632,12 +13415,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:265422e9-5629-4f43-9858-8f46bd66ac89", + "_testId": "urn:uuid:04fa26eb-0328-4007-9910-cbd8ebf3a79f", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12645,19 +13428,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14980, + "_idleStart": 25894, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1121, + "duration": 22, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12667,12 +13450,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:d3f212c6-d44a-4b81-8c93-1c6dfc7a6281", + "_testId": "urn:uuid:a2a802c0-5a2d-4c9f-b04c-040bf64d954f", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12680,19 +13463,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 25804, + "_idleStart": 25916, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 859, + "duration": 24, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12702,12 +13485,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:2a241274-96f7-46ad-a1d3-44186f204b06", + "_testId": "urn:uuid:b8bab8bf-0b51-43a3-9c3e-cc74f9ab24ef", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12715,19 +13498,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28292, + "_idleStart": 25941, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 24, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12737,12 +13520,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:1cd02d9d-3b0e-41ad-a2f0-e9ea39c4065a", + "_testId": "urn:uuid:ba111d2a-7652-4a0a-ab2b-24d6d7f822ef", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12750,19 +13533,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28812, + "_idleStart": 25965, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 259, + "duration": 32, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12772,12 +13555,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:78eb2c7d-c5a2-457f-a743-7d44d86c999e", + "_testId": "urn:uuid:68934dae-ee5e-4ad9-b1ad-3fc596c7641d", "cell": { "columnId": "SpruceID", - "rowId": "If the \"proof\" field is missing, an error MUST be raised." + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12785,19 +13568,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30925, + "_idleStart": 25997, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 23, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12807,12 +13590,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:343035b8-2e0c-4e81-8839-dc43d9f73fcc", + "_testId": "urn:uuid:f6b30dc2-056c-47c7-8c43-ca403cee59f2", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12820,24 +13603,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32506, + "_idleStart": 26020, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 277, + "duration": 30, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"proof\" field is invalid, an error MUST be raised.", - "cells": [ + "speed": "fast" + }, { "type": "test", - "title": "If the \"proof\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12847,12 +13625,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:55404bd2-deea-419c-924a-b81bf2882535", + "_testId": "urn:uuid:c317dfce-6c51-4f12-93d2-a520168eab4b", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof\" field is invalid, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12860,19 +13638,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13808, + "_idleStart": 26050, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 77, + "duration": 24, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12882,12 +13660,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:291c358c-f00c-460b-b6c7-c8c47d306b1b", + "_testId": "urn:uuid:0a1be2eb-5244-458b-ac49-5bc749b8277e", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof\" field is invalid, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12895,19 +13673,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 16102, + "_idleStart": 26075, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 623, + "duration": 24, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12917,12 +13695,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:ba01b4dc-b1b1-4c85-8afc-991e940cb32e", + "_testId": "urn:uuid:6225858f-6407-4370-990f-964e1c4f3a6b", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof\" field is invalid, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12930,19 +13708,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26664, + "_idleStart": 26099, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 112, + "duration": 23, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12952,12 +13730,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:d04e83d3-24af-4150-8b4c-3841efcbf669", + "_testId": "urn:uuid:595c77ca-8e16-4f69-85b4-28038c3ccfec", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof\" field is invalid, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -12965,19 +13743,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28389, + "_idleStart": 26122, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 26, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -12987,12 +13765,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:72d82456-a8ad-4e61-a16c-87a9c7038ada", + "_testId": "urn:uuid:722ed30c-76e1-4497-b383-dd6cf6bb1a67", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof\" field is invalid, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13000,19 +13778,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29072, + "_idleStart": 26149, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 103, + "duration": 23, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13022,12 +13800,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:7cfa43ec-50cc-4bee-b017-d8ee180bed0c", + "_testId": "urn:uuid:0369c759-ebef-4154-aaf1-a5d7002e8ffc", "cell": { "columnId": "SpruceID", - "rowId": "If the \"proof\" field is invalid, an error MUST be raised." + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13035,19 +13813,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31033, + "_idleStart": 26172, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 29, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13057,37 +13835,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:b8078e86-20a8-4869-80fb-91dd7c34194c", + "_testId": "urn:uuid:717b0d0d-2b8a-4ca1-8878-94942e4c3c4f", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof\" field is invalid, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "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." }, "_events": {}, "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32782, + "_idleStart": 26201, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, + "duration": 23, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.type\" field is missing, an error MUST be raised.", - "cells": [ + "speed": "fast" + }, { "type": "test", - "title": "If the \"proof.type\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13097,12 +13871,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:cd077f00-72a8-4e54-aa7b-e035ea830853", + "_testId": "urn:uuid:9430f631-c685-4d7d-9842-d4f75ce64bfb", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13110,19 +13884,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13884, + "_idleStart": 26223, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 79, + "duration": 23, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.type\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13132,12 +13906,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:8411159b-72c4-43e2-8e70-1f4fb686132f", + "_testId": "urn:uuid:5b454131-d78d-40e1-890c-0079bf9fa14f", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13145,19 +13919,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 16726, + "_idleStart": 26246, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 299, + "duration": 28, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "If the \"proof.type\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", + "title": "\"before each\" hook in \"SpruceID\"", + "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13166,33 +13944,21 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "type": "hook", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:85ab1049-52d9-4a30-98aa-21909d850075", - "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." - }, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "originalTitle": "\"before each\" hook", "_events": {}, "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 26775, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 110, - "state": "passed", - "speed": "slow" - }, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [ { - "type": "test", - "title": "If the \"proof.type\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", + "title": "\"before all\" hook in \"SpruceID\"", + "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13201,33 +13967,47 @@ "timedOut": false, "_currentRetry": 0, "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "type": "hook", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:ff4cc21f-88f1-4653-918e-336b39d9fb83", - "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." - }, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "originalTitle": "\"before all\" hook", "_events": {}, "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28417, + "_idleStart": 25782, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, - "state": "passed", - "speed": "fast" - }, + "duration": 26, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "GHw7FNcpDHaPu0-3wYevD", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:0805db51-c116-4b55-bd94-5745a0951499" + }, + { + "title": "Trinsic", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "If the \"proof.type\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13237,12 +14017,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:d6569b43-87b1-48e1-9ff8-8374814f1054", + "_testId": "urn:uuid:5b06cf07-805b-4b95-adc4-678083f48311", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13250,19 +14030,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29176, + "_idleStart": 26300, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 104, + "duration": 39, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.type\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13272,12 +14052,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:baffeec6-1f44-4ef4-82dc-83d760b1c795", + "_testId": "urn:uuid:ce9d0ce5-5d00-4e3d-9d63-0314f34a602a", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13285,14 +14065,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31128, + "_idleStart": 26339, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, + "duration": 20, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", @@ -13307,9 +14087,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:e1b63c20-34c1-41ef-b323-625636d8e44a", + "_testId": "urn:uuid:ba4bad03-1394-4e35-aada-6385db9b062a", "cell": { "columnId": "Trinsic", "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." @@ -13320,20 +14100,15 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32872, + "_idleStart": 26360, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 19, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", - "cells": [ + "speed": "fast" + }, { "type": "test", "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", @@ -13347,11 +14122,11 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:809ebd66-afa2-4538-958a-9bdc13c06240", + "_testId": "urn:uuid:88e91be6-2662-4bad-b158-1385e5010176", "cell": { - "columnId": "apicatalog.com", + "columnId": "Trinsic", "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, @@ -13360,19 +14135,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 13964, + "_idleStart": 26379, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 75, + "duration": 20, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13382,12 +14157,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:1d417a36-417b-46e8-890a-d32005d011bb", + "_testId": "urn:uuid:d54012a4-f870-4d37-89b8-de7735d875c1", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13395,19 +14170,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17025, + "_idleStart": 26399, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 298, + "duration": 29, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13417,12 +14192,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:57f03ffe-43e5-48a3-af7f-b299c7d4edea", + "_testId": "urn:uuid:66d175af-fe0a-4e9b-b32c-6d08172e2fbf", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13430,19 +14205,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26886, + "_idleStart": 26428, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 34, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13452,12 +14227,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:f6db97dc-b4a5-4a71-b68f-5583b79d9409", + "_testId": "urn:uuid:a39c089c-62a8-4364-ab62-e8ead6f0b80e", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13465,19 +14240,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28444, + "_idleStart": 26463, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 20, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13487,12 +14262,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:3fc4f9cf-0412-44f8-b8c6-a1d0bf1ac15a", + "_testId": "urn:uuid:c5bc9a00-c25c-4658-86e5-4fd86be5bf25", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13500,19 +14275,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29280, + "_idleStart": 26483, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 157, + "duration": 22, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13522,12 +14297,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:91afb899-025e-4add-b502-11cec320ac4a", + "_testId": "urn:uuid:fd4ddb2c-0bc0-4d16-89a1-af4a4b2baf24", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13535,19 +14310,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31223, + "_idleStart": 26504, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 19, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13557,12 +14332,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:2f39276d-4046-4bb3-8caa-7d13e45ced64", + "_testId": "urn:uuid:a5428cf1-b823-4477-bde7-d15f0a44524d", "cell": { "columnId": "Trinsic", - "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13570,24 +14345,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32963, + "_idleStart": 26524, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 45, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "cells": [ + "speed": "medium" + }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13597,12 +14367,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:f707019b-c1fd-4155-814b-8e09c4520b85", + "_testId": "urn:uuid:d49032d0-9549-4742-a63d-5864ecdde5fa", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13610,19 +14380,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14040, + "_idleStart": 26569, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 71, + "duration": 29, "state": "passed", - "speed": "medium" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13632,12 +14402,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:80626564-7bd8-4613-b2df-30826cb278cf", + "_testId": "urn:uuid:46173c58-7631-4ddf-94cb-1abf49cffa88", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13645,25 +14415,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17323, + "_idleStart": 26598, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 175, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to return an HTTP Status code: expected undefined to exist", - "showDiff": false, - "operator": "strictEqual", - "stack": "AssertionError: Expected verifier to return an HTTP Status code: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:37:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)" - } + "duration": 21, + "state": "passed", + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13673,12 +14437,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:16edac08-8725-44e9-822b-11013325d7bd", + "_testId": "urn:uuid:41b1296a-7142-47c4-92a9-7703a1b1c645", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13686,19 +14450,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 26987, + "_idleStart": 26620, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 97, + "duration": 577, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13708,32 +14472,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:41899922-c698-4256-b50b-8f19eedd0a12", + "_testId": "urn:uuid:178fde88-e779-450c-9201-5eeb96989204", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "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." }, "_events": {}, "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28471, + "_idleStart": 27198, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 24, + "duration": 21, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13743,12 +14508,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:ca0385ba-559e-4f37-9eab-dfacefcae42e", + "_testId": "urn:uuid:13956e73-a064-4380-ac0a-6312a725eac9", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13756,19 +14521,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29438, + "_idleStart": 27219, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 25, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13778,12 +14543,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:7c38927e-d703-4e03-bce4-d6939ee04ed0", + "_testId": "urn:uuid:ccdcfb79-596f-4d36-9f33-6b6494b0a736", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13791,19 +14556,23 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31319, + "_idleStart": 27244, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 19, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [ { - "type": "test", - "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", + "title": "\"before each\" hook in \"Trinsic\"", + "body": "function() {\n this.currentTest.cell = {\n columnId: testDescription,\n rowId: this.currentTest.title\n };\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13812,38 +14581,100 @@ "timedOut": false, "_currentRetry": 0, "pending": false, + "type": "hook", + "parent": "4-fWm3MvB-udQlUOGA2nE", + "ctx": null, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "originalTitle": "\"before each\" hook", + "_events": {}, + "_eventsCount": 1, + "duration": 0, + "_error": null + } + ], + "_beforeAll": [ + { + "title": "\"before all\" hook in \"Trinsic\"", + "body": "async function() {\n credentials = await generateTestData({...testDataOptions, optionalTests});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:859dca53-48a0-482f-9f6a-db01ad451e18", - "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." - }, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "originalTitle": "\"before all\" hook", "_events": {}, "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33052, + "_idleStart": 26275, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, - "state": "passed", - "speed": "slow" + "duration": 21, + "_error": null } - ] - }, + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "GHw7FNcpDHaPu0-3wYevD", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:43442055-ba79-4094-bc17-7a47d1289341" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "EjV9oZijNnEfSxvyTNtfk", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Verifier", + "_testId": "urn:uuid:21de4004-e4fb-47ee-9020-baadb812d60b", + "columns": [ + "apicatalog.com", + "Danube Tech", + "Digital Bazaar", + "EWF", + "LearnCard", + "Open Security and Identity", + "SpruceID", + "Trinsic" + ], + "rows": [ { - "id": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "id": "If the \"proof\" field is missing, an error MUST be raised.", "cells": [ { "type": "test", - "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13853,12 +14684,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:bd24a7f5-dd83-430f-90d4-8d8f50f242b3", + "_testId": "urn:uuid:537e8c57-8ec0-42b7-9c48-88378ff7c896", "cell": { "columnId": "apicatalog.com", - "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." + "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13866,19 +14697,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14111, + "_idleStart": 10449, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 76, + "duration": 59, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13888,12 +14719,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:cb22d7dd-428d-4ae9-a82a-1b816cf63ac0", + "_testId": "urn:uuid:d2b52885-385e-4e94-8f5f-3e0a7db21e27", "cell": { "columnId": "Danube Tech", - "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." + "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13901,19 +14732,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 17498, + "_idleStart": 11360, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 768, + "duration": 1009, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13923,12 +14754,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:e65086a5-6922-4a72-8d13-fbb394c6e3c3", + "_testId": "urn:uuid:2840c9d7-15f1-4c55-8f05-7b527be1b8fa", "cell": { "columnId": "Digital Bazaar", - "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." + "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13936,19 +14767,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27084, + "_idleStart": 20821, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 113, + "duration": 432, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13958,12 +14789,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:d964a96d-8c9f-4233-87a0-bb76e29c5b89", + "_testId": "urn:uuid:0fc87bf2-be82-4c3e-9481-8253c90c02f5", "cell": { "columnId": "EWF", - "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." + "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -13971,19 +14802,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28496, + "_idleStart": 21950, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 382, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -13993,12 +14824,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:0f9b4039-35bf-4027-bee3-4995160c0ff9", + "_testId": "urn:uuid:67f852b4-b373-4d61-ab14-42784874d96a", "cell": { "columnId": "LearnCard", - "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." + "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14006,19 +14837,62 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29531, + "_idleStart": 23727, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 131, + "duration": 154, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", + "ctx": null, + "_testId": "urn:uuid:5cbde381-a83a-47bf-90ef-2908e76f0217", + "cell": { + "columnId": "Open Security and Identity", + "rowId": "If the \"proof\" field is missing, an error MUST be raised." + }, + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 24818, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 199, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:34:9)" + } + }, + { + "type": "test", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14028,12 +14902,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:c534bca2-3363-4e81-b8bb-defdac34702e", + "_testId": "urn:uuid:545743d5-c655-4876-a4b1-ec9d1e072bec", "cell": { "columnId": "SpruceID", - "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." + "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14041,19 +14915,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31414, + "_idleStart": 25807, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 86, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14063,12 +14937,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:9a68b3d0-8c94-44a6-b207-aaa0371b767a", + "_testId": "urn:uuid:5b06cf07-805b-4b95-adc4-678083f48311", "cell": { "columnId": "Trinsic", - "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." + "rowId": "If the \"proof\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14076,24 +14950,24 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33141, + "_idleStart": 26300, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 106, + "duration": 39, "state": "passed", - "speed": "slow" + "speed": "medium" } ] }, { - "id": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "id": "If the \"proof\" field is invalid, an error MUST be raised.", "cells": [ { "type": "test", - "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14103,12 +14977,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:cb24a5ef-7c22-48cc-858b-cad209804ea3", + "_testId": "urn:uuid:74af2020-16d2-47e0-b8a0-429313ed79b9", "cell": { "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14116,19 +14990,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14187, + "_idleStart": 10509, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 72, + "duration": 56, "state": "passed", "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14138,12 +15012,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:4d17f47b-076c-4196-99b7-9d67b82e4301", + "_testId": "urn:uuid:37199707-ede7-4ecb-a532-e5b9c7b56001", "cell": { "columnId": "Danube Tech", - "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14151,19 +15025,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 18266, + "_idleStart": 12369, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 734, + "duration": 611, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14173,12 +15047,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:e0da7219-d30e-42da-8689-7284c15640f5", + "_testId": "urn:uuid:983228a9-45a5-493f-b9ee-705064d760de", "cell": { "columnId": "Digital Bazaar", - "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14186,19 +15060,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27199, + "_idleStart": 21253, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 39, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14208,12 +15082,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:624da91a-670d-44a9-a8b9-16af295e9910", + "_testId": "urn:uuid:72c3f4bf-7d21-42b7-9877-25b9fdb8ae64", "cell": { "columnId": "EWF", - "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14221,19 +15095,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28525, + "_idleStart": 22332, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 27, + "duration": 88, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14243,12 +15117,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:ab90417c-239b-4f45-9386-b69959063c40", + "_testId": "urn:uuid:2798d96b-a24d-475b-9bfb-6ded2d45817b", "cell": { "columnId": "LearnCard", - "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14256,19 +15130,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29662, + "_idleStart": 23881, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 103, + "duration": 37, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14278,12 +15152,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:6d227f26-fe75-4700-971e-5a511fd964cc", + "_testId": "urn:uuid:684390a7-e884-4e37-85c5-1fe1e8c23875", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14291,19 +15165,27 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31511, + "_idleStart": 25018, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, - "state": "passed", - "speed": "slow" + "duration": 34, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:40:9)" + } }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14313,12 +15195,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:f92f9fc9-5f82-40ea-9243-d4ca2331ee2c", + "_testId": "urn:uuid:04fa26eb-0328-4007-9910-cbd8ebf3a79f", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14326,24 +15208,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33247, + "_idleStart": 25894, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 22, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "cells": [ + "speed": "fast" + }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n credential.proof = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14353,12 +15230,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:f534827b-a993-49c0-81ea-8a033db43d26", + "_testId": "urn:uuid:ce9d0ce5-5d00-4e3d-9d63-0314f34a602a", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14366,19 +15243,24 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14260, + "_idleStart": 26339, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 77, + "duration": 20, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"proof.type\" field is missing, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14388,12 +15270,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:61d264b0-8479-4ed3-9eed-665fba10f651", + "_testId": "urn:uuid:2f4f7f0c-02cf-4d1f-8a7d-029d423ca0f5", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14401,19 +15283,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 19000, + "_idleStart": 10566, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 741, + "duration": 64, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14423,12 +15305,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:fca23d55-141a-46d4-a46b-ecd378666f5d", + "_testId": "urn:uuid:54b389e7-abec-4665-95a8-f8cffa0deae5", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14436,19 +15318,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27293, + "_idleStart": 12981, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 223, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14458,12 +15340,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:6f61c0cc-3403-45a5-bcbf-a2bb684f9aaa", + "_testId": "urn:uuid:ce42ae4a-4a2a-4e4f-af49-c64719c950e2", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14471,19 +15353,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28552, + "_idleStart": 21293, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 45, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14493,12 +15375,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:03ebb8d1-8203-493d-8c0e-d993a63f613f", + "_testId": "urn:uuid:366f959f-9757-4210-997f-d6997bba296e", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." + "columnId": "EWF", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14506,19 +15388,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29765, + "_idleStart": 22421, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 90, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14528,12 +15410,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:5ae2116e-f5f9-47ff-9b5d-9eb9cf7e7a15", + "_testId": "urn:uuid:4d49b267-edf7-43b1-8489-04cc33eea172", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14541,19 +15423,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31607, + "_idleStart": 23918, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 35, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14563,12 +15445,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:3d2bb833-c813-486e-88ca-15e1ae76effa", + "_testId": "urn:uuid:737239ec-d124-43e3-9344-6dd2fede33d9", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14576,24 +15458,27 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33339, + "_idleStart": 25053, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "cells": [ + "duration": 28, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:46:9)" + } + }, { "type": "test", - "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14603,12 +15488,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:a666b03c-8dad-45a1-a9dc-4a6673bfc4d4", + "_testId": "urn:uuid:a2a802c0-5a2d-4c9f-b04c-040bf64d954f", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14616,19 +15501,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14338, + "_idleStart": 25916, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 78, + "duration": 24, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", + "title": "If the \"proof.type\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n delete credential.proof.type;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14638,12 +15523,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:313fa31d-b5e7-4d98-aedf-da4e707f5372", + "_testId": "urn:uuid:ba4bad03-1394-4e35-aada-6385db9b062a", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.type\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14651,19 +15536,24 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 19742, + "_idleStart": 26360, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 728, + "duration": 19, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14673,12 +15563,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:af0fd8cc-3c5c-40c6-a995-1ae617925fcd", + "_testId": "urn:uuid:f5e88403-2f28-481b-9f30-56eef9764cfb", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14686,19 +15576,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27393, + "_idleStart": 10631, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 110, + "duration": 52, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14708,12 +15598,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:06ee73db-ab24-44ba-868d-8c9a597b5ca3", + "_testId": "urn:uuid:71373ef7-441f-42e2-8aed-6cc3ca32a0ae", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14721,19 +15611,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28579, + "_idleStart": 13204, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 25, + "duration": 228, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14743,12 +15633,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:5ed1bb69-fe25-4eb9-88f8-48ca7dc0c94b", + "_testId": "urn:uuid:39a4ee6c-ece6-41ea-827a-375d2bd53543", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14756,19 +15646,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 29873, + "_idleStart": 21338, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 40, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14778,12 +15668,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:50296770-8681-480c-963c-afdcaa257d3e", + "_testId": "urn:uuid:50155ad9-5fe2-4338-9ee9-05d7af4ed5cb", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." + "columnId": "EWF", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14791,19 +15681,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31705, + "_idleStart": 22511, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 91, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14813,12 +15703,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:fa0b469e-2351-4c61-9d0f-297f23d959ce", + "_testId": "urn:uuid:49891989-ee7c-431f-a81d-1f3777490f58", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14826,24 +15716,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33430, + "_idleStart": 23954, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 92, + "duration": 68, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "cells": [ + "speed": "medium" + }, { "type": "test", - "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14853,12 +15738,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:06a18cfc-d381-4c72-a417-2a98f40c5f0c", + "_testId": "urn:uuid:6a4e0292-bd70-4cf3-a16f-2e59c021d284", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14866,19 +15751,26 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14415, + "_idleStart": 25081, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 81, - "state": "passed", - "speed": "slow" + "duration": 100, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:04 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:04 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:52:7)" + } }, { "type": "test", - "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14888,12 +15780,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:ae17ca9f-9144-4b06-ba3c-4f5e42ddfa19", + "_testId": "urn:uuid:b8bab8bf-0b51-43a3-9c3e-cc74f9ab24ef", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14901,19 +15793,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 20469, + "_idleStart": 25941, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 766, + "duration": 24, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofType');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14923,12 +15815,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:72d38f84-6424-46e8-9826-c57aa74c3b24", + "_testId": "urn:uuid:88e91be6-2662-4bad-b158-1385e5010176", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.type\" field is not the string \"Ed25519Signature2020\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14936,19 +15828,24 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27503, + "_idleStart": 26379, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 124, + "duration": 20, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14958,12 +15855,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:34581e1e-acbc-4cbe-9989-a01c14f44098", + "_testId": "urn:uuid:56d3283f-b790-4e6c-9207-707ce2581adf", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -14971,19 +15868,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28605, + "_idleStart": 10683, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 46, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -14993,12 +15890,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:ee7e9551-3d3d-4939-ae08-24af4cbb7861", + "_testId": "urn:uuid:69ddf165-1ba8-4ccf-baa7-61933de58837", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15006,19 +15903,25 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30006, + "_idleStart": 13432, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 131, - "state": "passed", - "speed": "slow" + "duration": 106, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to return an HTTP Status code: expected undefined to exist", + "showDiff": false, + "operator": "strictEqual", + "stack": "AssertionError: Expected verifier to return an HTTP Status code: expected undefined to exist\n at should.exist (node_modules/chai/lib/chai/interface/should.js:144:34)\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:37:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)" + } }, { "type": "test", - "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15028,12 +15931,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:0a1b4ae5-c932-49d4-9fa2-b73c3f809637", + "_testId": "urn:uuid:bdae8979-77b2-45d1-813c-8672aab40c80", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15041,19 +15944,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31805, + "_idleStart": 21378, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 36, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", - "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15063,12 +15966,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:db5d3c82-9da0-4227-85b8-11e9fc366e23", + "_testId": "urn:uuid:832957c9-ffd6-4a73-a8cd-6d51095ffc9c", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." + "columnId": "EWF", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15076,24 +15979,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33523, + "_idleStart": 22602, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 104, + "duration": 94, "state": "passed", "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "cells": [ + }, { "type": "test", - "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15103,12 +16001,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:fa8f2b1b-7656-4bd3-9feb-6dbb3f46ce39", + "_testId": "urn:uuid:76e248e2-53d1-4d82-b4ae-dd415f05eb58", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15116,19 +16014,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14497, + "_idleStart": 24022, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 81, + "duration": 34, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15138,12 +16036,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:b470b6f2-c14d-4c44-b00e-1f3c3c28feed", + "_testId": "urn:uuid:9dccb995-1b5b-4d58-8bd7-f198b43b5185", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15151,19 +16049,27 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 21236, + "_idleStart": 25181, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 732, - "state": "passed", - "speed": "slow" + "duration": 74, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 500 to equal 400", + "showDiff": true, + "actual": "500", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 500 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:57:7)" + } }, { "type": "test", - "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15173,12 +16079,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:f8decb62-9e09-4368-84e1-6c7da3632ae2", + "_testId": "urn:uuid:ba111d2a-7652-4a0a-ab2b-24d6d7f822ef", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15186,19 +16092,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27628, + "_idleStart": 25965, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 114, + "duration": 32, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15208,12 +16114,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:a5f92d08-f958-4964-8c81-2661fe5bd0ba", + "_testId": "urn:uuid:d54012a4-f870-4d37-89b8-de7735d875c1", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.verificationMethod\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15221,19 +16127,24 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28631, + "_idleStart": 26399, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 29, "state": "passed", "speed": "fast" - }, + } + ] + }, + { + "id": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15243,12 +16154,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:76c0a2b7-ead8-432b-9d5a-e505b050ce1e", + "_testId": "urn:uuid:e7c24c2d-317f-4b3a-9910-0db8ac9f02f7", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15256,19 +16167,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30136, + "_idleStart": 10729, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 126, + "duration": 54, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15278,12 +16189,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:defaf04f-2b0c-489b-aa96-7ebcb697f327", + "_testId": "urn:uuid:cd51c1a3-b6c4-4e69-8130-4be575bbdf3f", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15291,19 +16202,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 31901, + "_idleStart": 13538, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 663, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", - "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15313,12 +16224,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:a8e35a8b-87bb-49a1-b3ec-4e9be0ea90b5", + "_testId": "urn:uuid:5c41c685-79cd-42ba-870b-0962c634fae3", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15326,24 +16237,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33627, + "_idleStart": 21414, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 48, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "cells": [ + "speed": "medium" + }, { "type": "test", - "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15353,12 +16259,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:1d168e2d-0753-404c-9788-cd0fef240d4a", + "_testId": "urn:uuid:5df42c01-fa8d-4166-9f0b-b1ee03752395", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." + "columnId": "EWF", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15366,19 +16272,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14578, + "_idleStart": 22697, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 73, + "duration": 97, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15388,12 +16294,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:03a40aef-7114-43f5-b5cd-3488692ca8c8", + "_testId": "urn:uuid:2070253f-df25-4b08-ba61-2bf93e38d475", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15401,19 +16307,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 21969, + "_idleStart": 24056, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 726, + "duration": 76, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15423,12 +16329,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:fb7059f7-39ee-4a70-b395-38b552a06269", + "_testId": "urn:uuid:6861fcee-9772-4881-8fb4-882c28536b42", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15436,19 +16342,26 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27742, + "_idleStart": 25256, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 107, - "state": "passed", - "speed": "slow" + "duration": 198, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:62:7)" + } }, { "type": "test", - "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15458,12 +16371,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:14754e0a-9703-4aea-8b6e-eb87ccabcb3f", + "_testId": "urn:uuid:68934dae-ee5e-4ad9-b1ad-3fc596c7641d", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15471,19 +16384,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28659, + "_idleStart": 25997, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 23, "state": "passed", "speed": "fast" }, { "type": "test", - "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidVm');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15493,12 +16406,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:94a0126d-5712-4437-9a1b-6dd8e1b80b87", + "_testId": "urn:uuid:66d175af-fe0a-4e9b-b32c-6d08172e2fbf", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.verificationMethod\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15506,19 +16419,24 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30262, + "_idleStart": 26428, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 34, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15528,12 +16446,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:d139f0a5-7286-4792-9754-95ec7db4b5db", + "_testId": "urn:uuid:2a7553ef-4d75-4cd5-940b-ba196c7a17df", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15541,19 +16459,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32000, + "_idleStart": 10782, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 49, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15563,12 +16481,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:3398d843-553a-4e26-bc78-5ea9078a26f0", + "_testId": "urn:uuid:93baee26-12b5-4e4e-9712-a0432aeb5b9b", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15576,24 +16494,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33726, + "_idleStart": 14201, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 88, + "duration": 658, "state": "passed", "speed": "slow" - } - ] - }, - { - "id": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "cells": [ + }, { "type": "test", - "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15603,12 +16516,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:18d888fe-9d87-41e1-afe2-e4d6d6dc7072", + "_testId": "urn:uuid:f8384ee4-ab65-4c5b-8e25-854d4a856d77", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15616,19 +16529,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14652, + "_idleStart": 21462, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 73, + "duration": 42, "state": "passed", "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15638,12 +16551,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:07944321-a820-4939-b0ad-1eb117e41085", + "_testId": "urn:uuid:45db50e1-a2ed-4177-b74a-a220b205a806", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." + "columnId": "EWF", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15651,19 +16564,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 22695, + "_idleStart": 22795, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 728, + "duration": 95, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15673,12 +16586,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:2c3e549b-e969-4e26-842c-0abf187af38c", + "_testId": "urn:uuid:c7ef93bb-0be2-4cc9-97da-51a339d06e5d", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15686,19 +16599,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27849, + "_idleStart": 24133, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 121, + "duration": 38, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15708,12 +16621,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:7424e005-be35-40e7-b885-13865e05c0c7", + "_testId": "urn:uuid:15322f07-6ab8-46c0-a041-a5a8a7ef4d86", "cell": { - "columnId": "EWF", - "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15721,19 +16634,27 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28686, + "_idleStart": 25455, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, - "state": "passed", - "speed": "fast" + "duration": 29, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:67:7)" + } }, { "type": "test", - "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15743,12 +16664,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:4a767604-1b95-490e-87cb-dde99c443608", + "_testId": "urn:uuid:f6b30dc2-056c-47c7-8c43-ca403cee59f2", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15756,19 +16677,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30395, + "_idleStart": 26020, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 128, + "duration": 30, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('noProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15778,12 +16699,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:64773608-7cb1-4b85-9ae0-d1ddc8e3b939", + "_testId": "urn:uuid:a39c089c-62a8-4364-ab62-e8ead6f0b80e", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofPurpose\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15791,19 +16712,24 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32096, + "_idleStart": 26463, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 20, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15813,12 +16739,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:3e87c653-755f-4142-9d6c-ad8686b60b5a", + "_testId": "urn:uuid:b043709d-2b64-4c58-8b8e-634e576c7c52", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -15826,24 +16752,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 33814, + "_idleStart": 10831, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 476, + "duration": 62, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "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.", - "cells": [ + "speed": "medium" + }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15853,33 +16774,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:3c6d2d68-9712-40c7-befc-d30b1cca08cf", + "_testId": "urn:uuid:e6369e5a-e1b8-4d19-925f-f4ee1266dd89", "cell": { - "columnId": "apicatalog.com", - "rowId": "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." + "columnId": "Danube Tech", + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14725, + "_idleStart": 14860, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 74, + "duration": 658, "state": "passed", - "speed": "medium" + "speed": "slow" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15889,33 +16809,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:43b1e2bc-92e6-47ba-909e-440d3ee2ebeb", + "_testId": "urn:uuid:ba2aab8a-bd1e-428a-b2b3-f994acb881fa", "cell": { - "columnId": "Danube Tech", - "rowId": "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." + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 23424, + "_idleStart": 21505, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 804, + "duration": 41, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15925,33 +16844,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:11756abc-d16a-47d9-8a0b-e825786d6065", + "_testId": "urn:uuid:0370cd9d-132b-44de-b005-862be9ac8f4b", "cell": { - "columnId": "Digital Bazaar", - "rowId": "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." + "columnId": "EWF", + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 27970, + "_idleStart": 22890, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 92, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15961,33 +16879,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:c4690d6e-54f6-4d73-a91e-fb33099a1a93", + "_testId": "urn:uuid:8f718065-b008-4dc0-91b1-60ce1bacc11b", "cell": { - "columnId": "EWF", - "rowId": "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." + "columnId": "LearnCard", + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28712, + "_idleStart": 24171, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 28, + "duration": 48, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -15997,33 +16914,40 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:ed3f7d9d-12d3-4e89-98cc-47855dd621da", + "_testId": "urn:uuid:2525ca09-0f3f-48a9-9b6b-a7d9db0e526c", "cell": { - "columnId": "LearnCard", - "rowId": "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." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30523, + "_idleStart": 25485, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 117, - "state": "passed", - "speed": "slow" + "duration": 28, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:72:7)" + } }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16033,33 +16957,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:f41d63fa-8253-44d9-b47d-b7a6803628aa", + "_testId": "urn:uuid:c317dfce-6c51-4f12-93d2-a520168eab4b", "cell": { "columnId": "SpruceID", - "rowId": "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." + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32195, + "_idleStart": 26050, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 96, + "duration": 24, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidProofPurpose');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16069,38 +16992,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:64ebe6a9-b7a6-4fbf-be03-bb8dd18a14b3", + "_testId": "urn:uuid:c5bc9a00-c25c-4658-86e5-4fd86be5bf25", "cell": { "columnId": "Trinsic", - "rowId": "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." + "rowId": "If the \"proof.proofPurpose\" field is invalid, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, - "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34291, + "_idleStart": 26483, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 87, + "duration": 22, "state": "passed", - "speed": "slow" + "speed": "fast" } ] }, { - "id": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "id": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", "cells": [ { "type": "test", - "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16110,12 +17032,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:21f89782-86ef-4e7a-8023-1883d2bb7068", + "_testId": "urn:uuid:12d185bd-9ec3-4439-9bc5-498be3aa2b16", "cell": { "columnId": "apicatalog.com", - "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16123,19 +17045,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14799, + "_idleStart": 10894, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 76, + "duration": 73, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16145,12 +17067,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:86449306-4015-4d30-a6a6-79fc63303a8a", + "_testId": "urn:uuid:fc2790b6-657a-4c0a-a56d-e4f192014f86", "cell": { "columnId": "Danube Tech", - "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16158,19 +17080,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 24228, + "_idleStart": 15519, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 737, + "duration": 649, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16180,12 +17102,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:0c6877bf-4646-445c-8e6f-699bba8287cb", + "_testId": "urn:uuid:391d276d-c121-495f-b183-bee183fe8654", "cell": { "columnId": "Digital Bazaar", - "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16193,19 +17115,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28072, + "_idleStart": 21547, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 56, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16215,12 +17137,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:3a3e8d27-0826-4087-a952-2722ad129d02", + "_testId": "urn:uuid:69ae0447-e67e-4787-a232-5e77b46bbeb7", "cell": { "columnId": "EWF", - "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16228,19 +17150,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28741, + "_idleStart": 22983, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 26, + "duration": 88, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", - "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16250,12 +17172,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:1ef5540b-72cc-4d59-955d-8a7aa70f75b0", + "_testId": "urn:uuid:77d53a61-7e06-465a-a339-d851e3919cb9", "cell": { "columnId": "LearnCard", - "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16263,19 +17185,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30641, + "_idleStart": 24222, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 122, + "duration": 73, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16285,12 +17207,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:0eaa95cb-8d17-4132-846b-bf6d48a0905b", + "_testId": "urn:uuid:3a89ada7-ec12-42f1-9ea8-9cbc4aec6b67", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16298,19 +17220,26 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32291, + "_idleStart": 25512, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, - "state": "passed", - "speed": "slow" + "duration": 41, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:78:7)" + } }, { "type": "test", - "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16320,12 +17249,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:3e1f5d3f-3840-4033-b7cd-b86c3e74bcbc", + "_testId": "urn:uuid:0a1be2eb-5244-458b-ac49-5bc749b8277e", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16333,24 +17262,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34378, + "_idleStart": 26075, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 90, + "duration": 24, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "cells": [ + "speed": "fast" + }, { "type": "test", - "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "title": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n await verificationFail({\n credential, verifier, options: {\n // this will fail since the vc generated is created with the\n // assertionMethod proof purpose.\n expectedProofPurpose: 'authentication'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16360,12 +17284,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "L8gC4QCVFv4xN8jjC7C5M", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:e5aaad3a-b76b-44cd-92a6-94a46a11e944", + "_testId": "urn:uuid:fd4ddb2c-0bc0-4d16-89a1-af4a4b2baf24", "cell": { - "columnId": "apicatalog.com", - "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofPurpose\" value does not match \"options.expectedProofPurpose\", an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16373,19 +17297,24 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 14876, + "_idleStart": 26504, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 77, + "duration": 19, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16395,12 +17324,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "n_qEFUR6cbfDkwJ5UUxPN", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:184b7b90-de49-43b2-904c-0e90709e015e", + "_testId": "urn:uuid:3043b493-66fa-4fb5-a817-aa2883549516", "cell": { - "columnId": "Danube Tech", - "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16408,19 +17337,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 24966, + "_idleStart": 10967, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 814, + "duration": 53, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16430,12 +17359,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "RX4-y5XdQe3-xoO-X4nsO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:88a9affe-982b-456a-807c-7b206a0b0bf5", + "_testId": "urn:uuid:bcce18a4-1844-48a7-b301-3acab0fdb2fe", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16443,19 +17372,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28170, + "_idleStart": 16167, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 660, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16465,12 +17394,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "mCNEJkodilPVhd0r4AtUV", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:bec6ebc7-f7f8-40c1-ab14-218085f30e15", + "_testId": "urn:uuid:85dbf8b7-1c6e-44bf-8b41-da34d5741d53", "cell": { - "columnId": "EWF", - "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16478,19 +17407,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 28766, + "_idleStart": 21603, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 25, + "duration": 49, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", - "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16500,12 +17429,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "obrUF5pmzKfMfwZcdW49W", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:8e56a53b-a32e-4c92-a8b0-006c22f1c6e8", + "_testId": "urn:uuid:5e9b93c7-1034-45d9-a24b-5e5a3214a031", "cell": { - "columnId": "LearnCard", - "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." + "columnId": "EWF", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16513,19 +17442,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 30764, + "_idleStart": 23071, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 138, + "duration": 88, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16535,12 +17464,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "YtOooPFxE4wpPJ_0eGxQn", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:d5e3c26b-8dbf-437e-b347-e2e383daa94c", + "_testId": "urn:uuid:161d8c2b-62dc-4f81-82a4-57c3aecb8cfd", "cell": { - "columnId": "SpruceID", - "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16548,19 +17477,19 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 32385, + "_idleStart": 24295, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 95, + "duration": 77, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", - "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16570,12 +17499,12 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "o5J_LH66X7SnDzJhRGr8w", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:6c32dc4d-5d32-41d2-acb0-e18e359b307f", + "_testId": "urn:uuid:bc8a9060-609b-47b3-b81b-56597142419a", "cell": { - "columnId": "Trinsic", - "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, "_events": {}, "_eventsCount": 1, @@ -16583,32 +17512,27 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34467, + "_idleStart": 25554, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, - "state": "passed", - "speed": "slow" - } - ] - } - ] - }, - { - "title": "Ed25519Signature2020 (verifier)", - "ctx": null, - "suites": [ - { - "title": "apicatalog.com", - "ctx": null, - "suites": [], - "tests": [ + "duration": 27, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:92:7)" + } + }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16618,32 +17542,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "jdHhPkhyH4PuGtsXPZuiv", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:eeb6f489-18a8-4714-8196-c06854e19d7f", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:6225858f-6407-4370-990f-964e1c4f3a6b", "cell": { - "columnId": "apicatalog.com", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "SpruceID", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34557, + "_idleStart": 26099, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2425, + "duration": 23, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is missing, an error MUST be raised.", + "body": "async function() {\n // proofValue is added after signing so we can\n // safely delete it for this test\n const credential = credentials.clone('issuedVc');\n delete credential.proof.proofValue;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16653,32 +17577,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "jdHhPkhyH4PuGtsXPZuiv", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:564ef273-65ff-4a32-9173-93f7b13548f0", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:a5428cf1-b823-4477-bde7-d15f0a44524d", "cell": { - "columnId": "apicatalog.com", - "rowId": "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." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofValue\" field is missing, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 36982, + "_idleStart": 26524, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 85, + "duration": 45, "state": "passed", - "speed": "slow" - }, + "speed": "medium" + } + ] + }, + { + "id": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16688,32 +17617,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "jdHhPkhyH4PuGtsXPZuiv", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:9bcd8b7b-b554-440d-8d87-21590ef93c29", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:75efd32a-17bf-44e2-8268-90f449bf38dd", "cell": { "columnId": "apicatalog.com", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37067, + "_idleStart": 11022, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, + "duration": 59, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16723,55 +17652,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "jdHhPkhyH4PuGtsXPZuiv", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:1efa7ca4-4eea-4a56-9b13-ef236d2648cf", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:c6a746cd-5822-49bb-9626-a29e6429c014", "cell": { - "columnId": "apicatalog.com", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37162, + "_idleStart": 16828, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 85, + "duration": 648, "state": "passed", "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "n8HLU5Hx53xTFmpK85l49", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:45fb713c-8096-4ef0-9314-b824161fcc8a" - }, - { - "title": "Danube Tech", - "ctx": null, - "suites": [], - "tests": [ + }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16781,38 +17687,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "_xbJAfjBb33U5th0rCmqH", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:da51f2df-5015-4f2b-9f94-3d93bf8ba9fb", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:392b700a-c664-4a35-ba35-8b0d273865e1", "cell": { - "columnId": "Danube Tech", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37247, + "_idleStart": 21652, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1006, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected a result from verifier.: expected undefined to exist", - "showDiff": false, - "operator": "strictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/assertions.js:64:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:56:13)" - } + "duration": 46, + "state": "passed", + "speed": "medium" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16822,32 +17722,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "_xbJAfjBb33U5th0rCmqH", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:3885de35-0f37-4632-8cd9-7ecdd4e1bdf9", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:088dc457-eecd-4e0a-a0fe-bf518cd71ff3", "cell": { - "columnId": "Danube Tech", - "rowId": "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." + "columnId": "EWF", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38253, + "_idleStart": 23159, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 564, + "duration": 88, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16857,32 +17757,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "_xbJAfjBb33U5th0rCmqH", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:38e78433-55dd-451c-9dd2-e6e3ac72d0b9", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:6223405e-ffd3-4a5b-ae2e-47813c1a2a70", "cell": { - "columnId": "Danube Tech", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38818, + "_idleStart": 24371, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 515, + "duration": 64, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16892,55 +17792,40 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "_xbJAfjBb33U5th0rCmqH", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:dc3afa7d-2292-442b-b446-aee3c5dc57ac", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:326b9787-9e15-4263-821f-0b6adbf2853f", "cell": { - "columnId": "Danube Tech", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39333, + "_idleStart": 25581, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 500, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "n8HLU5Hx53xTFmpK85l49", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:b7e733c6-7b82-49d4-8621-c5ba072a330c" - }, - { - "title": "Digital Bazaar", - "ctx": null, - "suites": [], - "tests": [ + "duration": 27, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:99:7)" + } + }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16950,32 +17835,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "-zJUVJj-nwBgqtRpu9vsi", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:2233a531-4edb-4cc3-aeeb-2a352a406ed3", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:595c77ca-8e16-4f69-85b4-28038c3ccfec", "cell": { - "columnId": "Digital Bazaar", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "SpruceID", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39833, + "_idleStart": 26122, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 314, + "duration": 26, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is invalid, an error MUST be raised.", + "body": "async function() {\n // null should be an invalid proofValue for almost any proof\n const credential = credentials.clone('issuedVc');\n credential.proof.proofValue = null;\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -16985,32 +17870,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "-zJUVJj-nwBgqtRpu9vsi", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:798f658b-29f3-49f8-b2dc-993a2c0d07e9", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:d49032d0-9549-4742-a63d-5864ecdde5fa", "cell": { - "columnId": "Digital Bazaar", - "rowId": "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." + "columnId": "Trinsic", + "rowId": "If the \"proof.proofValue\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40147, + "_idleStart": 26569, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 121, + "duration": 29, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17020,32 +17910,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "-zJUVJj-nwBgqtRpu9vsi", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:da68d5aa-4e2f-4657-8de4-434ffc4cfdaf", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:1cd2cd5d-9795-432c-9011-e74606321315", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40269, + "_idleStart": 11081, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 109, + "duration": 46, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17055,55 +17945,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "-zJUVJj-nwBgqtRpu9vsi", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:269d06d0-e68b-4b3e-9dc0-8911e7e049d1", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:3d9d2f60-bc71-4abf-acdc-7e0e693b836c", "cell": { - "columnId": "Digital Bazaar", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40378, + "_idleStart": 17477, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 105, + "duration": 673, "state": "passed", "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "n8HLU5Hx53xTFmpK85l49", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:12949c3f-a152-47f6-b6dc-41f9fda26027" - }, - { - "title": "EWF", - "ctx": null, - "suites": [], - "tests": [ + }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17113,32 +17980,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "vzGF-_gncLxl1GKnaB7vq", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:02eeec78-31de-473e-ad50-b395195fee27", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:e034f60f-09b9-4538-aad3-977fd479277a", "cell": { - "columnId": "EWF", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40483, + "_idleStart": 21699, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, + "duration": 54, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17148,32 +18015,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "vzGF-_gncLxl1GKnaB7vq", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:2a49c8a1-554a-493c-8fa2-4a712b2c2303", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:c9d43c06-b7f5-47ea-ba1f-dab059f14c02", "cell": { "columnId": "EWF", - "rowId": "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." + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40571, + "_idleStart": 23247, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 31, + "duration": 89, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17183,32 +18050,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "vzGF-_gncLxl1GKnaB7vq", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:db71f576-9996-4990-8feb-cf393d73bbd0", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:f028812f-26da-4284-af01-96f9d731ceed", "cell": { - "columnId": "EWF", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40602, + "_idleStart": 24435, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 32, + "duration": 68, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17218,55 +18085,40 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "vzGF-_gncLxl1GKnaB7vq", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:fabbda31-f803-4932-b1de-c7c995d69a97", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:ebb5b767-be12-43fd-abac-fbf99f5f15d0", "cell": { - "columnId": "EWF", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40635, + "_idleStart": 25609, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, - "state": "passed", - "speed": "fast" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "n8HLU5Hx53xTFmpK85l49", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:bd6a0dcf-598e-4676-a89f-33ee6dcfde5f" - }, - { - "title": "LearnCard", - "ctx": null, - "suites": [], - "tests": [ + "duration": 28, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected HTTP Status code 400 invalid input!: expected 422 to equal 400", + "showDiff": true, + "actual": "422", + "expected": "400", + "operator": "strictEqual", + "stack": "AssertionError: Expected HTTP Status code 400 invalid input!: expected 422 to equal 400\n at verificationFail (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:38:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:105:9)" + } + }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17276,32 +18128,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "UvuQTdhB3FWh1qL3RzrVO", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:9c4a990e-7f23-46f5-9e76-96c601e5d2d0", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:722ed30c-76e1-4497-b383-dd6cf6bb1a67", "cell": { - "columnId": "LearnCard", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "SpruceID", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40665, + "_idleStart": 26149, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 293, + "duration": 23, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.created\" field is invalid, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidCreated');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17311,32 +18163,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "UvuQTdhB3FWh1qL3RzrVO", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:d5dd0b20-e91b-410b-9ced-3448a332b0c3", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:46173c58-7631-4ddf-94cb-1abf49cffa88", "cell": { - "columnId": "LearnCard", - "rowId": "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." + "columnId": "Trinsic", + "rowId": "If the \"proof.created\" field is invalid, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40957, + "_idleStart": 26598, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 138, + "duration": 21, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "cells": [ { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17346,32 +18203,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "UvuQTdhB3FWh1qL3RzrVO", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:dda86105-bf45-4814-bd25-dd341f8585c8", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:46e957d3-ff69-4c56-9690-ed2ebd60a6e6", "cell": { - "columnId": "LearnCard", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41096, + "_idleStart": 11128, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 143, + "duration": 53, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17381,55 +18238,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "UvuQTdhB3FWh1qL3RzrVO", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:fd4b0c9c-d4ad-48a0-8304-223b8904b7a4", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:8943df90-cbd5-4f9b-acf4-215d70f39d60", "cell": { - "columnId": "LearnCard", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41239, + "_idleStart": 18149, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 134, + "duration": 654, "state": "passed", "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "n8HLU5Hx53xTFmpK85l49", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:529bb6dd-80a5-4ff8-b214-1cca20471478" - }, - { - "title": "SpruceID", - "ctx": null, - "suites": [], - "tests": [ + }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17439,32 +18273,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "GOuKW6JTz0Noj1CTOhkme", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:2090dae3-c831-4263-a806-204a2a56d932", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:8145c0b2-6dc4-4ef4-84f7-8d1c6d029d8a", "cell": { - "columnId": "SpruceID", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "Digital Bazaar", + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41374, + "_idleStart": 21754, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 374, + "duration": 48, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17474,32 +18308,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "GOuKW6JTz0Noj1CTOhkme", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:0f54a1ba-990c-4369-9f96-13fcffb09606", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:01e297f1-210e-42bf-b090-3248f5b35301", "cell": { - "columnId": "SpruceID", - "rowId": "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." + "columnId": "EWF", + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41749, + "_idleStart": 23336, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 98, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17509,32 +18343,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "GOuKW6JTz0Noj1CTOhkme", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:9228fdd3-8aa4-49e9-85fa-d12ab345376e", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:6e48f49f-ef0b-480e-9fd4-68a764ba934e", "cell": { - "columnId": "SpruceID", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "columnId": "LearnCard", + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41858, + "_idleStart": 24503, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, + "duration": 67, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17544,55 +18378,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "GOuKW6JTz0Noj1CTOhkme", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:cb5b70dd-2e71-4d32-a977-459fd22379af", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:ad580f82-b16c-4806-b72c-bc168c1cdabd", "cell": { - "columnId": "SpruceID", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41958, + "_idleStart": 25637, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, - "state": "passed", - "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "n8HLU5Hx53xTFmpK85l49", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:f7f9959e-fbd0-4c13-8e94-0c0ce0267152" - }, - { - "title": "Trinsic", - "ctx": null, - "suites": [], - "tests": [ + "duration": 36, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:113:7)" + } + }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17602,32 +18420,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "cHzrXfQ91K5JZcAsw3ODB", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:89077206-f017-446a-9e69-98c80614b8b0", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:0369c759-ebef-4154-aaf1-a5d7002e8ffc", "cell": { - "columnId": "Trinsic", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "SpruceID", + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42058, + "_idleStart": 26172, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 130, + "duration": 29, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('issuedVc');\n // Remove the multibase header to cause validation error\n credential.proof.proofValue = credential.proof.proofValue.slice(1);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17637,32 +18455,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "cHzrXfQ91K5JZcAsw3ODB", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:f164db24-1083-4332-b7b0-0c0f3338afb4", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:41b1296a-7142-47c4-92a9-7703a1b1c645", "cell": { "columnId": "Trinsic", - "rowId": "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." + "rowId": "If the \"proof.proofValue\" field is not multibase-encoded, an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42189, + "_idleStart": 26620, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 119, + "duration": 577, "state": "passed", "speed": "slow" - }, + } + ] + }, + { + "id": "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.", + "cells": [ { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17672,32 +18495,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "cHzrXfQ91K5JZcAsw3ODB", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:5945850b-5d67-4bc8-b821-8f4816af2c37", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:6eacaabe-7d45-4815-91f4-652060df6b4c", "cell": { - "columnId": "Trinsic", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "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." }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42308, + "_idleStart": 11180, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 47, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17707,84 +18531,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "cHzrXfQ91K5JZcAsw3ODB", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:c67c1adf-e26a-48be-9504-b3bbd3454f9a", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:494802da-03e5-47a1-a769-6c699f08b0c1", "cell": { - "columnId": "Trinsic", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "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." }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42407, + "_idleStart": 18804, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 107, + "duration": 664, "state": "passed", "speed": "slow" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "n8HLU5Hx53xTFmpK85l49", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "_testId": "urn:uuid:985e9240-92f9-49be-9a21-a9f9fc4824bc" - } - ], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "PW3liachjlpuxaEege7Ur", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "matrix": true, - "report": true, - "rowLabel": "Test Name", - "columnLabel": "Verifier", - "_testId": "urn:uuid:2691b156-229e-4ff1-b8bd-67a9ea002c7d", - "columns": [ - "apicatalog.com", - "Danube Tech", - "Digital Bazaar", - "EWF", - "LearnCard", - "SpruceID", - "Trinsic" - ], - "rows": [ - { - "id": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "cells": [ + }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17794,32 +18567,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "jdHhPkhyH4PuGtsXPZuiv", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:eeb6f489-18a8-4714-8196-c06854e19d7f", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:08c0500e-7582-4bc1-a07b-d88625a529e4", "cell": { - "columnId": "apicatalog.com", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "Digital Bazaar", + "rowId": "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." }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 34557, + "_idleStart": 21802, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 2425, + "duration": 43, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17829,38 +18603,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "_xbJAfjBb33U5th0rCmqH", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:da51f2df-5015-4f2b-9f94-3d93bf8ba9fb", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:4441e864-2830-445b-a129-41426430e332", "cell": { - "columnId": "Danube Tech", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "EWF", + "rowId": "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." }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37247, + "_idleStart": 23435, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 1006, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected a result from verifier.: expected undefined to exist", - "showDiff": false, - "operator": "strictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/assertions.js:64:10)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:56:13)" - } + "duration": 92, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17870,32 +18639,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "-zJUVJj-nwBgqtRpu9vsi", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:2233a531-4edb-4cc3-aeeb-2a352a406ed3", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:db59f951-e1a1-49f7-a2f6-90960db40f68", "cell": { - "columnId": "Digital Bazaar", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "LearnCard", + "rowId": "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." }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39833, + "_idleStart": 24570, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 314, + "duration": 71, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17905,32 +18675,40 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "vzGF-_gncLxl1GKnaB7vq", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:02eeec78-31de-473e-ad50-b395195fee27", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:aa99b6f1-33b2-460f-9561-4f9c85d5e687", "cell": { - "columnId": "EWF", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "Open Security and Identity", + "rowId": "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." }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40483, + "_idleStart": 25673, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 89, - "state": "passed", - "speed": "slow" + "duration": 36, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:122:7)" + } }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17940,32 +18718,33 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "UvuQTdhB3FWh1qL3RzrVO", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:9c4a990e-7f23-46f5-9e76-96c601e5d2d0", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:717b0d0d-2b8a-4ca1-8878-94942e4c3c4f", "cell": { - "columnId": "LearnCard", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "SpruceID", + "rowId": "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." }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40665, + "_idleStart": 26201, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 293, + "duration": 23, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.link = 'https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.';\n const credential = credentials.clone('invalidCryptosuite');\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -17975,32 +18754,38 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "GOuKW6JTz0Noj1CTOhkme", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:2090dae3-c831-4263-a806-204a2a56d932", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:178fde88-e779-450c-9201-5eeb96989204", "cell": { - "columnId": "SpruceID", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "Trinsic", + "rowId": "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." }, + "_events": {}, + "_eventsCount": 1, + "link": "https://w3c.github.io/vc-data-integrity/#introduction:~:text=The%20value%20of%20the%20cryptosuite%20property%20MUST%20be%20a%20string%20that%20identifies%20the%20cryptographic%20suite.%20If%20the%20processing%20environment%20supports%20subtypes%20of%20string%2C%20the%20type%20of%20the%20cryptosuite%20value%20MUST%20be%20the%20https%3A//w3id.org/security%23cryptosuiteString%20subtype%20of%20string.", "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41374, + "_idleStart": 27198, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 374, + "duration": 21, "state": "passed", - "speed": "slow" - }, + "speed": "fast" + } + ] + }, + { + "id": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "cells": [ { "type": "test", - "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18010,37 +18795,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "cHzrXfQ91K5JZcAsw3ODB", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:89077206-f017-446a-9e69-98c80614b8b0", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:9cc0460c-46cb-45c1-b68c-2a6cb1d07167", "cell": { - "columnId": "Trinsic", - "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + "columnId": "apicatalog.com", + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42058, + "_idleStart": 11228, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 130, + "duration": 49, "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "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.", - "cells": [ + "speed": "medium" + }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18050,32 +18830,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "jdHhPkhyH4PuGtsXPZuiv", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:564ef273-65ff-4a32-9173-93f7b13548f0", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:894534c8-0a4b-4042-aa20-c03c43a36a8d", "cell": { - "columnId": "apicatalog.com", - "rowId": "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." + "columnId": "Danube Tech", + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 36982, + "_idleStart": 19467, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 85, + "duration": 669, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18085,32 +18865,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "_xbJAfjBb33U5th0rCmqH", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:3885de35-0f37-4632-8cd9-7ecdd4e1bdf9", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:5e0d446f-976c-47f5-9188-5e5e4f2bce9c", "cell": { - "columnId": "Danube Tech", - "rowId": "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." + "columnId": "Digital Bazaar", + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38253, + "_idleStart": 21846, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 564, + "duration": 40, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18120,32 +18900,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "-zJUVJj-nwBgqtRpu9vsi", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:798f658b-29f3-49f8-b2dc-993a2c0d07e9", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:ceccf468-65e2-4128-81b1-7278747453f6", "cell": { - "columnId": "Digital Bazaar", - "rowId": "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." + "columnId": "EWF", + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40147, + "_idleStart": 23526, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 121, + "duration": 88, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18155,32 +18935,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "vzGF-_gncLxl1GKnaB7vq", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:2a49c8a1-554a-493c-8fa2-4a712b2c2303", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:cea2d7ec-e86c-4132-a517-4cf1859cd138", "cell": { - "columnId": "EWF", - "rowId": "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." + "columnId": "LearnCard", + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40571, + "_idleStart": 24641, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 31, + "duration": 74, "state": "passed", - "speed": "fast" + "speed": "medium" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18190,32 +18970,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "UvuQTdhB3FWh1qL3RzrVO", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:d5dd0b20-e91b-410b-9ced-3448a332b0c3", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:84178022-54a4-4c96-92d5-4981823e331d", "cell": { - "columnId": "LearnCard", - "rowId": "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." + "columnId": "Open Security and Identity", + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40957, + "_idleStart": 25710, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 138, - "state": "passed", - "speed": "slow" + "duration": 33, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:129:9)" + } }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18225,32 +19012,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "GOuKW6JTz0Noj1CTOhkme", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:0f54a1ba-990c-4369-9f96-13fcffb09606", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:9430f631-c685-4d7d-9842-d4f75ce64bfb", "cell": { "columnId": "SpruceID", - "rowId": "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." + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41749, + "_idleStart": 26223, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 23, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "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.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidDomain');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18260,37 +19047,37 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "cHzrXfQ91K5JZcAsw3ODB", + "parent": "4-fWm3MvB-udQlUOGA2nE", "ctx": null, - "_testId": "urn:uuid:f164db24-1083-4332-b7b0-0c0f3338afb4", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:13956e73-a064-4380-ac0a-6312a725eac9", "cell": { "columnId": "Trinsic", - "rowId": "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." + "rowId": "If the \"options.domain\" is set and it does not match \"proof.domain\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42189, + "_idleStart": 27219, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 119, + "duration": 25, "state": "passed", - "speed": "slow" + "speed": "fast" } ] }, { - "id": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "id": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", "cells": [ { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18300,32 +19087,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "jdHhPkhyH4PuGtsXPZuiv", + "parent": "JtVifcAYhPJo4HjMM2iXD", "ctx": null, - "_testId": "urn:uuid:9bcd8b7b-b554-440d-8d87-21590ef93c29", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:af9cc921-9b1c-4cba-a19e-a3fa84234c6e", "cell": { "columnId": "apicatalog.com", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37067, + "_idleStart": 11276, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, + "duration": 61, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18335,32 +19122,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "_xbJAfjBb33U5th0rCmqH", + "parent": "d0ygOKw7bEhP41eXlajl8", "ctx": null, - "_testId": "urn:uuid:38e78433-55dd-451c-9dd2-e6e3ac72d0b9", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:196a0b51-0c7e-47a4-bf78-826486b5cd87", "cell": { "columnId": "Danube Tech", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 38818, + "_idleStart": 20136, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 515, + "duration": 658, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18370,32 +19157,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "-zJUVJj-nwBgqtRpu9vsi", + "parent": "HQUQdLjxoIi2vrJDRsLGl", "ctx": null, - "_testId": "urn:uuid:da68d5aa-4e2f-4657-8de4-434ffc4cfdaf", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:10d40547-7ff4-479c-bbf6-054df8f0805c", "cell": { "columnId": "Digital Bazaar", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40269, + "_idleStart": 21886, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 109, + "duration": 41, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18405,32 +19192,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "vzGF-_gncLxl1GKnaB7vq", + "parent": "RcPBdkj6Ku1-3clz2qxsl", "ctx": null, - "_testId": "urn:uuid:db71f576-9996-4990-8feb-cf393d73bbd0", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:30980bca-fdb2-4c9a-be6f-dc2814b3b07a", "cell": { "columnId": "EWF", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40602, + "_idleStart": 23615, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 32, + "duration": 89, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18440,32 +19227,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "UvuQTdhB3FWh1qL3RzrVO", + "parent": "v-iU1Ugtmey_26IsAH6MN", "ctx": null, - "_testId": "urn:uuid:dda86105-bf45-4814-bd25-dd341f8585c8", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:d0891d42-3d4b-49fb-9d78-5d128ef90ad6", "cell": { "columnId": "LearnCard", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41096, + "_idleStart": 24716, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 143, + "duration": 75, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18475,32 +19262,39 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "GOuKW6JTz0Noj1CTOhkme", + "parent": "xLgtGbE6y_tPQ6T6DGSYx", "ctx": null, - "_testId": "urn:uuid:9228fdd3-8aa4-49e9-85fa-d12ab345376e", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:65ae0342-0fed-4770-957b-fb50afeae4a0", "cell": { - "columnId": "SpruceID", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "columnId": "Open Security and Identity", + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, + "_events": {}, + "_eventsCount": 1, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41858, + "_idleStart": 25744, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 101, - "state": "passed", - "speed": "slow" + "duration": 37, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:05 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/assertions.js:35:14)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Context. (file:///home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/node_modules/data-integrity-test-suite-assertion/suites/verify.js:138:9)" + } }, { "type": "test", - "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18510,37 +19304,80 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "cHzrXfQ91K5JZcAsw3ODB", + "parent": "ri2ZCGha4KdpUMBfM3_ig", "ctx": null, - "_testId": "urn:uuid:5945850b-5d67-4bc8-b821-8f4816af2c37", - "_events": {}, - "_eventsCount": 1, + "_testId": "urn:uuid:5b454131-d78d-40e1-890c-0079bf9fa14f", "cell": { - "columnId": "Trinsic", - "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + "columnId": "SpruceID", + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." }, - "timer": { + "_events": {}, + "_eventsCount": 1, + "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42308, + "_idleStart": 26246, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 28, "state": "passed", - "speed": "slow" + "speed": "fast" + }, + { + "type": "test", + "title": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised.", + "body": "async function() {\n const credential = credentials.clone('invalidChallenge');\n await verificationFail({\n credential, verifier, options: {\n domain: 'domain.example',\n challenge: '1235abcd6789'\n }\n });\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "4-fWm3MvB-udQlUOGA2nE", + "ctx": null, + "_testId": "urn:uuid:ccdcfb79-596f-4d36-9f33-6b6494b0a736", + "cell": { + "columnId": "Trinsic", + "rowId": "If the \"options.challenge\" is set and it does not match \"proof.challenge\", an error MUST be raised." + }, + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 27244, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 19, + "state": "passed", + "speed": "fast" } ] - }, + } + ] + }, + { + "title": "Ed25519Signature2020 (verifier)", + "ctx": null, + "suites": [ { - "id": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "cells": [ + "title": "apicatalog.com", + "ctx": null, + "suites": [], + "tests": [ { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18550,32 +19387,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "jdHhPkhyH4PuGtsXPZuiv", + "parent": "BrJxiCcg9y_XZzhRx2Gkh", "ctx": null, - "_testId": "urn:uuid:1efa7ca4-4eea-4a56-9b13-ef236d2648cf", + "_testId": "urn:uuid:c9d8eb72-c67c-4260-86fe-0caab808f798", "_events": {}, "_eventsCount": 1, "cell": { "columnId": "apicatalog.com", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 37162, + "_idleStart": 27263, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 85, + "duration": 96, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18585,32 +19422,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "_xbJAfjBb33U5th0rCmqH", + "parent": "BrJxiCcg9y_XZzhRx2Gkh", "ctx": null, - "_testId": "urn:uuid:dc3afa7d-2292-442b-b446-aee3c5dc57ac", + "_testId": "urn:uuid:08601526-74d5-40a8-aa1b-bec04232fec9", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "Danube Tech", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "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." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 39333, + "_idleStart": 27360, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 500, + "duration": 56, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18620,27 +19457,27 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "-zJUVJj-nwBgqtRpu9vsi", + "parent": "BrJxiCcg9y_XZzhRx2Gkh", "ctx": null, - "_testId": "urn:uuid:269d06d0-e68b-4b3e-9dc0-8911e7e049d1", + "_testId": "urn:uuid:555af296-115f-4971-bb2a-f6fc6745255b", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "Digital Bazaar", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "apicatalog.com", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40378, + "_idleStart": 27416, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 105, + "duration": 50, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -18655,32 +19492,90 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "vzGF-_gncLxl1GKnaB7vq", + "parent": "BrJxiCcg9y_XZzhRx2Gkh", "ctx": null, - "_testId": "urn:uuid:fabbda31-f803-4932-b1de-c7c995d69a97", + "_testId": "urn:uuid:f0e491ed-4afe-4f7f-bcc0-e05c00deee8c", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "EWF", + "columnId": "apicatalog.com", "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 40635, + "_idleStart": 27466, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 30, + "duration": 53, "state": "passed", - "speed": "fast" + "speed": "medium" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "_PKbtSTYrEaJlAuJ9O_fl", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:0828f64a-b0b8-425d-a872-b0b564fb40be" + }, + { + "title": "Danube Tech", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "Bew0jWF2eWZq1ervGxLa-", + "ctx": null, + "_testId": "urn:uuid:1f921cde-9de4-410a-a560-71a015dd0ab1", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Danube Tech", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 27520, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 757, + "state": "passed", + "speed": "slow" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18690,32 +19585,32 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "UvuQTdhB3FWh1qL3RzrVO", + "parent": "Bew0jWF2eWZq1ervGxLa-", "ctx": null, - "_testId": "urn:uuid:fd4b0c9c-d4ad-48a0-8304-223b8904b7a4", + "_testId": "urn:uuid:9ccbd6f8-40e7-4a65-ad11-1fc119bfe50b", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "LearnCard", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "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." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41239, + "_idleStart": 28278, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 134, + "duration": 420, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", - "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", "async": 0, "sync": true, "_timeout": 15000, @@ -18725,25 +19620,25 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "GOuKW6JTz0Noj1CTOhkme", + "parent": "Bew0jWF2eWZq1ervGxLa-", "ctx": null, - "_testId": "urn:uuid:cb5b70dd-2e71-4d32-a977-459fd22379af", + "_testId": "urn:uuid:c3b82a6d-1744-408c-ad61-1aaa665f7f83", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "SpruceID", - "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + "columnId": "Danube Tech", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 41958, + "_idleStart": 28699, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 420, "state": "passed", "speed": "slow" }, @@ -18760,313 +19655,3562 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", - "parent": "cHzrXfQ91K5JZcAsw3ODB", + "parent": "Bew0jWF2eWZq1ervGxLa-", "ctx": null, - "_testId": "urn:uuid:c67c1adf-e26a-48be-9504-b3bbd3454f9a", + "_testId": "urn:uuid:ede7f9d1-3e9e-42da-b020-faaf30817da7", "_events": {}, "_eventsCount": 1, "cell": { - "columnId": "Trinsic", + "columnId": "Danube Tech", "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 42407, + "_idleStart": 29120, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 107, + "duration": 422, "state": "passed", "speed": "slow" } - ] - } - ] - }, - { - "title": "Ed25519Signature2020 (interop)", - "ctx": null, - "suites": [], - "root": false, - "pending": false, - "_retries": -1, - "_beforeEach": [], - "_beforeAll": [ - { - "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", - "body": "async function() {\n const credentials = await generateTestData();\n validVc = credentials.get('validVc');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, + ], + "root": false, "pending": false, - "type": "hook", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "originalTitle": "\"before all\" hook", - "_events": {}, - "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 42516, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 2, - "_error": null - }, - { - "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", - "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "originalTitle": "\"before all\" hook", - "_events": {}, - "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 42517, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 844, - "_error": null - }, - { - "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", - "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", - "async": 0, - "sync": true, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], "_timeout": 15000, "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "originalTitle": "\"before all\" hook", - "_events": {}, - "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 43361, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 791, - "_error": null + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "_PKbtSTYrEaJlAuJ9O_fl", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:e12f129d-b602-46f8-9b0e-0b850cdeda2f" }, { - "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", - "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "MHKCNeTTCM444pStmgUGt", + "title": "Digital Bazaar", "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "originalTitle": "\"before all\" hook", - "_events": {}, - "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 44152, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 401, - "_error": null - }, - { - "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", - "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, + "suites": [], + "tests": [ + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "P7MFF-aB9ex5dO_mipm0E", + "ctx": null, + "_testId": "urn:uuid:6d21d95b-7689-4476-9c1d-999cbafbddc0", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29542, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 115, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "P7MFF-aB9ex5dO_mipm0E", + "ctx": null, + "_testId": "urn:uuid:399f4132-62c1-4f97-978e-abd7d2325ff2", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29656, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 56, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "P7MFF-aB9ex5dO_mipm0E", + "ctx": null, + "_testId": "urn:uuid:88eac1f5-26bb-4f83-a1f3-00b4f6c81b26", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29713, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 57, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "P7MFF-aB9ex5dO_mipm0E", + "ctx": null, + "_testId": "urn:uuid:73629325-6242-48f9-8b32-5369d4e883be", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29769, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 51, + "state": "passed", + "speed": "medium" + } + ], + "root": false, "pending": false, - "type": "hook", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "originalTitle": "\"before all\" hook", - "_events": {}, - "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 44553, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 31, - "_error": null - }, - { - "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", - "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "originalTitle": "\"before all\" hook", - "_events": {}, - "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 44584, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 153, - "_error": null - }, - { - "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", - "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", - "async": 0, - "sync": true, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], "_timeout": 15000, "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "originalTitle": "\"before all\" hook", - "_events": {}, - "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 44737, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 109, - "_error": null + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "_PKbtSTYrEaJlAuJ9O_fl", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:744729ff-d5bd-4f8a-8eff-ec3f7cc4ffb8" }, { - "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", - "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "type": "hook", - "parent": "MHKCNeTTCM444pStmgUGt", + "title": "EWF", "ctx": null, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "originalTitle": "\"before all\" hook", - "_events": {}, - "_eventsCount": 1, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 44846, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 114, - "_error": null - } - ], - "_afterEach": [], - "_afterAll": [], - "_timeout": 15000, - "_slow": 75, - "_bail": false, - "_onlyTests": [], - "_onlySuites": [], - "delayed": false, - "parent": "JfURWynvMpLlVMh_UoZVR", - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "matrix": true, - "report": true, - "rowLabel": "Issuer", - "columnLabel": "Verifier", - "_testId": "urn:uuid:ba908ebc-8fc9-4aaf-83f7-6906d625252c", - "columns": [ - "apicatalog.com", - "Danube Tech", - "Digital Bazaar", - "EWF", - "LearnCard", - "SpruceID", - "Trinsic" - ], - "rows": [ + "suites": [], + "tests": [ + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "TGoskfkKM3nXOjXUsoHto", + "ctx": null, + "_testId": "urn:uuid:ec6c7e1b-f2e4-4eac-a76b-15176443ff8a", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29820, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 363, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "TGoskfkKM3nXOjXUsoHto", + "ctx": null, + "_testId": "urn:uuid:2c8dcfc2-07e1-46c0-ab08-cca9b5fc85c1", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30183, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 100, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "TGoskfkKM3nXOjXUsoHto", + "ctx": null, + "_testId": "urn:uuid:ed59d6c1-108d-409d-b22e-d36bc3fa8412", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30284, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 103, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "TGoskfkKM3nXOjXUsoHto", + "ctx": null, + "_testId": "urn:uuid:2b489ba3-0353-48ff-a8c0-41a00e0a0ab5", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30387, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 102, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "_PKbtSTYrEaJlAuJ9O_fl", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:8436a4e6-e702-4f92-a2b1-27acfeb6eedf" + }, { - "id": "apicatalog.com", - "cells": [ + "title": "LearnCard", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "qWkrETJR1gxFzSGko_Qwo", + "ctx": null, + "_testId": "urn:uuid:c23c3661-bf02-440b-a833-cd83090b69b5", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30490, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 202, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "qWkrETJR1gxFzSGko_Qwo", + "ctx": null, + "_testId": "urn:uuid:86a86234-a8e5-477e-8d4c-e6706baab2b2", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30692, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 66, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "qWkrETJR1gxFzSGko_Qwo", + "ctx": null, + "_testId": "urn:uuid:eb0d5a56-1dd1-48c9-9b5a-787cc4013fe7", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30759, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 74, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "qWkrETJR1gxFzSGko_Qwo", + "ctx": null, + "_testId": "urn:uuid:44190110-f7f4-45c2-8c73-846051ece22e", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30833, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 77, + "state": "passed", + "speed": "slow" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "_PKbtSTYrEaJlAuJ9O_fl", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:45b97405-97ac-4fbb-ab63-28092e7befcc" + }, + { + "title": "Open Security and Identity", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "DbNdAmmRPOoksXobNVwfn", + "ctx": null, + "_testId": "urn:uuid:0130631c-3928-4893-9f94-bc8f5b614002", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30910, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 320, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "DbNdAmmRPOoksXobNVwfn", + "ctx": null, + "_testId": "urn:uuid:27566097-017c-491b-9fc0-bf5d6fc73650", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31230, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 35, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:73:11)" + } + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "DbNdAmmRPOoksXobNVwfn", + "ctx": null, + "_testId": "urn:uuid:21295feb-6e88-480e-a2cf-a1818e24baf3", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31266, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 39, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:82:11)" + } + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "DbNdAmmRPOoksXobNVwfn", + "ctx": null, + "_testId": "urn:uuid:5b274737-c0f3-4199-adb8-5ada738f3210", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31305, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 34, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:91:11)" + } + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "_PKbtSTYrEaJlAuJ9O_fl", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:a700fc98-6f73-4415-a5f9-0016d3bd09a3" + }, + { + "title": "SpruceID", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "3YEu8s_4vwUqZ9Yc8u5gL", + "ctx": null, + "_testId": "urn:uuid:b87eba07-a399-491a-a988-b981efe86e04", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31340, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 48, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "3YEu8s_4vwUqZ9Yc8u5gL", + "ctx": null, + "_testId": "urn:uuid:b96699b3-327e-4a99-84c0-cdb56aa70231", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31387, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 29, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "3YEu8s_4vwUqZ9Yc8u5gL", + "ctx": null, + "_testId": "urn:uuid:4144a0d4-678d-4748-a49b-e8095d94be46", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31416, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 29, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "3YEu8s_4vwUqZ9Yc8u5gL", + "ctx": null, + "_testId": "urn:uuid:b345c845-45c1-4268-b029-a7d3d50a89b4", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31446, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 30, + "state": "passed", + "speed": "fast" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "_PKbtSTYrEaJlAuJ9O_fl", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:bbf28d50-0f08-4a61-ab92-f78677169c11" + }, + { + "title": "Trinsic", + "ctx": null, + "suites": [], + "tests": [ + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "MZMsVee_GYIeE6VekO9U8", + "ctx": null, + "_testId": "urn:uuid:1ec8440b-1895-4150-ba87-f0eb6b95211d", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31476, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 808, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "MZMsVee_GYIeE6VekO9U8", + "ctx": null, + "_testId": "urn:uuid:24eded05-6cf3-44ad-89a0-14d6245dc5c7", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 32285, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 1007, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "MZMsVee_GYIeE6VekO9U8", + "ctx": null, + "_testId": "urn:uuid:74e295fa-490d-48c5-81c2-74c847dff279", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 33292, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 41, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "MZMsVee_GYIeE6VekO9U8", + "ctx": null, + "_testId": "urn:uuid:1583e88b-55a2-4961-a6d4-5f892c544368", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 33333, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 51, + "state": "passed", + "speed": "medium" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "_PKbtSTYrEaJlAuJ9O_fl", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "_testId": "urn:uuid:b64a1a26-738d-46d0-a3e4-0482a8a7f1c4" + } + ], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "EjV9oZijNnEfSxvyTNtfk", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "matrix": true, + "report": true, + "rowLabel": "Test Name", + "columnLabel": "Verifier", + "_testId": "urn:uuid:79576971-8450-4a3f-a122-0857b181f80c", + "columns": [ + "apicatalog.com", + "Danube Tech", + "Digital Bazaar", + "EWF", + "LearnCard", + "Open Security and Identity", + "SpruceID", + "Trinsic" + ], + "rows": [ + { + "id": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "cells": [ + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "BrJxiCcg9y_XZzhRx2Gkh", + "ctx": null, + "_testId": "urn:uuid:c9d8eb72-c67c-4260-86fe-0caab808f798", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "apicatalog.com", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 27263, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 96, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "Bew0jWF2eWZq1ervGxLa-", + "ctx": null, + "_testId": "urn:uuid:1f921cde-9de4-410a-a560-71a015dd0ab1", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Danube Tech", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 27520, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 757, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "P7MFF-aB9ex5dO_mipm0E", + "ctx": null, + "_testId": "urn:uuid:6d21d95b-7689-4476-9c1d-999cbafbddc0", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29542, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 115, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "TGoskfkKM3nXOjXUsoHto", + "ctx": null, + "_testId": "urn:uuid:ec6c7e1b-f2e4-4eac-a76b-15176443ff8a", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29820, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 363, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "qWkrETJR1gxFzSGko_Qwo", + "ctx": null, + "_testId": "urn:uuid:c23c3661-bf02-440b-a833-cd83090b69b5", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30490, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 202, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "DbNdAmmRPOoksXobNVwfn", + "ctx": null, + "_testId": "urn:uuid:0130631c-3928-4893-9f94-bc8f5b614002", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30910, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 320, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "3YEu8s_4vwUqZ9Yc8u5gL", + "ctx": null, + "_testId": "urn:uuid:b87eba07-a399-491a-a988-b981efe86e04", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31340, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 48, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "MUST verify a valid VC with an Ed25519Signature2020 proof", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n await verificationSuccess({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "MZMsVee_GYIeE6VekO9U8", + "ctx": null, + "_testId": "urn:uuid:1ec8440b-1895-4150-ba87-f0eb6b95211d", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "MUST verify a valid VC with an Ed25519Signature2020 proof" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31476, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 808, + "state": "passed", + "speed": "slow" + } + ] + }, + { + "id": "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.", + "cells": [ + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "BrJxiCcg9y_XZzhRx2Gkh", + "ctx": null, + "_testId": "urn:uuid:08601526-74d5-40a8-aa1b-bec04232fec9", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "apicatalog.com", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 27360, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 56, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "Bew0jWF2eWZq1ervGxLa-", + "ctx": null, + "_testId": "urn:uuid:9ccbd6f8-40e7-4a65-ad11-1fc119bfe50b", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Danube Tech", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 28278, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 420, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "P7MFF-aB9ex5dO_mipm0E", + "ctx": null, + "_testId": "urn:uuid:399f4132-62c1-4f97-978e-abd7d2325ff2", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29656, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 56, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "TGoskfkKM3nXOjXUsoHto", + "ctx": null, + "_testId": "urn:uuid:2c8dcfc2-07e1-46c0-ab08-cca9b5fc85c1", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30183, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 100, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "qWkrETJR1gxFzSGko_Qwo", + "ctx": null, + "_testId": "urn:uuid:86a86234-a8e5-477e-8d4c-e6706baab2b2", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30692, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 66, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "DbNdAmmRPOoksXobNVwfn", + "ctx": null, + "_testId": "urn:uuid:27566097-017c-491b-9fc0-bf5d6fc73650", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31230, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 35, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:73:11)" + } + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "3YEu8s_4vwUqZ9Yc8u5gL", + "ctx": null, + "_testId": "urn:uuid:b96699b3-327e-4a99-84c0-cdb56aa70231", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31387, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 29, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "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.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(issuedVc);\n const proofBytes = bs58Decode({id: credential.proof.proofValue});\n const randomBytes = new Uint8Array(32).map(\n () => Math.floor(Math.random() * 255));\n credential.proof.proofValue = bs58Encode(\n new Uint8Array([...proofBytes, ...randomBytes]));\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "MZMsVee_GYIeE6VekO9U8", + "ctx": null, + "_testId": "urn:uuid:24eded05-6cf3-44ad-89a0-14d6245dc5c7", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "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." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 32285, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 1007, + "state": "passed", + "speed": "slow" + } + ] + }, + { + "id": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "cells": [ + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "BrJxiCcg9y_XZzhRx2Gkh", + "ctx": null, + "_testId": "urn:uuid:555af296-115f-4971-bb2a-f6fc6745255b", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "apicatalog.com", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 27416, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 50, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "Bew0jWF2eWZq1ervGxLa-", + "ctx": null, + "_testId": "urn:uuid:c3b82a6d-1744-408c-ad61-1aaa665f7f83", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Danube Tech", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 28699, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 420, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "P7MFF-aB9ex5dO_mipm0E", + "ctx": null, + "_testId": "urn:uuid:88eac1f5-26bb-4f83-a1f3-00b4f6c81b26", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29713, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 57, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "TGoskfkKM3nXOjXUsoHto", + "ctx": null, + "_testId": "urn:uuid:ed59d6c1-108d-409d-b22e-d36bc3fa8412", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30284, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 103, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "qWkrETJR1gxFzSGko_Qwo", + "ctx": null, + "_testId": "urn:uuid:eb0d5a56-1dd1-48c9-9b5a-787cc4013fe7", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30759, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 74, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "DbNdAmmRPOoksXobNVwfn", + "ctx": null, + "_testId": "urn:uuid:21295feb-6e88-480e-a2cf-a1818e24baf3", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31266, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 39, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:82:11)" + } + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "3YEu8s_4vwUqZ9Yc8u5gL", + "ctx": null, + "_testId": "urn:uuid:4144a0d4-678d-4748-a49b-e8095d94be46", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31416, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 29, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectCannonization);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "MZMsVee_GYIeE6VekO9U8", + "ctx": null, + "_testId": "urn:uuid:74e295fa-490d-48c5-81c2-74c847dff279", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "If a canonicalization algorithm other than URDNA2015 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 33292, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 41, + "state": "passed", + "speed": "medium" + } + ] + }, + { + "id": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "cells": [ + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "BrJxiCcg9y_XZzhRx2Gkh", + "ctx": null, + "_testId": "urn:uuid:f0e491ed-4afe-4f7f-bcc0-e05c00deee8c", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "apicatalog.com", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 27466, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 53, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "Bew0jWF2eWZq1ervGxLa-", + "ctx": null, + "_testId": "urn:uuid:ede7f9d1-3e9e-42da-b020-faaf30817da7", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Danube Tech", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29120, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 422, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "P7MFF-aB9ex5dO_mipm0E", + "ctx": null, + "_testId": "urn:uuid:73629325-6242-48f9-8b32-5369d4e883be", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Digital Bazaar", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 29769, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 51, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "TGoskfkKM3nXOjXUsoHto", + "ctx": null, + "_testId": "urn:uuid:2b489ba3-0353-48ff-a8c0-41a00e0a0ab5", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "EWF", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30387, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 102, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "qWkrETJR1gxFzSGko_Qwo", + "ctx": null, + "_testId": "urn:uuid:44190110-f7f4-45c2-8c73-846051ece22e", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "LearnCard", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 30833, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 77, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "DbNdAmmRPOoksXobNVwfn", + "ctx": null, + "_testId": "urn:uuid:5b274737-c0f3-4199-adb8-5ada738f3210", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Open Security and Identity", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31305, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 34, + "state": "failed", + "err": { + "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': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, body: null, bodyUsed: false, ok: true, redirected: false, type: 'default', url: '' } to not exist", + "showDiff": false, + "actual": {}, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected no result from verifier.: expected Response { status: 200, statusText: 'OK', headers: Headers { authorization: '** SANITIZED TO PREVENT EXPOSING OF SECRETS ***', 'content-length': '4', 'content-type': 'application/json', date: 'Sun, 14 Jul 2024 05:02:11 GMT', server: 'uvicorn' }, 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js:91:11)" + } + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "3YEu8s_4vwUqZ9Yc8u5gL", + "ctx": null, + "_testId": "urn:uuid:b345c845-45c1-4268-b029-a7d3d50a89b4", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "SpruceID", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 31446, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 30, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised.", + "body": "async function() {\n this.test.cell = {\n columnId: name,\n rowId: this.test.title\n };\n const credential = klona(incorrectHash);\n await verificationFail({credential, verifier});\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/20-verify.js", + "parent": "MZMsVee_GYIeE6VekO9U8", + "ctx": null, + "_testId": "urn:uuid:1583e88b-55a2-4961-a6d4-5f892c544368", + "_events": {}, + "_eventsCount": 1, + "cell": { + "columnId": "Trinsic", + "rowId": "If a canonicalization data hashing algorithm SHA-2-256 is used, an error MUST be raised." + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 33333, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 51, + "state": "passed", + "speed": "medium" + } + ] + } + ] + }, + { + "title": "Ed25519Signature2020 (interop)", + "ctx": null, + "suites": [], + "root": false, + "pending": false, + "_retries": -1, + "_beforeEach": [], + "_beforeAll": [ + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const credentials = await generateTestData();\n validVc = credentials.get('validVc');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 33386, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 1, + "_error": null + }, + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 33387, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 149, + "_error": null + }, + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 33535, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 615, + "_error": null + }, + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34150, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 245, + "_error": null + }, + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34396, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 104, + "_error": null + }, + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34500, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 73, + "_error": null + }, + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34573, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 58, + "_error": null + }, + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34631, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 31, + "_error": null + }, + { + "title": "\"before all\" hook in \"Ed25519Signature2020 (interop)\"", + "body": "async function() {\n const issuer = issuers.find(issuer =>\n issuer.tags.has(tag));\n const {settings: {id: issuerId, options}} = issuer;\n const body = {credential: klona(validVc), options};\n body.credential.id = `urn:uuid:${uuidv4()}`;\n body.credential.issuer = issuerId;\n const {data, error} = await issuer.post({json: body});\n issuerError = error;\n issuedVc = data;\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "type": "hook", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "originalTitle": "\"before all\" hook", + "_events": {}, + "_eventsCount": 1, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34662, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 37, + "_error": null + } + ], + "_afterEach": [], + "_afterAll": [], + "_timeout": 15000, + "_slow": 75, + "_bail": false, + "_onlyTests": [], + "_onlySuites": [], + "delayed": false, + "parent": "j0jiJgDHvdJz1o2cIV4lC", + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "matrix": true, + "report": true, + "rowLabel": "Issuer", + "columnLabel": "Verifier", + "_testId": "urn:uuid:1703d5f2-d671-4484-98c3-709b7fd310dd", + "columns": [ + "apicatalog.com", + "Danube Tech", + "Digital Bazaar", + "EWF", + "LearnCard", + "Open Security and Identity", + "SpruceID", + "Trinsic" + ], + "rows": [ + { + "id": "apicatalog.com", + "cells": [ + { + "type": "test", + "title": "apicatalog.com should verify apicatalog.com", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:1ad301ae-1ebd-4375-b0d8-4215033f6382", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "apicatalog.com", + "columnId": "apicatalog.com" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34700, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 57, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:02:13Z\",\"proofValue\":\"z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J\"}},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", + "type": "VerifiableCredential", + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "issuanceDate": "2020-03-16T22:37:26.544Z", + "credentialSubject": { + "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" + }, + "proof": { + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" + } + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.apicatalog.com/credentials/verify", + "status": 400, + "data": { + "checks": [ + "PROOF", + "INVALID_SIGNATURE" + ], + "warnings": [], + "errors": [] + } + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } + }, + { + "type": "test", + "title": "Danube Tech should verify apicatalog.com", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:5a349cb5-1cac-425a-924e-5eb34ad30e3a", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "apicatalog.com", + "columnId": "Danube Tech" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 34757, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 464, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:02:13Z\",\"proofValue\":\"z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J\"}},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", + "type": "VerifiableCredential", + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "issuanceDate": "2020-03-16T22:37:26.544Z", + "credentialSubject": { + "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" + }, + "proof": { + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" + } + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://univerifier.io/1.0/credentials/verify", + "status": 400, + "data": { + "checks": [] + } + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } + }, + { + "type": "test", + "title": "Digital Bazaar should verify apicatalog.com", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:44d03da6-90dd-4eb6-aae6-b78e2b11dc60", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "apicatalog.com", + "columnId": "Digital Bazaar" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35222, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 96, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "method": "POST", + "json": { + "verifiableCredential": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", + "type": "VerifiableCredential", + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "issuanceDate": "2020-03-16T22:37:26.544Z", + "credentialSubject": { + "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" + }, + "proof": { + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" + } + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:02:13Z\",\"proofValue\":\"z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J\"}},\"options\":{\"checks\":[\"proof\"]}}" + }, + "name": "HTTPError", + "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19rSJA9yQQwEqSSoNDjzkuNJ/credentials/verify", + "status": 400, + "data": { + "verified": false, + "results": [ + { + "proof": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" + }, + "verified": false, + "error": { + "name": "VerificationError", + "message": "Invalid signature." + } + } + ], + "error": { + "name": "VerificationError", + "errors": [ + { + "name": "Error", + "message": "Invalid signature.", + "stack": "Error: Invalid signature.\n at Ed25519Signature2020.verifyProof (/home/node/app/node_modules/jsonld-signatures/lib/suites/LinkedDataSignature.js:202:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /home/node/app/node_modules/jsonld-signatures/lib/ProofSet.js:268:53\n at async Promise.all (index 0)\n at async _verify (/home/node/app/node_modules/jsonld-signatures/lib/ProofSet.js:256:3)\n at async ProofSet.verify (/home/node/app/node_modules/jsonld-signatures/lib/ProofSet.js:191:23)\n at async Object.verify (/home/node/app/node_modules/jsonld-signatures/lib/jsonld-signatures.js:169:18)\n at async _verifyCredential (file:///home/node/app/node_modules/@digitalbazaar/vc/lib/index.js:328:18)\n at async Module.verifyCredential (file:///home/node/app/node_modules/@digitalbazaar/vc/lib/index.js:277:12)\n at async file:///home/node/app/node_modules/@bedrock/vc-verifier/lib/http.js:89:24" + } + ], + "message": "Verification error(s)." + }, + "checks": [ + { + "check": [ + "proof" + ], + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", + "error": "Invalid signature.", + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y" + } + ] + } + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } + }, + { + "type": "test", + "title": "EWF should verify apicatalog.com", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:039bc647-7686-42f3-a19a-c740b956446f", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "apicatalog.com", + "columnId": "EWF" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35318, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 93, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError { …(7) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:02:13Z\",\"proofValue\":\"z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J\"}},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", + "type": "VerifiableCredential", + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "issuanceDate": "2020-03-16T22:37:26.544Z", + "credentialSubject": { + "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" + }, + "proof": { + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" + } + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc-api-dev.energyweb.org/v1/vc-api/credentials/verify", + "status": 400, + "data": { + "message": [ + "verifiableCredential.type must be an array" + ], + "error": "Bad Request", + "statusCode": 400 + } + }, + "operator": "notStrictEqual", + "stack": "AssertionError: Expected verifier to not error.: expected HTTPError { …(7) } 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } + }, + { + "type": "test", + "title": "LearnCard should verify apicatalog.com", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:12cfe1a2-88b1-45c0-9487-e0331750db8a", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "apicatalog.com", + "columnId": "LearnCard" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35411, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 37, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:02:13Z\",\"proofValue\":\"z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J\"}},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", + "type": "VerifiableCredential", + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "issuanceDate": "2020-03-16T22:37:26.544Z", + "credentialSubject": { + "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" + }, + "proof": { + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" + } + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://bridge.learncard.com/credentials/verify", + "status": 400, + "data": "Invalid input: [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"array\",\n \"received\": \"string\",\n \"path\": [\n \"verifiableCredential\",\n \"type\"\n ],\n \"message\": \"Expected array, received string\"\n }\n]" + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } + }, + { + "type": "test", + "title": "Open Security and Identity should verify apicatalog.com", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:1361c22e-487a-4158-bcff-49acc76014ef", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "apicatalog.com", + "columnId": "Open Security and Identity" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35449, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 32, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:02:13Z\",\"proofValue\":\"z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J\"}},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", + "type": "VerifiableCredential", + "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "issuanceDate": "2020-03-16T22:37:26.544Z", + "credentialSubject": { + "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" + }, + "proof": { + "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "type": "Ed25519Signature2020", + "proofPurpose": "assertionMethod", + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" + } + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.opsec.id/credentials/verify", + "status": 422, + "data": { + "detail": [ + { + "type": "list_type", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "type" + ], + "msg": "Input should be a valid list", + "input": "VerifiableCredential" + }, + { + "type": "value_error", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuer" + ], + "msg": "Value error, Invalid issuer", + "input": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "ctx": null + }, + { + "type": "value_error", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "@context" + ], + "msg": "Value error, First value must be https://www.w3.org/ns/credentials/v2", + "input": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "ctx": null + }, + { + "type": "list_type", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "type" + ], + "msg": "Input should be a valid list", + "input": "VerifiableCredential" + }, + { + "type": "value_error", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "id" + ], + "msg": "Value error, id must be url", + "input": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", + "ctx": null + }, + { + "type": "value_error", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuer" + ], + "msg": "Value error, Invalid issuer", + "input": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", + "ctx": null + } + ] + } + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } + }, { "type": "test", - "title": "apicatalog.com should verify apicatalog.com", + "title": "SpruceID should verify apicatalog.com", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -19077,29 +23221,29 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:a9dadda6-1f0e-4b7e-8d55-14809444be21", + "_testId": "urn:uuid:e66b5aad-4fee-421c-9797-53e161dfd6b3", "_events": {}, "_eventsCount": 1, "cell": { "rowId": "apicatalog.com", - "columnId": "apicatalog.com" + "columnId": "SpruceID" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 44961, + "_idleStart": 35482, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 85, + "duration": 20, "state": "failed", "err": { "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist", "showDiff": false, "actual": { "response": {}, @@ -19107,7 +23251,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:02:10Z\",\"proofValue\":\"z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:02:13Z\",\"proofValue\":\"z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { @@ -19115,7 +23259,7 @@ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/security/suites/ed25519-2020/v1" ], - "id": "urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e", + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", "type": "VerifiableCredential", "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", "issuanceDate": "2020-03-16T22:37:26.544Z", @@ -19126,8 +23270,8 @@ "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", "type": "Ed25519Signature2020", "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:02:10Z", - "proofValue": "z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz" + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" } }, "options": { @@ -19202,24 +23346,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/credentials/verify", - "status": 400, - "data": { - "checks": [ - "PROOF", - "INVALID_SIGNATURE" - ], - "warnings": [], - "errors": [] - } + "requestUrl": "https://vc.spruceid.xyz/credentials/verify", + "status": 400 }, "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } }, { "type": "test", - "title": "Danube Tech should verify apicatalog.com", + "title": "Trinsic should verify apicatalog.com", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -19230,29 +23366,29 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:1b04b2cb-6759-4578-ba04-dfb1c306f8d8", + "_testId": "urn:uuid:341e0c8e-4a10-4dc1-bf2a-a6f6a95b1ca9", "_events": {}, "_eventsCount": 1, "cell": { "rowId": "apicatalog.com", - "columnId": "Danube Tech" + "columnId": "Trinsic" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45046, + "_idleStart": 35503, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 664, + "duration": 39, "state": "failed", "err": { "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist", "showDiff": false, "actual": { "response": {}, @@ -19260,7 +23396,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:02:10Z\",\"proofValue\":\"z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-14T05:02:13Z\",\"proofValue\":\"z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { @@ -19268,7 +23404,7 @@ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/security/suites/ed25519-2020/v1" ], - "id": "urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e", + "id": "urn:uuid:95594f4f-022b-4101-9b9d-7f8ce7b694b6", "type": "VerifiableCredential", "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", "issuanceDate": "2020-03-16T22:37:26.544Z", @@ -19279,8 +23415,8 @@ "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", "type": "Ed25519Signature2020", "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:02:10Z", - "proofValue": "z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz" + "created": "2024-07-14T05:02:13Z", + "proofValue": "z2tFs2LDZot64VkzgY6UxWVf3XqvJCodb7HtWyVo4DobSWkxiv3VKibN3tS7mm65ELfgRsKo9cgGTpFtMDNtuez9J" } }, "options": { @@ -19355,19 +23491,266 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://univerifier.io/1.0/credentials/verify", - "status": 400, - "data": { - "checks": [] - } + "requestUrl": "https://interop.connect.trinsic.cloud/vc-api/credentials/verify", + "status": 400 }, "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } + } + ] + }, + { + "id": "Danube Tech", + "cells": [ + { + "type": "test", + "title": "apicatalog.com should verify Danube Tech", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:2a5df4f1-eabc-4b37-a282-4a8b152663f7", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Danube Tech", + "columnId": "apicatalog.com" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35543, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 68, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "Danube Tech should verify Danube Tech", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:be660eaa-0926-48c5-8383-4336c007ddec", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Danube Tech", + "columnId": "Danube Tech" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 35610, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 434, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Digital Bazaar should verify Danube Tech", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:ab2a70ae-6b86-4ef7-b2f3-2dcaedbab67c", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Danube Tech", + "columnId": "Digital Bazaar" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 36045, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 46, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "EWF should verify Danube Tech", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:bf2b9213-52db-459c-afbf-cd9203614bc9", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Danube Tech", + "columnId": "EWF" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 36091, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 104, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "LearnCard should verify Danube Tech", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:46960c80-fbee-417d-8c41-ebbff11bfba7", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Danube Tech", + "columnId": "LearnCard" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 36194, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 69, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "Open Security and Identity should verify Danube Tech", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:09d45023-081c-4eaa-b712-7f3ecdbbc491", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Danube Tech", + "columnId": "Open Security and Identity" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 36264, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 68, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "SpruceID should verify Danube Tech", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:d8989e23-e701-4abb-82a6-bd9a129491e9", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Danube Tech", + "columnId": "SpruceID" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 36331, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 28, + "state": "passed", + "speed": "fast" }, { "type": "test", - "title": "Digital Bazaar should verify apicatalog.com", + "title": "Trinsic should verify Danube Tech", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -19378,185 +23761,141 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:3cf3fd22-8412-4f80-8845-4b5488b9f8df", + "_testId": "urn:uuid:57caa571-4b39-4049-b4eb-1a25c0afb226", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "apicatalog.com", - "columnId": "Digital Bazaar" + "rowId": "Danube Tech", + "columnId": "Trinsic" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 45711, + "_idleStart": 36359, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 338, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", - "showDiff": false, - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "method": "POST", - "json": { - "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "id": "urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e", - "type": "VerifiableCredential", - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "proof": { - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", - "type": "Ed25519Signature2020", - "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:02:10Z", - "proofValue": "z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz" - } - }, - "options": { - "checks": [ - "proof" - ] - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half", - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:02:10Z\",\"proofValue\":\"z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz\"}},\"options\":{\"checks\":[\"proof\"]}}" - }, - "name": "HTTPError", - "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19rSJA9yQQwEqSSoNDjzkuNJ/credentials/verify", - "status": 400, - "data": { - "verified": false, - "results": [ - { - "proof": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", - "type": "Ed25519Signature2020", - "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:02:10Z", - "proofValue": "z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz" - }, - "verified": false, - "error": { - "name": "VerificationError", - "message": "Invalid signature." - } - } - ], - "error": { - "name": "VerificationError", - "errors": [ - { - "name": "Error", - "message": "Invalid signature.", - "stack": "Error: Invalid signature.\n at Ed25519Signature2020.verifyProof (/home/node/app/node_modules/jsonld-signatures/lib/suites/LinkedDataSignature.js:202:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /home/node/app/node_modules/jsonld-signatures/lib/ProofSet.js:268:53\n at async Promise.all (index 0)\n at async _verify (/home/node/app/node_modules/jsonld-signatures/lib/ProofSet.js:256:3)\n at async ProofSet.verify (/home/node/app/node_modules/jsonld-signatures/lib/ProofSet.js:191:23)\n at async Object.verify (/home/node/app/node_modules/jsonld-signatures/lib/jsonld-signatures.js:169:18)\n at async _verifyCredential (file:///home/node/app/node_modules/@digitalbazaar/vc/lib/index.js:328:18)\n at async Module.verifyCredential (file:///home/node/app/node_modules/@digitalbazaar/vc/lib/index.js:277:12)\n at async file:///home/node/app/node_modules/@bedrock/vc-verifier/lib/http.js:89:24" - } - ], - "message": "Verification error(s)." - }, - "checks": [ - { - "check": [ - "proof" - ], - "id": "urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e", - "error": "Invalid signature.", - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y" - } - ] - } - }, - "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" - } + "duration": 42, + "state": "passed", + "speed": "medium" + } + ] + }, + { + "id": "Digital Bazaar", + "cells": [ + { + "type": "test", + "title": "apicatalog.com should verify Digital Bazaar", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:12f23ded-50fe-4c0c-b567-ce97c2598f63", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Digital Bazaar", + "columnId": "apicatalog.com" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 36402, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 56, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "Danube Tech should verify Digital Bazaar", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:2702e2bf-e401-47de-940f-5b755a613456", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Digital Bazaar", + "columnId": "Danube Tech" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 36458, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 437, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Digital Bazaar should verify Digital Bazaar", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:e06d39af-81bf-4e90-8b31-30abacc9ca26", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Digital Bazaar", + "columnId": "Digital Bazaar" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 36894, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 43, + "state": "passed", + "speed": "medium" }, { "type": "test", - "title": "EWF should verify apicatalog.com", + "title": "EWF should verify Digital Bazaar", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -19567,148 +23906,176 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:68bc8644-5f43-4db5-8afd-3cd80824e1a1", + "_testId": "urn:uuid:57c6ae70-df4f-40ad-b8b6-28da28846757", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "apicatalog.com", + "rowId": "Digital Bazaar", "columnId": "EWF" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46050, + "_idleStart": 36938, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 29, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError { …(7) } to not exist", - "showDiff": false, - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:02:10Z\",\"proofValue\":\"z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz\"}},\"options\":{\"checks\":[\"proof\"]}}", - "method": "POST", - "json": { - "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "id": "urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e", - "type": "VerifiableCredential", - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "proof": { - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", - "type": "Ed25519Signature2020", - "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:02:10Z", - "proofValue": "z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz" - } - }, - "options": { - "checks": [ - "proof" - ] - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://vc-api-dev.energyweb.org/v1/vc-api/credentials/verify", - "status": 400, - "data": { - "message": [ - "verifiableCredential.type must be an array" - ], - "error": "Bad Request", - "statusCode": 400 - } - }, - "operator": "notStrictEqual", - "stack": "AssertionError: Expected verifier to not error.: expected HTTPError { …(7) } 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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" - } + "duration": 101, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "LearnCard should verify Digital Bazaar", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:e7a19dcf-f2c8-457c-b3e9-40775c510e2b", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Digital Bazaar", + "columnId": "LearnCard" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37038, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 77, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Open Security and Identity should verify Digital Bazaar", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:96922f95-521a-43e3-8cb6-081575e1543f", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Digital Bazaar", + "columnId": "Open Security and Identity" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37115, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 33, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "SpruceID should verify Digital Bazaar", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:69c38387-9499-47b2-a451-6869e327aafa", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Digital Bazaar", + "columnId": "SpruceID" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37149, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 37, + "state": "passed", + "speed": "fast" }, { "type": "test", - "title": "LearnCard should verify apicatalog.com", + "title": "Trinsic should verify Digital Bazaar", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:c85ad344-d2cd-4c15-937b-4ccc1e6490ee", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Digital Bazaar", + "columnId": "Trinsic" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37186, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 48, + "state": "passed", + "speed": "medium" + } + ] + }, + { + "id": "EWF", + "cells": [ + { + "type": "test", + "title": "apicatalog.com should verify EWF", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -19719,25 +24086,25 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:8deff507-9237-4628-a860-4c3017b00f61", + "_testId": "urn:uuid:791c9ec7-98dd-43e0-af42-83ebc320cc2c", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "apicatalog.com", - "columnId": "LearnCard" + "rowId": "EWF", + "columnId": "apicatalog.com" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46080, + "_idleStart": 37233, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 51, "state": "failed", "err": { "name": "AssertionError", @@ -19749,27 +24116,28 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:02:10Z\",\"proofValue\":\"z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:76ea87ed-8e94-4e21-b8c9-5e92e4a31c30\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"type\":\"Ed25519Signature2018\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"created\":\"2024-07-14T05:02:14.779Z\",\"jws\":\"eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..tEuJCdAnO2tlqWX5UBwPU9bfgoP4ydoGe1JxQwMVgXsev_bRg1TCcEjA4C21AV_9_Mtml5bHK78cO8VyJlOoBw\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" + "https://www.w3.org/2018/credentials/v1" + ], + "id": "urn:uuid:76ea87ed-8e94-4e21-b8c9-5e92e4a31c30", + "type": [ + "VerifiableCredential" ], - "id": "urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e", - "type": "VerifiableCredential", - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", - "issuanceDate": "2020-03-16T22:37:26.544Z", "credentialSubject": { "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" }, + "issuer": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", + "issuanceDate": "2020-03-16T22:37:26.544Z", "proof": { - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", - "type": "Ed25519Signature2020", + "type": "Ed25519Signature2018", "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:02:10Z", - "proofValue": "z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz" + "verificationMethod": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", + "created": "2024-07-14T05:02:14.779Z", + "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..tEuJCdAnO2tlqWX5UBwPU9bfgoP4ydoGe1JxQwMVgXsev_bRg1TCcEjA4C21AV_9_Mtml5bHK78cO8VyJlOoBw" } }, "options": { @@ -19844,9 +24212,16 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://bridge.learncard.com/credentials/verify", + "requestUrl": "https://vc.apicatalog.com/credentials/verify", "status": 400, - "data": "Invalid input: [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"array\",\n \"received\": \"string\",\n \"path\": [\n \"verifiableCredential\",\n \"type\"\n ],\n \"message\": \"Expected array, received string\"\n }\n]" + "data": { + "checks": [ + "PROOF", + "INVALID_PROOF_CONFIGURATION" + ], + "warnings": [], + "errors": [] + } }, "operator": "notStrictEqual", "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" @@ -19854,7 +24229,7 @@ }, { "type": "test", - "title": "SpruceID should verify apicatalog.com", + "title": "Danube Tech should verify EWF", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -19865,25 +24240,235 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:56f0b488-e9c0-4f3d-9ce0-71b75ce8b62b", + "_testId": "urn:uuid:328b1c3f-d5ed-4c99-b7c9-41928b419215", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "apicatalog.com", + "rowId": "EWF", + "columnId": "Danube Tech" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37285, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 422, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Digital Bazaar should verify EWF", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:32a7995d-7cda-4e44-b6fa-d309840cccda", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "EWF", + "columnId": "Digital Bazaar" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37707, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 53, + "state": "passed", + "speed": "medium" + }, + { + "type": "test", + "title": "EWF should verify EWF", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:a96ad42c-52ac-41d9-be73-6a7c88386af4", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "EWF", + "columnId": "EWF" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37759, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 95, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "LearnCard should verify EWF", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:8407d048-cb1b-4a7c-aaf2-1edb73364540", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "EWF", + "columnId": "LearnCard" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37855, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 119, + "state": "passed", + "speed": "slow" + }, + { + "type": "test", + "title": "Open Security and Identity should verify EWF", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:d17f1d3b-fc4e-4e86-955c-d1d43b7c1c54", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "EWF", + "columnId": "Open Security and Identity" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 37973, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 35, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "SpruceID should verify EWF", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:52bf4f4d-d4b8-4f2f-818e-7725339834e4", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "EWF", "columnId": "SpruceID" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46182, + "_idleStart": 38009, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 94, + "duration": 30, + "state": "passed", + "speed": "fast" + }, + { + "type": "test", + "title": "Trinsic should verify EWF", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:3a0df43d-6df9-4977-bdf1-2c3b3d8a448a", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "EWF", + "columnId": "Trinsic" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 38039, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 27, "state": "failed", "err": { "name": "AssertionError", @@ -19895,27 +24480,28 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:02:10Z\",\"proofValue\":\"z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:76ea87ed-8e94-4e21-b8c9-5e92e4a31c30\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"type\":\"Ed25519Signature2018\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"created\":\"2024-07-14T05:02:14.779Z\",\"jws\":\"eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..tEuJCdAnO2tlqWX5UBwPU9bfgoP4ydoGe1JxQwMVgXsev_bRg1TCcEjA4C21AV_9_Mtml5bHK78cO8VyJlOoBw\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" + "https://www.w3.org/2018/credentials/v1" + ], + "id": "urn:uuid:76ea87ed-8e94-4e21-b8c9-5e92e4a31c30", + "type": [ + "VerifiableCredential" ], - "id": "urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e", - "type": "VerifiableCredential", - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", - "issuanceDate": "2020-03-16T22:37:26.544Z", "credentialSubject": { "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" }, + "issuer": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", + "issuanceDate": "2020-03-16T22:37:26.544Z", "proof": { - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", - "type": "Ed25519Signature2020", + "type": "Ed25519Signature2018", "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:02:10Z", - "proofValue": "z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz" + "verificationMethod": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", + "created": "2024-07-14T05:02:14.779Z", + "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..tEuJCdAnO2tlqWX5UBwPU9bfgoP4ydoGe1JxQwMVgXsev_bRg1TCcEjA4C21AV_9_Mtml5bHK78cO8VyJlOoBw" } }, "options": { @@ -19990,16 +24576,56 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc.spruceid.xyz/credentials/verify", + "requestUrl": "https://interop.connect.trinsic.cloud/vc-api/credentials/verify", "status": 400 }, "operator": "notStrictEqual", "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } + } + ] + }, + { + "id": "LearnCard", + "cells": [ + { + "type": "test", + "title": "apicatalog.com should verify LearnCard", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:5dc7bd4b-5ba7-4b84-9394-4d98fcc1b630", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "LearnCard", + "columnId": "apicatalog.com" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 38066, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 55, + "state": "passed", + "speed": "medium" }, { "type": "test", - "title": "Trinsic should verify apicatalog.com", + "title": "Danube Tech should verify LearnCard", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20010,29 +24636,29 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:6fa7a2fb-1982-4c9e-a41a-b839b1a27062", + "_testId": "urn:uuid:c9471574-8f0c-453f-93eb-59aa2b34ca95", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "apicatalog.com", - "columnId": "Trinsic" + "rowId": "LearnCard", + "columnId": "Danube Tech" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46277, + "_idleStart": 38122, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 111, + "duration": 427, "state": "failed", "err": { "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", "showDiff": false, "actual": { "response": {}, @@ -20040,27 +24666,31 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e\",\"type\":\"VerifiableCredential\",\"issuer\":\"https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"verificationMethod\":\"did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y\",\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"created\":\"2024-07-07T05:02:10Z\",\"proofValue\":\"z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:66f1f81d-4f16-4801-b97a-3a54e5b62176\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"@context\":[\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3peTy4Zn6BAFqNRArpiVBphJCo3yT77fKbsjtXaBEeWzPb8u4bbdciSqJRwaMcWoQancsf8kodKrFk6vYTYthvDA\",\"verificationMethod\":\"did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh#z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh\",\"created\":\"2024-07-14T05:02:14.888Z\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" + "https://www.w3.org/2018/credentials/v1" + ], + "id": "urn:uuid:66f1f81d-4f16-4801-b97a-3a54e5b62176", + "type": [ + "VerifiableCredential" ], - "id": "urn:uuid:cd7bedda-9233-4393-990c-63ec8c8c6c7e", - "type": "VerifiableCredential", - "issuer": "https://vc.apicatalog.com/issuer/?suite=Ed25519Signature2020", - "issuanceDate": "2020-03-16T22:37:26.544Z", "credentialSubject": { "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" }, + "issuer": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", + "issuanceDate": "2020-03-16T22:37:26.544Z", "proof": { - "verificationMethod": "did:key:z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y#z6Mkska8oQD7QQQWxqa7L5ai4mH98HfAdSwomPFYKuqNyE2y", + "@context": [ + "https://w3id.org/security/suites/ed25519-2020/v1" + ], "type": "Ed25519Signature2020", "proofPurpose": "assertionMethod", - "created": "2024-07-07T05:02:10Z", - "proofValue": "z4DLR3Dabt2kcfDWmczWW2vu1yJoHAhPq2XnQxLQxGEckC8k3WzS2ZqVRyFvTnKAxSUTpGzsjje6SwfbUCjFcFbcz" + "proofValue": "z3peTy4Zn6BAFqNRArpiVBphJCo3yT77fKbsjtXaBEeWzPb8u4bbdciSqJRwaMcWoQancsf8kodKrFk6vYTYthvDA", + "verificationMethod": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh#z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", + "created": "2024-07-14T05:02:14.888Z" } }, "options": { @@ -20135,56 +24765,21 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://interop.connect.trinsic.cloud/vc-api/credentials/verify", - "status": 400 + "requestUrl": "https://univerifier.io/1.0/credentials/verify", + "status": 400, + "data": { + "checks": [ + "proof" + ] + } }, "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } - } - ] - }, - { - "id": "Danube Tech", - "cells": [ - { - "type": "test", - "title": "apicatalog.com should verify Danube Tech", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:a9fbd52d-8fad-4a27-89b6-25ac28873dc3", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "Danube Tech", - "columnId": "apicatalog.com" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 46389, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 99, - "state": "passed", - "speed": "slow" }, { "type": "test", - "title": "Danube Tech should verify Danube Tech", + "title": "Digital Bazaar should verify LearnCard", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20195,25 +24790,25 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:7e00b507-8f37-4fd1-bb2d-f933ecadc4ae", + "_testId": "urn:uuid:48a01dea-8438-4c4a-b473-899f3cac0abd", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Danube Tech", - "columnId": "Danube Tech" + "rowId": "LearnCard", + "columnId": "Digital Bazaar" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46489, + "_idleStart": 38550, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 500, + "duration": 42, "state": "failed", "err": { "name": "AssertionError", @@ -20225,29 +24820,30 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:41e959a0-fcea-43f9-ade0-7f0a1d078552\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-07T05:02:12Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo#z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo\",\"proofValue\":\"z2EF7KVHDj7dFceoi8w9uHXekGzpgdwktihxLWXRqHK2xFpdTm5KkWwBvyLVaTMGdV3SBibbXYhwQzgj62dAVgqnW\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" + "https://www.w3.org/2018/credentials/v1" ], - "id": "urn:uuid:41e959a0-fcea-43f9-ade0-7f0a1d078552", + "id": "urn:uuid:66f1f81d-4f16-4801-b97a-3a54e5b62176", "type": [ "VerifiableCredential" ], - "issuer": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", - "issuanceDate": "2020-03-16T22:37:26.544Z", "credentialSubject": { "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" }, + "issuer": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", + "issuanceDate": "2020-03-16T22:37:26.544Z", "proof": { + "@context": [ + "https://w3id.org/security/suites/ed25519-2020/v1" + ], "type": "Ed25519Signature2020", - "created": "2024-07-07T05:02:12Z", "proofPurpose": "assertionMethod", - "verificationMethod": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo#z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", - "proofValue": "z2EF7KVHDj7dFceoi8w9uHXekGzpgdwktihxLWXRqHK2xFpdTm5KkWwBvyLVaTMGdV3SBibbXYhwQzgj62dAVgqnW" + "proofValue": "z3peTy4Zn6BAFqNRArpiVBphJCo3yT77fKbsjtXaBEeWzPb8u4bbdciSqJRwaMcWoQancsf8kodKrFk6vYTYthvDA", + "verificationMethod": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh#z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", + "created": "2024-07-14T05:02:14.888Z" } }, "options": { @@ -20319,14 +24915,22 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half" + "duplex": "half", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:66f1f81d-4f16-4801-b97a-3a54e5b62176\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"@context\":[\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3peTy4Zn6BAFqNRArpiVBphJCo3yT77fKbsjtXaBEeWzPb8u4bbdciSqJRwaMcWoQancsf8kodKrFk6vYTYthvDA\",\"verificationMethod\":\"did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh#z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh\",\"created\":\"2024-07-14T05:02:14.888Z\"}},\"options\":{\"checks\":[\"proof\"]}}" }, "name": "HTTPError", - "requestUrl": "https://univerifier.io/1.0/credentials/verify", + "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19rSJA9yQQwEqSSoNDjzkuNJ/credentials/verify", "status": 400, "data": { + "verified": false, + "error": { + "name": "TypeError", + "message": "Cannot read properties of undefined (reading '0')" + }, "checks": [ - "proof" + { + "error": "Cannot read properties of undefined (reading '0')" + } ] } }, @@ -20336,7 +24940,7 @@ }, { "type": "test", - "title": "Digital Bazaar should verify Danube Tech", + "title": "EWF should verify LearnCard", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20347,31 +24951,31 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:2fd19600-f8a3-4e56-822b-175d2ee92c57", + "_testId": "urn:uuid:63c06e92-dea0-4e6e-9417-a7e08345f3a3", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Danube Tech", - "columnId": "Digital Bazaar" + "rowId": "LearnCard", + "columnId": "EWF" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 46989, + "_idleStart": 38592, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 95, "state": "passed", "speed": "slow" }, { "type": "test", - "title": "EWF should verify Danube Tech", + "title": "LearnCard should verify LearnCard", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20382,31 +24986,31 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:0c21e510-4132-427b-afe4-d80fa4b8bfc9", + "_testId": "urn:uuid:4f0265b8-dbcb-4a95-b662-8afc80af13f8", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Danube Tech", - "columnId": "EWF" + "rowId": "LearnCard", + "columnId": "LearnCard" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47096, + "_idleStart": 38687, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 32, + "duration": 79, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", - "title": "LearnCard should verify Danube Tech", + "title": "Open Security and Identity should verify LearnCard", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20417,31 +25021,31 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:593a9e8a-c42b-45e7-b705-396fbd738764", + "_testId": "urn:uuid:191e3e55-0bd2-41a8-b6fc-f09dff2eceb9", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Danube Tech", - "columnId": "LearnCard" + "rowId": "LearnCard", + "columnId": "Open Security and Identity" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47128, + "_idleStart": 38765, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 134, + "duration": 37, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "SpruceID should verify Danube Tech", + "title": "SpruceID should verify LearnCard", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20452,31 +25056,31 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:feae731f-2df4-464a-a8a3-f3403c0d511c", + "_testId": "urn:uuid:e4a07fea-1576-406b-b8c0-1d510a3ded86", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Danube Tech", + "rowId": "LearnCard", "columnId": "SpruceID" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47263, + "_idleStart": 38802, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 30, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", - "title": "Trinsic should verify Danube Tech", + "title": "Trinsic should verify LearnCard", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20487,36 +25091,36 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:cc22084f-76ae-4a6c-89b3-c741611e88d6", + "_testId": "urn:uuid:95558df1-9964-4ac6-b741-89811be7a355", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Danube Tech", + "rowId": "LearnCard", "columnId": "Trinsic" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47365, + "_idleStart": 38832, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 136, + "duration": 34, "state": "passed", - "speed": "slow" + "speed": "fast" } ] }, { - "id": "Digital Bazaar", + "id": "Open Security and Identity", "cells": [ { "type": "test", - "title": "apicatalog.com should verify Digital Bazaar", + "title": "apicatalog.com should verify Open Security and Identity", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20527,31 +25131,134 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:7a2a2811-e5ea-4737-91d6-ee95e9a12f62", + "_testId": "urn:uuid:7efa0e29-ac9d-49b7-8613-46bbdde13d74", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Digital Bazaar", + "rowId": "Open Security and Identity", "columnId": "apicatalog.com" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47502, + "_idleStart": 38866, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, - "state": "passed", - "speed": "slow" + "duration": 50, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "verifiableCredential": null + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://vc.apicatalog.com/credentials/verify", + "status": 400, + "data": { + "checks": [ + "PROOF" + ], + "warnings": [], + "errors": [ + "MALFORMED", + "INVALID_DOCUMENT" + ] + } + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } }, { "type": "test", - "title": "Danube Tech should verify Digital Bazaar", + "title": "Danube Tech should verify Open Security and Identity", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20562,25 +25269,25 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:7b6e3d6a-e4b6-49e3-a925-e1e01c29214a", + "_testId": "urn:uuid:9784b2fa-9008-42ce-9ad7-78d41be13e3f", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Digital Bazaar", + "rowId": "Open Security and Identity", "columnId": "Danube Tech" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 47584, + "_idleStart": 38917, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 507, + "duration": 111, "state": "failed", "err": { "name": "AssertionError", @@ -20592,30 +25299,11 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:e2b2d5f4-ffa9-4fb1-afe4-5b58f974376a\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkgVS1yW8ETBSYqHdJnmpUioyd27dnYToZoiwL9BCV7ipn\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-07T05:02:12Z\",\"verificationMethod\":\"did:key:z6MkgVS1yW8ETBSYqHdJnmpUioyd27dnYToZoiwL9BCV7ipn#z6MkgVS1yW8ETBSYqHdJnmpUioyd27dnYToZoiwL9BCV7ipn\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z3mk12SXRcKnEYPyfcWtX4DvvDaF8UrTnri4TtQKMGVrRypcjsvHvZwaMF9cLKvSf524C3mTsJVUUu6oXtUGxVNab\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "id": "urn:uuid:e2b2d5f4-ffa9-4fb1-afe4-5b58f974376a", - "type": [ - "VerifiableCredential" - ], - "issuer": "did:key:z6MkgVS1yW8ETBSYqHdJnmpUioyd27dnYToZoiwL9BCV7ipn", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "proof": { - "type": "Ed25519Signature2020", - "created": "2024-07-07T05:02:12Z", - "verificationMethod": "did:key:z6MkgVS1yW8ETBSYqHdJnmpUioyd27dnYToZoiwL9BCV7ipn#z6MkgVS1yW8ETBSYqHdJnmpUioyd27dnYToZoiwL9BCV7ipn", - "proofPurpose": "assertionMethod", - "proofValue": "z3mk12SXRcKnEYPyfcWtX4DvvDaF8UrTnri4TtQKMGVrRypcjsvHvZwaMF9cLKvSf524C3mTsJVUUu6oXtUGxVNab" - } + "verifiableCredential": null }, "options": { "checks": [ @@ -20692,9 +25380,7 @@ "requestUrl": "https://univerifier.io/1.0/credentials/verify", "status": 400, "data": { - "checks": [ - "proof" - ] + "checks": [] } }, "operator": "notStrictEqual", @@ -20703,7 +25389,7 @@ }, { "type": "test", - "title": "Digital Bazaar should verify Digital Bazaar", + "title": "Digital Bazaar should verify Open Security and Identity", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -20714,239 +25400,40 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:11cf2a12-39bd-4719-9308-3bc12999bae1", + "_testId": "urn:uuid:b0d6645c-60ae-454e-8bb7-0e4db2c8a828", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "Digital Bazaar", + "rowId": "Open Security and Identity", "columnId": "Digital Bazaar" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48093, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 101, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "EWF should verify Digital Bazaar", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:867667e0-9d51-4d9b-ae46-cbf9f18023e7", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "Digital Bazaar", - "columnId": "EWF" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 48193, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 30, - "state": "passed", - "speed": "fast" - }, - { - "type": "test", - "title": "LearnCard should verify Digital Bazaar", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:943c2c39-3892-4b50-8ef8-f222ad32b212", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "Digital Bazaar", - "columnId": "LearnCard" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 48224, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 138, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "SpruceID should verify Digital Bazaar", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:bfd2fcee-69bb-4e7e-8353-34e854eaa40e", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "Digital Bazaar", - "columnId": "SpruceID" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 48361, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 101, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Trinsic should verify Digital Bazaar", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:1c0c93b6-c12e-4e88-bdd0-73401541e41c", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "Digital Bazaar", - "columnId": "Trinsic" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 48462, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 116, - "state": "passed", - "speed": "slow" - } - ] - }, - { - "id": "EWF", - "cells": [ - { - "type": "test", - "title": "apicatalog.com should verify EWF", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:31153519-0f17-407c-b604-28e47580bf82", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "EWF", - "columnId": "apicatalog.com" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 48578, + "_idleStart": 39029, "_onTimeout": null, "_repeat": null, "_destroyed": true - }, - "duration": 73, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", - "showDiff": false, - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:f1db0576-977c-4cfe-8daa-38f43ddd705e\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"type\":\"Ed25519Signature2018\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"created\":\"2024-07-07T05:02:12.607Z\",\"jws\":\"eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..b362ibPpqig_JAmLQcCgWaeHMTn8xt2Q-Hebel1cH20L-dSu5fqax0YtT2bqtJUhQDCKwDlbSy6AAlYiUZHJBA\"}},\"options\":{\"checks\":[\"proof\"]}}", - "method": "POST", - "json": { - "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1" - ], - "id": "urn:uuid:f1db0576-977c-4cfe-8daa-38f43ddd705e", - "type": [ - "VerifiableCredential" - ], - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "issuer": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "proof": { - "type": "Ed25519Signature2018", - "proofPurpose": "assertionMethod", - "verificationMethod": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", - "created": "2024-07-07T05:02:12.607Z", - "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..b362ibPpqig_JAmLQcCgWaeHMTn8xt2Q-Hebel1cH20L-dSu5fqax0YtT2bqtJUhQDCKwDlbSy6AAlYiUZHJBA" - } + }, + "duration": 36, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: A validation error occured in … { …(6) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "method": "POST", + "json": { + "verifiableCredential": { + "verifiableCredential": null }, "options": { "checks": [ @@ -21017,27 +25504,63 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half" + "duplex": "half", + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}" }, "name": "HTTPError", - "requestUrl": "https://vc.apicatalog.com/credentials/verify", + "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19rSJA9yQQwEqSSoNDjzkuNJ/credentials/verify", "status": 400, "data": { - "checks": [ - "PROOF", - "INVALID_PROOF_CONFIGURATION" - ], - "warnings": [], - "errors": [] + "name": "ValidationError", + "message": "A validation error occured in the 'Verify Credential Body' validator.", + "details": { + "errors": [ + { + "stack": "ValidationError: should have required property '@context'\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:240:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", + "name": "ValidationError", + "message": "should have required property '@context'", + "details": { + "instance": { + "verifiableCredential": { + "verifiableCredential": null + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "params": { + "missingProperty": "@context" + }, + "path": ".verifiableCredential", + "public": true, + "schemaPath": "#/properties/verifiableCredential/required", + "schema": { + "description": "", + "title": "" + }, + "value": { + "verifiableCredential": null + } + }, + "cause": null + } + ], + "httpStatusCode": 400 + }, + "cause": null, + "stack": "ValidationError: A validation error occured in the 'Verify Credential Body' validator.\n at _createError (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:246:17)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:88:14)\n at validate (file:///home/node/app/node_modules/@bedrock/validation/lib/index.js:181:22)\n at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/home/node/app/node_modules/express/lib/router/route.js:149:13)\n at cors (/home/node/app/node_modules/cors/lib/index.js:188:7)\n at /home/node/app/node_modules/cors/lib/index.js:224:17\n at originCallback (/home/node/app/node_modules/cors/lib/index.js:214:15)\n at /home/node/app/node_modules/cors/lib/index.js:219:13\n at optionsCallback (/home/node/app/node_modules/cors/lib/index.js:199:9)", + "type": "ValidationError" } }, "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + "stack": "AssertionError: Expected verifier to not error.: expected HTTPError: A validation error occured in … { …(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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } }, { "type": "test", - "title": "Danube Tech should verify EWF", + "title": "EWF should verify Open Security and Identity", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -21048,29 +25571,29 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:c0d800b6-9a97-4ce1-81e8-024abd5f60e7", + "_testId": "urn:uuid:41df632d-9743-4e1b-9d14-bfead22fcece", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "EWF", - "columnId": "Danube Tech" + "rowId": "Open Security and Identity", + "columnId": "EWF" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 48652, + "_idleStart": 39065, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 525, + "duration": 92, "state": "failed", "err": { "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "message": "Expected verifier to not error.: expected HTTPError { message: [ …(7) ], …(6) } to not exist", "showDiff": false, "actual": { "response": {}, @@ -21078,29 +25601,11 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:f1db0576-977c-4cfe-8daa-38f43ddd705e\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"type\":\"Ed25519Signature2018\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"created\":\"2024-07-07T05:02:12.607Z\",\"jws\":\"eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..b362ibPpqig_JAmLQcCgWaeHMTn8xt2Q-Hebel1cH20L-dSu5fqax0YtT2bqtJUhQDCKwDlbSy6AAlYiUZHJBA\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1" - ], - "id": "urn:uuid:f1db0576-977c-4cfe-8daa-38f43ddd705e", - "type": [ - "VerifiableCredential" - ], - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "issuer": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "proof": { - "type": "Ed25519Signature2018", - "proofPurpose": "assertionMethod", - "verificationMethod": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", - "created": "2024-07-07T05:02:12.607Z", - "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..b362ibPpqig_JAmLQcCgWaeHMTn8xt2Q-Hebel1cH20L-dSu5fqax0YtT2bqtJUhQDCKwDlbSy6AAlYiUZHJBA" - } + "verifiableCredential": null }, "options": { "checks": [ @@ -21174,91 +25679,29 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://univerifier.io/1.0/credentials/verify", + "requestUrl": "https://vc-api-dev.energyweb.org/v1/vc-api/credentials/verify", "status": 400, "data": { - "checks": [ - "proof" - ] + "message": [ + "verifiableCredential.proof must be an object", + "verifiableCredential.@context must be an array", + "verifiableCredential.each value in type must be a string", + "verifiableCredential.type must be an array", + "verifiableCredential.issuer is not valid issuer", + "verifiableCredential.issuanceDate must be a valid ISO 8601 date string", + "verifiableCredential.credentialSubject must be an object" + ], + "error": "Bad Request", + "statusCode": 400 } }, "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + "stack": "AssertionError: Expected verifier to not error.: expected HTTPError { message: [ …(7) ], …(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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } }, { "type": "test", - "title": "Digital Bazaar should verify EWF", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:b4e85772-92bb-4632-9fe3-4a97f99c595f", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "EWF", - "columnId": "Digital Bazaar" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 49179, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 104, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "EWF should verify EWF", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:3a196bf3-ab66-43fd-97e2-2bc4986f538e", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "EWF", - "columnId": "EWF" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 49282, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 32, - "state": "passed", - "speed": "fast" - }, - { - "type": "test", - "title": "LearnCard should verify EWF", + "title": "LearnCard should verify Open Security and Identity", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -21269,99 +25712,29 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:d48ae76b-270f-42b8-8de6-d87d41b700c7", + "_testId": "urn:uuid:f8a056c4-52f0-4dd8-9aa7-7db0da6c4f40", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "EWF", + "rowId": "Open Security and Identity", "columnId": "LearnCard" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49314, + "_idleStart": 39158, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 126, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "SpruceID should verify EWF", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:92635096-0143-4da8-8bf3-d5379ddc06e1", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "EWF", - "columnId": "SpruceID" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 49441, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 100, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Trinsic should verify EWF", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:ecb11293-0b19-4491-9100-cbeaf37e0668", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "EWF", - "columnId": "Trinsic" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 49540, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 84, + "duration": 35, "state": "failed", "err": { "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", "showDiff": false, "actual": { "response": {}, @@ -21369,29 +25742,11 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:f1db0576-977c-4cfe-8daa-38f43ddd705e\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"type\":\"Ed25519Signature2018\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6\",\"created\":\"2024-07-07T05:02:12.607Z\",\"jws\":\"eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..b362ibPpqig_JAmLQcCgWaeHMTn8xt2Q-Hebel1cH20L-dSu5fqax0YtT2bqtJUhQDCKwDlbSy6AAlYiUZHJBA\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1" - ], - "id": "urn:uuid:f1db0576-977c-4cfe-8daa-38f43ddd705e", - "type": [ - "VerifiableCredential" - ], - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "issuer": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "proof": { - "type": "Ed25519Signature2018", - "proofPurpose": "assertionMethod", - "verificationMethod": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6#z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", - "created": "2024-07-07T05:02:12.607Z", - "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..b362ibPpqig_JAmLQcCgWaeHMTn8xt2Q-Hebel1cH20L-dSu5fqax0YtT2bqtJUhQDCKwDlbSy6AAlYiUZHJBA" - } + "verifiableCredential": null }, "options": { "checks": [ @@ -21465,56 +25820,17 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://interop.connect.trinsic.cloud/vc-api/credentials/verify", - "status": 400 + "requestUrl": "https://bridge.learncard.com/credentials/verify", + "status": 400, + "data": "Invalid input: [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"array\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"@context\"\n ],\n \"message\": \"Required\"\n },\n {\n \"code\": \"invalid_type\",\n \"expected\": \"array\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"type\"\n ],\n \"message\": \"Required\"\n },\n {\n \"code\": \"invalid_type\",\n \"expected\": \"string\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"issuanceDate\"\n ],\n \"message\": \"Required\"\n },\n {\n \"code\": \"invalid_union\",\n \"unionErrors\": [\n {\n \"issues\": [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"string\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"issuer\"\n ],\n \"message\": \"Required\"\n }\n ],\n \"name\": \"ZodError\"\n },\n {\n \"issues\": [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"object\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"issuer\"\n ],\n \"message\": \"Required\"\n }\n ],\n \"name\": \"ZodError\"\n }\n ],\n \"path\": [\n \"verifiableCredential\",\n \"issuer\"\n ],\n \"message\": \"Invalid input\"\n },\n {\n \"code\": \"invalid_union\",\n \"unionErrors\": [\n {\n \"issues\": [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"object\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"credentialSubject\"\n ],\n \"message\": \"Required\"\n }\n ],\n \"name\": \"ZodError\"\n },\n {\n \"issues\": [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"array\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"credentialSubject\"\n ],\n \"message\": \"Required\"\n }\n ],\n \"name\": \"ZodError\"\n }\n ],\n \"path\": [\n \"verifiableCredential\",\n \"credentialSubject\"\n ],\n \"message\": \"Invalid input\"\n },\n {\n \"code\": \"invalid_union\",\n \"unionErrors\": [\n {\n \"issues\": [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"object\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"proof\"\n ],\n \"message\": \"Required\"\n }\n ],\n \"name\": \"ZodError\"\n },\n {\n \"issues\": [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"array\",\n \"received\": \"undefined\",\n \"path\": [\n \"verifiableCredential\",\n \"proof\"\n ],\n \"message\": \"Required\"\n }\n ],\n \"name\": \"ZodError\"\n }\n ],\n \"path\": [\n \"verifiableCredential\",\n \"proof\"\n ],\n \"message\": \"Invalid input\"\n }\n]" }, "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } - } - ] - }, - { - "id": "LearnCard", - "cells": [ - { - "type": "test", - "title": "apicatalog.com should verify LearnCard", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:20c0c9e1-f5c8-4f27-a1f3-f59a9ce7a02d", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "LearnCard", - "columnId": "apicatalog.com" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 49626, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 90, - "state": "passed", - "speed": "slow" }, { "type": "test", - "title": "Danube Tech should verify LearnCard", + "title": "Open Security and Identity should verify Open Security and Identity", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -21525,25 +25841,25 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:fac6af79-3246-469f-825b-71895a91608b", + "_testId": "urn:uuid:39fb0fc9-9bcb-4008-b25c-23fbc3c8e7f7", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "LearnCard", - "columnId": "Danube Tech" + "rowId": "Open Security and Identity", + "columnId": "Open Security and Identity" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 49716, + "_idleStart": 39194, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 501, + "duration": 26, "state": "failed", "err": { "name": "AssertionError", @@ -21555,32 +25871,11 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:c74f3da9-7cbc-4849-abe5-db04a9d3174d\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"@context\":[\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z45w3DsGK2zZPg3H8jLW4RwjAosQ3exKeehes5dKQVPf7KU8CDiUDMhSZpgWEmi89ee4wGL5tYuDDbEHSGqfCcJvx\",\"verificationMethod\":\"did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh#z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh\",\"created\":\"2024-07-07T05:02:12.739Z\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1" - ], - "id": "urn:uuid:c74f3da9-7cbc-4849-abe5-db04a9d3174d", - "type": [ - "VerifiableCredential" - ], - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "issuer": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "proof": { - "@context": [ - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "type": "Ed25519Signature2020", - "proofPurpose": "assertionMethod", - "proofValue": "z45w3DsGK2zZPg3H8jLW4RwjAosQ3exKeehes5dKQVPf7KU8CDiUDMhSZpgWEmi89ee4wGL5tYuDDbEHSGqfCcJvx", - "verificationMethod": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh#z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", - "created": "2024-07-07T05:02:12.739Z" - } + "verifiableCredential": null }, "options": { "checks": [ @@ -21654,11 +25949,153 @@ "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://univerifier.io/1.0/credentials/verify", - "status": 400, + "requestUrl": "https://vc.opsec.id/credentials/verify", + "status": 422, "data": { - "checks": [ - "proof" + "detail": [ + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "@context" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "type" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuer" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuanceDate" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "credentialSubject" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "proof" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "@context" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "type" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "issuer" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "credentialSubject" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + }, + { + "type": "missing", + "loc": [ + "body", + "verifiableCredential", + "VerifiableCredential", + "proof" + ], + "msg": "Field required", + "input": { + "verifiableCredential": null + } + } ] } }, @@ -21668,7 +26105,7 @@ }, { "type": "test", - "title": "Digital Bazaar should verify LearnCard", + "title": "SpruceID should verify Open Security and Identity", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -21679,29 +26116,29 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:a1da5503-7eab-41fd-a843-4e528f5fc8ee", + "_testId": "urn:uuid:8af93ec0-fb9d-48b8-b5fa-6179b05dc63a", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "LearnCard", - "columnId": "Digital Bazaar" + "rowId": "Open Security and Identity", + "columnId": "SpruceID" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50218, + "_idleStart": 39221, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 98, + "duration": 21, "state": "failed", "err": { "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist", "showDiff": false, "actual": { "response": {}, @@ -21709,31 +26146,11 @@ "options": { "credentials": "same-origin", "headers": {}, + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1" - ], - "id": "urn:uuid:c74f3da9-7cbc-4849-abe5-db04a9d3174d", - "type": [ - "VerifiableCredential" - ], - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "issuer": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "proof": { - "@context": [ - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "type": "Ed25519Signature2020", - "proofPurpose": "assertionMethod", - "proofValue": "z45w3DsGK2zZPg3H8jLW4RwjAosQ3exKeehes5dKQVPf7KU8CDiUDMhSZpgWEmi89ee4wGL5tYuDDbEHSGqfCcJvx", - "verificationMethod": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh#z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", - "created": "2024-07-07T05:02:12.739Z" - } + "verifiableCredential": null }, "options": { "checks": [ @@ -21804,137 +26221,19 @@ "throwHttpErrors": true, "timeout": 10000, "signal": {}, - "duplex": "half", - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:c74f3da9-7cbc-4849-abe5-db04a9d3174d\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"@context\":[\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z45w3DsGK2zZPg3H8jLW4RwjAosQ3exKeehes5dKQVPf7KU8CDiUDMhSZpgWEmi89ee4wGL5tYuDDbEHSGqfCcJvx\",\"verificationMethod\":\"did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh#z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh\",\"created\":\"2024-07-07T05:02:12.739Z\"}},\"options\":{\"checks\":[\"proof\"]}}" + "duplex": "half" }, "name": "HTTPError", - "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19rSJA9yQQwEqSSoNDjzkuNJ/credentials/verify", - "status": 400, - "data": { - "verified": false, - "error": { - "name": "TypeError", - "message": "Cannot read properties of undefined (reading '0')" - }, - "checks": [ - { - "error": "Cannot read properties of undefined (reading '0')" - } - ] - } + "requestUrl": "https://vc.spruceid.xyz/credentials/verify", + "status": 400 }, "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } }, { "type": "test", - "title": "EWF should verify LearnCard", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:9c6b18cd-a4f8-4631-8af6-bcad3b82a36a", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "LearnCard", - "columnId": "EWF" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 50318, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 31, - "state": "passed", - "speed": "fast" - }, - { - "type": "test", - "title": "LearnCard should verify LearnCard", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:a909ff78-f0b4-4116-bbb4-9f6bc246f584", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "LearnCard", - "columnId": "LearnCard" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 50349, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 145, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "SpruceID should verify LearnCard", - "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", - "async": 0, - "sync": true, - "_timeout": 15000, - "_slow": 75, - "_retries": -1, - "timedOut": false, - "_currentRetry": 0, - "pending": false, - "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", - "ctx": null, - "_testId": "urn:uuid:2ed97254-dd97-4c6e-8e22-3298ad97a87d", - "_events": {}, - "_eventsCount": 1, - "cell": { - "rowId": "LearnCard", - "columnId": "SpruceID" - }, - "timer": { - "_idleTimeout": -1, - "_idlePrev": null, - "_idleNext": null, - "_idleStart": 50494, - "_onTimeout": null, - "_repeat": null, - "_destroyed": true - }, - "duration": 97, - "state": "passed", - "speed": "slow" - }, - { - "type": "test", - "title": "Trinsic should verify LearnCard", + "title": "Trinsic should verify Open Security and Identity", "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", "async": 0, "sync": true, @@ -21945,27 +26244,120 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:d9b6a639-2ae6-4de3-8638-99deba90191f", + "_testId": "urn:uuid:4662e77f-30a2-4365-a67b-e3da4d21cf85", "_events": {}, "_eventsCount": 1, "cell": { - "rowId": "LearnCard", + "rowId": "Open Security and Identity", "columnId": "Trinsic" }, "timer": { "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50592, + "_idleStart": 39243, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 110, - "state": "passed", - "speed": "slow" + "duration": 21, + "state": "failed", + "err": { + "name": "AssertionError", + "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(5) } to not exist", + "showDiff": false, + "actual": { + "response": {}, + "request": {}, + "options": { + "credentials": "same-origin", + "headers": {}, + "body": "{\"verifiableCredential\":{\"verifiableCredential\":null},\"options\":{\"checks\":[\"proof\"]}}", + "method": "POST", + "json": { + "verifiableCredential": { + "verifiableCredential": null + }, + "options": { + "checks": [ + "proof" + ] + } + }, + "agent": { + "_events": {}, + "_eventsCount": 2, + "defaultPort": 443, + "protocol": "https:", + "options": { + "rejectUnauthorized": false, + "noDelay": true, + "path": null + }, + "requests": {}, + "sockets": {}, + "freeSockets": {}, + "keepAliveMsecs": 1000, + "keepAlive": false, + "maxSockets": null, + "maxFreeSockets": 256, + "scheduling": "lifo", + "maxTotalSockets": null, + "totalSocketCount": 0, + "maxCachedSessions": 100, + "_sessionCache": { + "map": {}, + "list": [] + } + }, + "hooks": { + "beforeRequest": [], + "beforeRetry": [], + "beforeError": [], + "afterResponse": [] + }, + "prefixUrl": "", + "retry": { + "limit": 2, + "methods": [ + "get", + "put", + "head", + "delete", + "options", + "trace" + ], + "statusCodes": [ + 408, + 413, + 429, + 500, + 502, + 503, + 504 + ], + "afterStatusCodes": [ + 413, + 429, + 503 + ], + "maxRetryAfter": null, + "backoffLimit": null + }, + "throwHttpErrors": true, + "timeout": 10000, + "signal": {}, + "duplex": "half" + }, + "name": "HTTPError", + "requestUrl": "https://interop.connect.trinsic.cloud/vc-api/credentials/verify", + "status": 400 + }, + "operator": "notStrictEqual", + "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" + } } ] }, @@ -21985,9 +26377,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:d6dd9d4a-6872-4141-890e-fee66c12c1b9", + "_testId": "urn:uuid:d2673b5a-33cc-4acf-871f-2637246168bf", "_events": {}, "_eventsCount": 1, "cell": { @@ -21998,14 +26390,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50702, + "_idleStart": 39265, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 83, + "duration": 54, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -22020,9 +26412,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:5d5a403d-460f-49a6-b8b9-bd3b690064ef", + "_testId": "urn:uuid:e10f016f-036c-4ecd-b29a-9567da55c9ac", "_events": {}, "_eventsCount": 1, "cell": { @@ -22033,12 +26425,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 50786, + "_idleStart": 39318, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 494, + "duration": 436, "state": "failed", "err": { "name": "AssertionError", @@ -22050,14 +26442,14 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:cbba6bcc-5b28-4061-a287-84869fe3d500\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"@context\":[\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4hU6RKygvqvt6fydWisW2FDJn72v7B3YcMVEu5wZ7bkAipwYSPQs5BxKroxP26CCX3YXmN8yzCtLuADaHcczBSk1\",\"verificationMethod\":\"did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra#z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra\",\"created\":\"2024-07-07T05:02:12.829Z\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:f38fbadb-bba0-466e-9b88-4cad3efbaee2\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"@context\":[\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2q8hd3f51y2gv45Mm9F9s8jE1fpUp4s4uNof6nDpHHMkzExZ665cT6bLwD2KGPKyqWdkuKzydZMyKo8dsYtZ6iq4\",\"verificationMethod\":\"did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra#z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra\",\"created\":\"2024-07-14T05:02:14.974Z\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { "@context": [ "https://www.w3.org/2018/credentials/v1" ], - "id": "urn:uuid:cbba6bcc-5b28-4061-a287-84869fe3d500", + "id": "urn:uuid:f38fbadb-bba0-466e-9b88-4cad3efbaee2", "type": [ "VerifiableCredential" ], @@ -22072,9 +26464,9 @@ ], "type": "Ed25519Signature2020", "proofPurpose": "assertionMethod", - "proofValue": "z4hU6RKygvqvt6fydWisW2FDJn72v7B3YcMVEu5wZ7bkAipwYSPQs5BxKroxP26CCX3YXmN8yzCtLuADaHcczBSk1", + "proofValue": "z2q8hd3f51y2gv45Mm9F9s8jE1fpUp4s4uNof6nDpHHMkzExZ665cT6bLwD2KGPKyqWdkuKzydZMyKo8dsYtZ6iq4", "verificationMethod": "did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra#z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra", - "created": "2024-07-07T05:02:12.829Z" + "created": "2024-07-14T05:02:14.974Z" } }, "options": { @@ -22174,9 +26566,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:200a47bc-e9e1-42fd-afe2-8d1985a6e210", + "_testId": "urn:uuid:7bb1001d-6edb-40dc-9090-d836b32e9bdf", "_events": {}, "_eventsCount": 1, "cell": { @@ -22187,12 +26579,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51280, + "_idleStart": 39756, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 40, "state": "failed", "err": { "name": "AssertionError", @@ -22210,7 +26602,7 @@ "@context": [ "https://www.w3.org/2018/credentials/v1" ], - "id": "urn:uuid:cbba6bcc-5b28-4061-a287-84869fe3d500", + "id": "urn:uuid:f38fbadb-bba0-466e-9b88-4cad3efbaee2", "type": [ "VerifiableCredential" ], @@ -22225,9 +26617,9 @@ ], "type": "Ed25519Signature2020", "proofPurpose": "assertionMethod", - "proofValue": "z4hU6RKygvqvt6fydWisW2FDJn72v7B3YcMVEu5wZ7bkAipwYSPQs5BxKroxP26CCX3YXmN8yzCtLuADaHcczBSk1", + "proofValue": "z2q8hd3f51y2gv45Mm9F9s8jE1fpUp4s4uNof6nDpHHMkzExZ665cT6bLwD2KGPKyqWdkuKzydZMyKo8dsYtZ6iq4", "verificationMethod": "did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra#z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra", - "created": "2024-07-07T05:02:12.829Z" + "created": "2024-07-14T05:02:14.974Z" } }, "options": { @@ -22300,7 +26692,7 @@ "timeout": 10000, "signal": {}, "duplex": "half", - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:cbba6bcc-5b28-4061-a287-84869fe3d500\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"@context\":[\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z4hU6RKygvqvt6fydWisW2FDJn72v7B3YcMVEu5wZ7bkAipwYSPQs5BxKroxP26CCX3YXmN8yzCtLuADaHcczBSk1\",\"verificationMethod\":\"did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra#z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra\",\"created\":\"2024-07-07T05:02:12.829Z\"}},\"options\":{\"checks\":[\"proof\"]}}" + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"id\":\"urn:uuid:f38fbadb-bba0-466e-9b88-4cad3efbaee2\",\"type\":[\"VerifiableCredential\"],\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"issuer\":\"did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"proof\":{\"@context\":[\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"type\":\"Ed25519Signature2020\",\"proofPurpose\":\"assertionMethod\",\"proofValue\":\"z2q8hd3f51y2gv45Mm9F9s8jE1fpUp4s4uNof6nDpHHMkzExZ665cT6bLwD2KGPKyqWdkuKzydZMyKo8dsYtZ6iq4\",\"verificationMethod\":\"did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra#z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra\",\"created\":\"2024-07-14T05:02:14.974Z\"}},\"options\":{\"checks\":[\"proof\"]}}" }, "name": "HTTPError", "requestUrl": "https://vc2.veresverifier.dev/verifiers/z19rSJA9yQQwEqSSoNDjzkuNJ/credentials/verify", @@ -22335,9 +26727,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:91b020f2-b18b-45f8-b823-0af5985ad5d5", + "_testId": "urn:uuid:22df8664-5512-4dfd-955a-119b72944290", "_events": {}, "_eventsCount": 1, "cell": { @@ -22348,14 +26740,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51381, + "_idleStart": 39796, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 31, + "duration": 98, "state": "passed", - "speed": "fast" + "speed": "slow" }, { "type": "test", @@ -22370,9 +26762,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:e499524e-f488-4c7d-938e-b9c15d708c62", + "_testId": "urn:uuid:02356d79-23da-44be-8cef-d8e56fa1def6", "_events": {}, "_eventsCount": 1, "cell": { @@ -22383,14 +26775,49 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51412, + "_idleStart": 39893, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 132, + "duration": 72, "state": "passed", - "speed": "slow" + "speed": "medium" + }, + { + "type": "test", + "title": "Open Security and Identity should verify SpruceID", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:8406db33-0b4d-4f84-8c37-edf691f9dab9", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "SpruceID", + "columnId": "Open Security and Identity" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 39966, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 34, + "state": "passed", + "speed": "fast" }, { "type": "test", @@ -22405,9 +26832,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:581bb9be-c23e-4d5c-9f37-9e31d76ff9b1", + "_testId": "urn:uuid:d8a56475-c379-4b41-809b-da5166c405d9", "_events": {}, "_eventsCount": 1, "cell": { @@ -22418,14 +26845,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51544, + "_idleStart": 39999, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 100, + "duration": 30, "state": "passed", - "speed": "slow" + "speed": "fast" }, { "type": "test", @@ -22440,9 +26867,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:23368ea1-9fdb-4719-8dee-835b50a41efb", + "_testId": "urn:uuid:d4d495db-ca03-41e0-a91e-9860118ac25d", "_events": {}, "_eventsCount": 1, "cell": { @@ -22453,14 +26880,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51644, + "_idleStart": 40030, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 104, + "duration": 40, "state": "passed", - "speed": "slow" + "speed": "medium" } ] }, @@ -22480,9 +26907,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:ea86e15a-8e1a-43a7-a4da-d1d98af51556", + "_testId": "urn:uuid:379f0044-4b8a-4eaf-adda-9e37a6a998ce", "_events": {}, "_eventsCount": 1, "cell": { @@ -22493,14 +26920,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51749, + "_idleStart": 40070, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 80, + "duration": 53, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -22515,9 +26942,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:3df969a9-9077-47fa-9e17-e6c23365b07e", + "_testId": "urn:uuid:516c874b-64e7-4a10-8019-bde6ed622a0f", "_events": {}, "_eventsCount": 1, "cell": { @@ -22528,131 +26955,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 51830, + "_idleStart": 40122, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 496, - "state": "failed", - "err": { - "name": "AssertionError", - "message": "Expected verifier to not error.: expected HTTPError: Request failed with status cod… { …(6) } to not exist", - "showDiff": false, - "actual": { - "response": {}, - "request": {}, - "options": { - "credentials": "same-origin", - "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:d9f8d509-1f33-4a14-81fd-04c84a572774\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-07T05:02:12.9500833Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"proofValue\":\"z49qCnJzab4YWetCw1y4p7qKVZ982gpxq7R81jeqvoPAafrquNdhBqQbmXixfCBfuu5gAHMtPnDPidd4ZySVD7C5X\"}},\"options\":{\"checks\":[\"proof\"]}}", - "method": "POST", - "json": { - "verifiableCredential": { - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/ed25519-2020/v1" - ], - "id": "urn:uuid:d9f8d509-1f33-4a14-81fd-04c84a572774", - "type": [ - "VerifiableCredential" - ], - "issuer": "did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU", - "issuanceDate": "2020-03-16T22:37:26.544Z", - "credentialSubject": { - "id": "did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b" - }, - "proof": { - "type": "Ed25519Signature2020", - "created": "2024-07-07T05:02:12.9500833Z", - "proofPurpose": "assertionMethod", - "verificationMethod": "did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU", - "proofValue": "z49qCnJzab4YWetCw1y4p7qKVZ982gpxq7R81jeqvoPAafrquNdhBqQbmXixfCBfuu5gAHMtPnDPidd4ZySVD7C5X" - } - }, - "options": { - "checks": [ - "proof" - ] - } - }, - "agent": { - "_events": {}, - "_eventsCount": 2, - "defaultPort": 443, - "protocol": "https:", - "options": { - "rejectUnauthorized": false, - "noDelay": true, - "path": null - }, - "requests": {}, - "sockets": {}, - "freeSockets": {}, - "keepAliveMsecs": 1000, - "keepAlive": false, - "maxSockets": null, - "maxFreeSockets": 256, - "scheduling": "lifo", - "maxTotalSockets": null, - "totalSocketCount": 0, - "maxCachedSessions": 100, - "_sessionCache": { - "map": {}, - "list": [] - } - }, - "hooks": { - "beforeRequest": [], - "beforeRetry": [], - "beforeError": [], - "afterResponse": [] - }, - "prefixUrl": "", - "retry": { - "limit": 2, - "methods": [ - "get", - "put", - "head", - "delete", - "options", - "trace" - ], - "statusCodes": [ - 408, - 413, - 429, - 500, - 502, - 503, - 504 - ], - "afterStatusCodes": [ - 413, - 429, - 503 - ], - "maxRetryAfter": null, - "backoffLimit": null - }, - "throwHttpErrors": true, - "timeout": 10000, - "signal": {}, - "duplex": "half" - }, - "name": "HTTPError", - "requestUrl": "https://univerifier.io/1.0/credentials/verify", - "status": 400, - "data": { - "checks": [ - "proof" - ] - } - }, - "operator": "notStrictEqual", - "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" - } + "duration": 436, + "state": "passed", + "speed": "slow" }, { "type": "test", @@ -22667,9 +26977,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:3eff8dde-03b0-4179-9ed1-cbe3ec280dac", + "_testId": "urn:uuid:7fbf2dd9-0dfa-4eee-ac8b-978805caae79", "_events": {}, "_eventsCount": 1, "cell": { @@ -22680,14 +26990,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52327, + "_idleStart": 40559, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 49, "state": "passed", - "speed": "slow" + "speed": "medium" }, { "type": "test", @@ -22702,9 +27012,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:6b3fb088-9667-4b8d-9184-875e6ef9ecb6", + "_testId": "urn:uuid:3a6be85a-5185-4c25-9ed1-5416dba90aac", "_events": {}, "_eventsCount": 1, "cell": { @@ -22715,12 +27025,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52429, + "_idleStart": 40608, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 31, + "duration": 106, "state": "failed", "err": { "name": "AssertionError", @@ -22732,7 +27042,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:d9f8d509-1f33-4a14-81fd-04c84a572774\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-07T05:02:12.9500833Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"proofValue\":\"z49qCnJzab4YWetCw1y4p7qKVZ982gpxq7R81jeqvoPAafrquNdhBqQbmXixfCBfuu5gAHMtPnDPidd4ZySVD7C5X\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:c5b4620e-afd8-4653-ae95-c4e7fcf699c7\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-14T05:02:15.0138592Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"proofValue\":\"z5htDMRm3b8QPzdrSYzuZ54gPYApHzrqjq54pW66kUwtosx46dtyG1m7Sbtah2fwo7ATVgfppuE7yKoxKE4aD7dVQ\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { @@ -22740,7 +27050,7 @@ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/security/suites/ed25519-2020/v1" ], - "id": "urn:uuid:d9f8d509-1f33-4a14-81fd-04c84a572774", + "id": "urn:uuid:c5b4620e-afd8-4653-ae95-c4e7fcf699c7", "type": [ "VerifiableCredential" ], @@ -22751,10 +27061,10 @@ }, "proof": { "type": "Ed25519Signature2020", - "created": "2024-07-07T05:02:12.9500833Z", + "created": "2024-07-14T05:02:15.0138592Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU", - "proofValue": "z49qCnJzab4YWetCw1y4p7qKVZ982gpxq7R81jeqvoPAafrquNdhBqQbmXixfCBfuu5gAHMtPnDPidd4ZySVD7C5X" + "proofValue": "z5htDMRm3b8QPzdrSYzuZ54gPYApHzrqjq54pW66kUwtosx46dtyG1m7Sbtah2fwo7ATVgfppuE7yKoxKE4aD7dVQ" } }, "options": { @@ -22858,9 +27168,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:692ec06d-cf4e-4ad5-ac31-d148741954a7", + "_testId": "urn:uuid:3d8a168b-abb3-4cd3-96f8-3375bdcb5fe6", "_events": {}, "_eventsCount": 1, "cell": { @@ -22871,12 +27181,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52461, + "_idleStart": 40714, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 120, + "duration": 79, "state": "failed", "err": { "name": "AssertionError", @@ -22888,7 +27198,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:d9f8d509-1f33-4a14-81fd-04c84a572774\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-07T05:02:12.9500833Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"proofValue\":\"z49qCnJzab4YWetCw1y4p7qKVZ982gpxq7R81jeqvoPAafrquNdhBqQbmXixfCBfuu5gAHMtPnDPidd4ZySVD7C5X\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:c5b4620e-afd8-4653-ae95-c4e7fcf699c7\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-14T05:02:15.0138592Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"proofValue\":\"z5htDMRm3b8QPzdrSYzuZ54gPYApHzrqjq54pW66kUwtosx46dtyG1m7Sbtah2fwo7ATVgfppuE7yKoxKE4aD7dVQ\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { @@ -22896,7 +27206,7 @@ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/security/suites/ed25519-2020/v1" ], - "id": "urn:uuid:d9f8d509-1f33-4a14-81fd-04c84a572774", + "id": "urn:uuid:c5b4620e-afd8-4653-ae95-c4e7fcf699c7", "type": [ "VerifiableCredential" ], @@ -22907,10 +27217,10 @@ }, "proof": { "type": "Ed25519Signature2020", - "created": "2024-07-07T05:02:12.9500833Z", + "created": "2024-07-14T05:02:15.0138592Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU", - "proofValue": "z49qCnJzab4YWetCw1y4p7qKVZ982gpxq7R81jeqvoPAafrquNdhBqQbmXixfCBfuu5gAHMtPnDPidd4ZySVD7C5X" + "proofValue": "z5htDMRm3b8QPzdrSYzuZ54gPYApHzrqjq54pW66kUwtosx46dtyG1m7Sbtah2fwo7ATVgfppuE7yKoxKE4aD7dVQ" } }, "options": { @@ -23002,6 +27312,41 @@ "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-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js:66:20)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } }, + { + "type": "test", + "title": "Open Security and Identity should verify Trinsic", + "body": "async function() {\n this.test.cell = {rowId: issuerName, columnId: verifierName};\n should.not.exist(\n issuerError,\n `Expected issuer: ${issuerName} to not error`\n );\n should.exist(issuedVc, `Expected issuer: ${issuerName} to issue a VC`);\n const body = {\n verifiableCredential: issuedVc,\n options: {\n checks: ['proof']\n }\n };\n const {result, error} = await verifier.post({json: body});\n should.not.exist(error, 'Expected verifier to not error.');\n should.exist(result, 'Expected result from verifier.');\n should.exist(result.status, 'Expected verifier to return an HTTP' +\n 'status code');\n result.status.should.equal(200, 'Expected HTTP status code to be 200.');\n }", + "async": 0, + "sync": true, + "_timeout": 15000, + "_slow": 75, + "_retries": -1, + "timedOut": false, + "_currentRetry": 0, + "pending": false, + "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", + "parent": "PNKKwedreDNij3j4u41a9", + "ctx": null, + "_testId": "urn:uuid:932cd146-419a-4c50-a4c1-40f1239f07b3", + "_events": {}, + "_eventsCount": 1, + "cell": { + "rowId": "Trinsic", + "columnId": "Open Security and Identity" + }, + "timer": { + "_idleTimeout": -1, + "_idlePrev": null, + "_idleNext": null, + "_idleStart": 40793, + "_onTimeout": null, + "_repeat": null, + "_destroyed": true + }, + "duration": 41, + "state": "passed", + "speed": "medium" + }, { "type": "test", "title": "SpruceID should verify Trinsic", @@ -23015,9 +27360,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:72aff441-3ddc-465d-acaa-5ea070fb85c7", + "_testId": "urn:uuid:8b185214-0aff-48af-8fb7-8b3af11f5dcd", "_events": {}, "_eventsCount": 1, "cell": { @@ -23028,12 +27373,12 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52583, + "_idleStart": 40835, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 102, + "duration": 25, "state": "failed", "err": { "name": "AssertionError", @@ -23045,7 +27390,7 @@ "options": { "credentials": "same-origin", "headers": {}, - "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:d9f8d509-1f33-4a14-81fd-04c84a572774\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-07T05:02:12.9500833Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"proofValue\":\"z49qCnJzab4YWetCw1y4p7qKVZ982gpxq7R81jeqvoPAafrquNdhBqQbmXixfCBfuu5gAHMtPnDPidd4ZySVD7C5X\"}},\"options\":{\"checks\":[\"proof\"]}}", + "body": "{\"verifiableCredential\":{\"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://w3id.org/security/suites/ed25519-2020/v1\"],\"id\":\"urn:uuid:c5b4620e-afd8-4653-ae95-c4e7fcf699c7\",\"type\":[\"VerifiableCredential\"],\"issuer\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"issuanceDate\":\"2020-03-16T22:37:26.544Z\",\"credentialSubject\":{\"id\":\"did:key:z6MktKwz7Ge1Yxzr4JHavN33wiwa8y81QdcMRLXQsrH9T53b\"},\"proof\":{\"type\":\"Ed25519Signature2020\",\"created\":\"2024-07-14T05:02:15.0138592Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU\",\"proofValue\":\"z5htDMRm3b8QPzdrSYzuZ54gPYApHzrqjq54pW66kUwtosx46dtyG1m7Sbtah2fwo7ATVgfppuE7yKoxKE4aD7dVQ\"}},\"options\":{\"checks\":[\"proof\"]}}", "method": "POST", "json": { "verifiableCredential": { @@ -23053,7 +27398,7 @@ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/security/suites/ed25519-2020/v1" ], - "id": "urn:uuid:d9f8d509-1f33-4a14-81fd-04c84a572774", + "id": "urn:uuid:c5b4620e-afd8-4653-ae95-c4e7fcf699c7", "type": [ "VerifiableCredential" ], @@ -23064,10 +27409,10 @@ }, "proof": { "type": "Ed25519Signature2020", - "created": "2024-07-07T05:02:12.9500833Z", + "created": "2024-07-14T05:02:15.0138592Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU#z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU", - "proofValue": "z49qCnJzab4YWetCw1y4p7qKVZ982gpxq7R81jeqvoPAafrquNdhBqQbmXixfCBfuu5gAHMtPnDPidd4ZySVD7C5X" + "proofValue": "z5htDMRm3b8QPzdrSYzuZ54gPYApHzrqjq54pW66kUwtosx46dtyG1m7Sbtah2fwo7ATVgfppuE7yKoxKE4aD7dVQ" } }, "options": { @@ -23162,9 +27507,9 @@ "_currentRetry": 0, "pending": false, "file": "/home/runner/work/vc-di-ed25519signature2020-test-suite/vc-di-ed25519signature2020-test-suite/tests/30-interop.js", - "parent": "MHKCNeTTCM444pStmgUGt", + "parent": "PNKKwedreDNij3j4u41a9", "ctx": null, - "_testId": "urn:uuid:b652ed25-9b3d-4d8c-ab9c-d47d567f69f2", + "_testId": "urn:uuid:1e96ec56-4022-4321-a0ee-e89ba5c00f22", "_events": {}, "_eventsCount": 1, "cell": { @@ -23175,14 +27520,14 @@ "_idleTimeout": -1, "_idlePrev": null, "_idleNext": null, - "_idleStart": 52686, + "_idleStart": 40860, "_onTimeout": null, "_repeat": null, "_destroyed": true }, - "duration": 108, + "duration": 36, "state": "passed", - "speed": "slow" + "speed": "fast" } ] } @@ -23224,10 +27569,10 @@ }, "title": "Ed25519Signature 2020 Interoperability Report 1.0", "stats": [ - "Tests passed 278/308 90%", - "Tests failed 30/308 10%", - "Failures 30", + "Tests passed 291/360 80%", + "Tests failed 69/360 20%", + "Failures 69", "Tests skipped 0", - "Total tests 308" + "Total tests 360" ] } \ No newline at end of file