From 1b337e50a9edb280aea49879f901613e1fe17b55 Mon Sep 17 00:00:00 2001 From: pdanner Date: Fri, 26 Nov 2010 12:01:18 +0000 Subject: Changes for xmldsig reconstruction git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@612 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../pdfas/impl/xmldsig/XMLDsigReconstructor.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/main/java/at/gv/egiz/pdfas/impl/xmldsig/XMLDsigReconstructor.java (limited to 'src/main/java/at/gv/egiz/pdfas/impl/xmldsig') diff --git a/src/main/java/at/gv/egiz/pdfas/impl/xmldsig/XMLDsigReconstructor.java b/src/main/java/at/gv/egiz/pdfas/impl/xmldsig/XMLDsigReconstructor.java new file mode 100644 index 0000000..86c6e43 --- /dev/null +++ b/src/main/java/at/gv/egiz/pdfas/impl/xmldsig/XMLDsigReconstructor.java @@ -0,0 +1,53 @@ +package at.gv.egiz.pdfas.impl.xmldsig; + +import at.gv.egiz.pdfas.api.commons.SignatureInformation; +import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData; +import at.gv.egiz.pdfas.commandline.CommandlineConnectorChooser; +import at.gv.egiz.pdfas.framework.ConnectorParameters; +import at.knowcenter.wag.egov.egiz.PdfAS; +import at.knowcenter.wag.egov.egiz.exceptions.ConnectorException; +import at.knowcenter.wag.egov.egiz.exceptions.ConnectorFactoryException; +import at.knowcenter.wag.egov.egiz.exceptions.SignatureException; +import at.knowcenter.wag.egov.egiz.pdf.SignatureHolder; +import at.knowcenter.wag.egov.egiz.sig.SignatureData; +import at.knowcenter.wag.egov.egiz.sig.SignatureObject; +import at.knowcenter.wag.egov.egiz.sig.connectors.Connector; +import at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject; +import at.knowcenter.wag.egov.egiz.sig.signatureobject.SignatureObjectHelper; + +/** + * Utility class for reconstructing xmldsig + * + * @author exthex + * + */ +public class XMLDsigReconstructor { + + /** + * Reconstructs the xmldsig from the given parameters. + * + * @param si the signature information from which to reconstruct the xmldsig + * @param connectorType the type of connector (usually BKU or MOA) to use to create the xmldsig + * @return + * @throws ConnectorException + * @throws ConnectorFactoryException + * @throws SignatureException + */ + public static XMLDsigData reconstruct(SignatureInformation si, String connectorType) throws ConnectorException, ConnectorFactoryException, SignatureException { + SignatureHolder holder = (SignatureHolder)si.getInternalSignatureInformation(); + SignatureObject sigObject = holder.getSignatureObject(); + + SignSignatureObject so = SignatureObjectHelper.convertSignatureObjectToSignSignatureObject(sigObject); + SignatureData sd = PdfAS.convertSignatureHolderToSignatureData(holder); + + String profile = sigObject.getSignatureTypeDefinition().getType(); + String connectorId = CommandlineConnectorChooser.chooseCommandlineConnectorForVerify(connectorType, sigObject.getKZ(), so.id, profile); + + ConnectorParameters cp = new ConnectorParameters(); + cp.setProfileId(profile); + Connector c = at.gv.egiz.pdfas.framework.ConnectorFactory.createConnector(connectorId, cp); + + return c.reconstructXMLDsig(sd, so); + } + +} -- cgit v1.2.3