package at.gv.egovernment.moa.spss.util; import java.util.Iterator; import java.util.List; import at.gv.egovernment.moa.spss.api.impl.AdESFormResultsImpl; import at.gv.egovernment.moaspss.logging.Logger; import iaik.esi.sva.validation.ValidationReport; import iaik.server.ConfigurationException; import iaik.server.modules.ResultCode; import iaik.server.modules.ResultCodeInvalid; import iaik.server.modules.ResultCodeValid; import iaik.server.modules.SignatureVerificationResult; public class AdESResultUtils { public static Integer getResultCode(Integer adesCode) { return adesCode; } public static void buildResult(ValidationReport report, List adesList) { if(report == null) { return; } AdESFormResultsImpl adESFormResultsImpl = new AdESFormResultsImpl(); adESFormResultsImpl.setCode(report.getStatus().ordinal()); adESFormResultsImpl.setInfo(report.getLongText()); adESFormResultsImpl.setName(report.getValidationName()); adesList.add(adESFormResultsImpl); if(report.getSubValidationReports() != null && !report.getSubValidationReports().isEmpty()) { Iterator reportIt = report.getSubValidationReports().iterator(); while(reportIt.hasNext()) { buildResult(reportIt.next(), adesList); } } } public static void checkSubResult(SignatureVerificationResult subResult, String level, List adesList) throws ConfigurationException { if (subResult != null) { Logger.info("Checking Level: " + level); try { AdESFormResultsImpl adESFormResultsImpl = new AdESFormResultsImpl(); ResultCode resultCode = subResult.getResultCode(); if(resultCode instanceof ResultCodeValid) { adESFormResultsImpl.setCode(SignatureVerificationResult.VALID);//.getResultCode().getCode())); } else if(resultCode instanceof ResultCodeInvalid) { adESFormResultsImpl.setCode(SignatureVerificationResult.INVALID); } else { adESFormResultsImpl.setCode(SignatureVerificationResult.INDETERMINATE); } Logger.info("RESULT: " + resultCode.toString()); adESFormResultsImpl.setInfo(subResult.getInfo()); adESFormResultsImpl.setName(level); adesList.add(adESFormResultsImpl); } catch (NullPointerException e) { Logger.warn("Catching NullPointer Exception, of invalid? Form Results", e); } } else { Logger.info("Subresult Level: " + level + " not available"); } } }