Added probes for evidence

This commit is contained in:
Xavi Aracil
2023-01-05 11:43:19 +01:00
parent 1fe23b7278
commit d654b12919
5 changed files with 124 additions and 0 deletions
@@ -44,6 +44,7 @@ import org.oneedtech.inspect.vc.probe.ExpirationProbe;
import org.oneedtech.inspect.vc.probe.InlineJsonSchemaProbe;
import org.oneedtech.inspect.vc.probe.IssuanceProbe;
import org.oneedtech.inspect.vc.probe.EmbeddedProofProbe;
import org.oneedtech.inspect.vc.probe.EvidenceProbe;
import org.oneedtech.inspect.vc.probe.RevocationListProbe;
import org.oneedtech.inspect.vc.probe.ExternalProofProbe;
import org.oneedtech.inspect.vc.probe.TypePropertyProbe;
@@ -202,6 +203,11 @@ public class OB30Inspector extends VCInspector implements SubInspector {
if(broken(accumulator)) return abort(ctx, accumulator, probeCount);
}
// evidence
probeCount++;
accumulator.add(new EvidenceProbe().run(ob.getJson(), ctx));
if(broken(accumulator)) return abort(ctx, accumulator, probeCount);
//embedded endorsements
EndorsementInspector endorsementInspector = new EndorsementInspector.Builder().build();
@@ -0,0 +1,38 @@
package org.oneedtech.inspect.vc.probe;
import java.util.List;
import org.oneedtech.inspect.core.probe.Probe;
import org.oneedtech.inspect.core.probe.RunContext;
import org.oneedtech.inspect.core.report.ReportItems;
import org.oneedtech.inspect.vc.util.JsonNodeUtil;
import com.fasterxml.jackson.databind.JsonNode;
public class EvidenceProbe extends Probe<JsonNode> {
public EvidenceProbe() {
super(ID);
}
@Override
public ReportItems run(JsonNode root, RunContext ctx) throws Exception {
if (root.hasNonNull("evidence")) {
/*
* evidence is an array, so check type of each element
*/
List<JsonNode> evidences = JsonNodeUtil.asNodeList(root.get("evidence"));
for (JsonNode evidence : evidences) {
// check that type contains "Evidence"
if (!JsonNodeUtil.asStringList(evidence.get("type")).contains("Evidence")) {
return error("evidence is not of type \"Evidence\"", ctx);
}
}
}
return success(ctx);
}
public static final String ID = EvidenceProbe.class.getSimpleName();
}