package at.gv.egiz.asic.impl.verifier; import java.io.InputStream; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import at.gv.egiz.asic.api.ASiC; import at.gv.egovernment.moa.spss.MOAException; import at.gv.egovernment.moa.spss.api.SPSSFactory; import at.gv.egovernment.moa.spss.api.common.Content; import at.gv.egovernment.moa.spss.api.xmlverify.VerifySignatureInfo; import at.gv.egovernment.moa.spss.api.xmlverify.VerifySignatureLocation; import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest; import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureResponse; import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureVerificationInvoker; /** * Created by Andreas Fitzek on 6/17/16. */ public abstract class XAdESVerifier extends BaseVerifier { @Override public boolean handles(ASiC asic) { return asic.isXAdES(); } protected VerifyXMLSignatureResponse runXMLVerification(InputStream signedData, InputStream xmlSignature, String trustProfileID, Date date, List supplementsList, String location, Map namespaces) throws MOAException { if (namespaces == null) { namespaces = new HashMap(); namespaces.put("asic", "http://uri.etsi.org/02918/v1.2.1#"); namespaces.put("ds", "http://www.w3.org/2000/09/xmldsig#"); } final Content content = SPSSFactory.getInstance().createContent(xmlSignature, null); final VerifySignatureLocation verifySignatureLocation = SPSSFactory.getInstance() .createVerifySignatureLocation( location, namespaces); final VerifySignatureInfo verifySignatureInfo = SPSSFactory.getInstance().createVerifySignatureInfo( content, verifySignatureLocation); final VerifyXMLSignatureRequest verifyXMLSignatureRequest = SPSSFactory.getInstance() .createVerifyXMLSignatureRequest( date, verifySignatureInfo, supplementsList, null, false, trustProfileID, true); return XMLSignatureVerificationInvoker.getInstance().verifyXMLSignature(verifyXMLSignatureRequest); } }