ministero-salute / dcc-utils

Set of utilities to read EU Digital COVID Certificates, verify signatures and rules.
GNU Affero General Public License v3.0
65 stars 16 forks source link

invalid CertLogic expression: undefined #17

Closed belqit closed 2 years ago

belqit commented 2 years ago
    const dcc = await DCC.fromRaw(code.data);
    var myCert = require("./certificates.json")
    const verified = await dcc.checkSignatureWithKeysList(myCert);
    if (verified) {

        const VR_DE_0001_RULE_URL = "https://get.dgc.gov.it/v1/dgc/settings";
        const response = await fetch(VR_DE_0001_RULE_URL);
        const ruleJSON = await response.json();
        const rule = Rule.fromJSON(ruleJSON, {
            validationClock: new Date().toISOString(),
        });

        rule.evaluateDCC(dcc)
    }

la verifica del certificato funziona, ma restituisce questo errore nel momento in cui provo ad applicare le rules:

image

sto utilizzando node.js 14

Lorenzo-Venturelli commented 2 years ago

Questo errore è dato dal fatto che le business rules fornite dal gateway italiano NON sono in formato standard CertLogic, che è il formato definito dall'UE per la creazione di regole interoperabili. Le utils presenti in questo repository implementano lo standard europeo, senza tenere conto del fatto che il gateway italiano fornisce un formato diverso di regole.

Da quanto ne so non c'è una API esposta dal gateway italiano per recuperare le regole in formato CertLogic al momento...

lucadentella commented 2 years ago

confermo, vedi #4 per una spiegazione approfondita. In tale issue @astagi scriveva che le regole italiane sarebbero state rese disponibili, non so se si ha una previsione di data (vedo che anche l'SDK appena pubblicato le mantiene hardcoded)

astagi commented 2 years ago

Si esatto le regole italiane sono ancora hardcoded e l'unica variabile sono i settings presi da quella API. Purtroppo non ho aggiornamenti in merito all'upload delle rule in certlogic per l'Italia.