From 5c1c8c5b1ee756cf72e58b826f8b46673feebcaf Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Fri, 21 Jun 2024 20:15:22 +0000 Subject: [PATCH] Add noCryptosuite test vector to MUST for proof.{type, cryptosuite}. --- tests/setup.js | 11 +++++++++++ tests/suites/verify.js | 13 +++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/tests/setup.js b/tests/setup.js index 003fd0e..f9ec5c4 100644 --- a/tests/setup.js +++ b/tests/setup.js @@ -162,6 +162,17 @@ export async function verifySetup({credentials, keyTypes, suite}) { // add a generator to turns safe mode off for proof canonize and hash generators: [allowUnsafeCanonize, invalidProofType] }); + disclosed.invalid.noCryptosuite = await deriveCredentials({ + keys, + vectors: disclosedBasicVectors, + suiteName: suite, + initialParams: { + cryptosuiteName: '' + }, + // add a generator to turns safe mode off for proof canonize and hash + generators: [allowUnsafeCanonize, invalidCryptosuite] + }); + disclosed.invalid.nonUTF8 = await deriveCredentials({ keys, vectors: disclosedBasicVectors, diff --git a/tests/suites/verify.js b/tests/suites/verify.js index 69fe67e..d078a81 100644 --- a/tests/suites/verify.js +++ b/tests/suites/verify.js @@ -112,14 +112,6 @@ export function verifySuite({ 'identifier (cryptosuite). A proof configuration object is produced ' + 'as output.', async function() { this.test.link = 'https://w3c.github.io/vc-di-bbs/#linkage-via-proof-options-and-mandatory-reveal:~:text=The%20proof%20options%20MUST%20contain%20a%20type%20identifier%20for%20the%20cryptographic%20suite%20(type)%20and%20MUST%20contain%20a%20cryptosuite%20identifier%20(cryptosuite).%20A%20proof%20configuration%20object%20is%20produced%20as%20output.'; - const credential = cloneTestVector( - disclosed?.invalid?.noProofTypeOrCryptosuite); - await verificationFail({credential, verifier}); - }); - it('The proof options MUST contain a type identifier for the ' + - 'cryptographic suite (type) and MAY contain a cryptosuite ' + - 'identifier (cryptosuite).', async function() { - this.test.link = 'https://w3c.github.io/vc-di-bbs/#linkage-via-proof-options-and-mandatory-reveal:~:text=The%20proof%20options%20MUST%20contain%20a%20type%20identifier%20for%20the%20cryptographic%20suite%20(type)%20and%20MAY%20contain%20a%20cryptosuite%20identifier%20(cryptosuite).'; await verificationFail({ credential: cloneTestVector( disclosed?.invalid?.noProofTypeOrCryptosuite), @@ -130,6 +122,11 @@ export function verifySuite({ disclosed?.invalid?.noProofType), verifier }); + await verificationFail({ + credential: cloneTestVector( + disclosed?.invalid?.noCryptosuite), + verifier + }); }); it('MUST fail to verify a base proof.', async function() {