diff options
Diffstat (limited to 'moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util')
-rw-r--r-- | moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/AdESResultUtils.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/AdESResultUtils.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/AdESResultUtils.java new file mode 100644 index 0000000..90722b8 --- /dev/null +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/AdESResultUtils.java @@ -0,0 +1,70 @@ +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<ValidationReport> 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"); + } + } + +} |