aere-proof-of-software/tools/proof-of-software/test/credential-control-negativ.mjs

15 lines
1.3 KiB
JavaScript

// Controlul negativ al identitatii constructorului (credential.test.mjs), prin mecanismul comun din _control.mjs: fiecare paznic
// scos intr-o copie trebuie sa inroseasca exact proba lui.
// node aerenew/tools/proof-of-software/test/credential-control-negativ.mjs
import { controleaza } from './_control.mjs';
process.exitCode = await controleaza('credential.test.mjs', [
['radacina de incredere nu se mai compara', "keyId(publicKeysOf(trustIssuer)) === keyId(b.issuer && b.issuer.keys)", 'true', '2. CONTROL'],
['semnatarul acreditarii nu mai trebuie sa fie emitentul numit', 'sv.valid && semnatarEmitent,', 'sv.valid,', '6. CONTROL'],
['cheile subiectului nu se mai compara cu semnatarul declaratiei', "!!att.signature && keyId(publicKeysOf(att.signature)) === keyId(b.subject && b.subject.keys)", '!!att.signature', '7. CONTROL'],
['valabilitatea nu se mai judeca', 'Date.parse(t) >= Date.parse(b.validFrom) && Date.parse(t) <= Date.parse(b.validUntil)', 'true', '8. CONTROL'],
['revocarile emitentului se ignora', 'if (rb.credential !== want) continue;', 'continue;', '9. revocarea'],
['timpul lantului se ignora (bate data declarata)', 'const t = chainTime || att.statement.createdAt;', 'const t = att.statement.createdAt;', '10. timpul'],
['data declarata achita din nou (B-18)', 'const declarat = !chainTime;', 'const declarat = false;', '12. B-18'],
]);