From 1faaccc18a3ccbc7b827da8956fb9783e9713228 Mon Sep 17 00:00:00 2001 From: pdanner Date: Fri, 10 Dec 2010 13:08:35 +0000 Subject: Removed unnecessary parameters from ReconstructXMLDsigAfterAnalysisParameters; Added getReconstructedXMLDsig() method to VerifyResult git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@700 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../at/gv/egiz/pdfas/api/verify/VerifyResult.java | 10 +++++ .../ReconstructXMLDsigAfterAnalysisParameters.java | 52 ---------------------- .../at/gv/egiz/pdfas/impl/api/PdfAsObject.java | 16 ++----- .../impl/api/internal/PdfAsInternalObject.java | 2 +- .../pdfas/impl/api/verify/VerifyResultAdapter.java | 14 +++++- 5 files changed, 27 insertions(+), 67 deletions(-) (limited to 'src/main/java/at/gv/egiz/pdfas') diff --git a/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResult.java b/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResult.java index bd62d4a..73b3968 100644 --- a/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResult.java +++ b/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResult.java @@ -3,9 +3,11 @@ package at.gv.egiz.pdfas.api.verify; import java.util.Date; import java.util.List; +import at.gv.egiz.pdfas.api.PdfAs; import at.gv.egiz.pdfas.api.analyze.NonTextObjectInfo; import at.gv.egiz.pdfas.api.commons.SignatureInformation; import at.gv.egiz.pdfas.api.exceptions.PdfAsException; +import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData; /** * Encapsulates the data of a verification of one signature. @@ -142,5 +144,13 @@ public interface VerifyResult extends SignatureInformation */ public boolean hasNonTextualObjects(); + /** + * Get the reconstructed xmldsig XML data. The reconstruction is done during the verification process. + * + * @see PdfAs#reconstructXMLDSIG(at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigParameters) + * @see PdfAs#reconstructXMLDSIG(at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigAfterAnalysisParameters) + * @return + */ + public XMLDsigData getReconstructedXMLDsig(); } diff --git a/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigAfterAnalysisParameters.java b/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigAfterAnalysisParameters.java index 1f0ecc5..1975a27 100644 --- a/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigAfterAnalysisParameters.java +++ b/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigAfterAnalysisParameters.java @@ -1,7 +1,5 @@ package at.gv.egiz.pdfas.api.xmldsig; -import java.util.Date; - import at.gv.egiz.pdfas.api.analyze.AnalyzeResult; import at.gv.egiz.pdfas.api.commons.Constants; @@ -29,22 +27,6 @@ public class ReconstructXMLDsigAfterAnalysisParameters { */ protected String signatureDevice = Constants.SIGNATURE_DEVICE_MOA; - /** - * Allows to pass a VerificationTime to the signature device. - */ - protected Date verificationTime = null; - - /** - * Tells the signature device (e.g. MOA) to return the signature hash input - * data (which is the probably transformed signed data). - * - *

- * Note that this forces MOA to return the potentially large signature data to - * be returned in the result XML, which may result in very bad performance. - *

- */ - protected boolean returnHashInputData = false; - /** * @return the analyzeResult */ @@ -78,38 +60,4 @@ public class ReconstructXMLDsigAfterAnalysisParameters { { this.signatureDevice = signatureDevice; } - - /** - * @return the verificationTime - */ - public Date getVerificationTime() - { - return this.verificationTime; - } - - /** - * @param verificationTime the verificationTime to set - */ - public void setVerificationTime(Date verificationTime) - { - this.verificationTime = verificationTime; - } - - /** - * @return the returnHashInputData - */ - public boolean isReturnHashInputData() - { - return this.returnHashInputData; - } - - /** - * @param returnHashInputData - * the returnHashInputData to set - */ - public void setReturnHashInputData(boolean returnHashInputData) - { - this.returnHashInputData = returnHashInputData; - } - } diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java b/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java index dc6e106..1cb158e 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java @@ -370,9 +370,7 @@ public class PdfAsObject implements PdfAs ReconstructXMLDsigAfterAnalysisParameters reconstructParams, VerifyAfterAnalysisParameters verifyAfterAnalysisParameters) { reconstructParams.setAnalyzeResult(verifyAfterAnalysisParameters.getAnalyzeResult()); - reconstructParams.setReturnHashInputData(verifyAfterAnalysisParameters.isReturnHashInputData()); reconstructParams.setSignatureDevice(verifyAfterAnalysisParameters.getSignatureDevice()); - reconstructParams.setVerificationTime(verifyAfterAnalysisParameters.getVerificationTime()); } /** @@ -515,20 +513,12 @@ public class PdfAsObject implements PdfAs AnalyzeResult ar = analyze(analyzeParameters); ReconstructXMLDsigAfterAnalysisParameters rxaap = new ReconstructXMLDsigAfterAnalysisParameters(); - fillReconstructXMLDsigAfterAnalysisParametersWithReconstructXMLDsigParameters(rxaap, reconstructXMLDsigParameters); + rxaap.setSignatureDevice(reconstructXMLDsigParameters.getSignatureDevice()); rxaap.setAnalyzeResult(ar); return reconstructXMLDSIG(rxaap); } - protected void fillReconstructXMLDsigAfterAnalysisParametersWithReconstructXMLDsigParameters( - ReconstructXMLDsigAfterAnalysisParameters rxaap, - ReconstructXMLDsigParameters reconstructXMLDsigParameters) { - rxaap.setReturnHashInputData(reconstructXMLDsigParameters.isReturnHashInputData()); - rxaap.setSignatureDevice(reconstructXMLDsigParameters.getSignatureDevice()); - rxaap.setVerificationTime(reconstructXMLDsigParameters.getVerificationTime()); - } - /** * @see PdfAs#reconstructXMLDSIG(ReconstructXMLDsigAfterAnalysisParameters) */ @@ -579,7 +569,7 @@ public class PdfAsObject implements PdfAs ExtendedSignatureInformation extSigInfo = (ExtendedSignatureInformation)extSignatures.get(i); SignatureHolder holder = (SignatureHolder) extSigInfo.getSignatureInformation().getInternalSignatureInformation(); - VerifyResult vr = new VerifyResultAdapter(response, holder, verifyAfterReconstructXMLDsigParameters.getVerificationTime()); + VerifyResult vr = new VerifyResultAdapter(response, holder, verifyAfterReconstructXMLDsigParameters.getVerificationTime(), extSigInfo.getXmlDsigData()); vr.setNonTextualObjects( extSigInfo.getSignatureInformation().getNonTextualObjects()); vrs.add(vr); @@ -589,7 +579,7 @@ public class PdfAsObject implements PdfAs ExtendedSignatureInformation extSigInfo = (ExtendedSignatureInformation)extSignatures.get(verifySignatureIndex); SignatureHolder holder = (SignatureHolder) extSigInfo.getSignatureInformation().getInternalSignatureInformation(); - VerifyResult vr = new VerifyResultAdapter(response, holder, verifyAfterReconstructXMLDsigParameters.getVerificationTime()); + VerifyResult vr = new VerifyResultAdapter(response, holder, verifyAfterReconstructXMLDsigParameters.getVerificationTime(), extSigInfo.getXmlDsigData()); vr.setNonTextualObjects( extSigInfo.getSignatureInformation().getNonTextualObjects()); vrs.add(vr); diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java b/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java index 4e36c24..747f6b0 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java @@ -272,7 +272,7 @@ public class PdfAsInternalObject implements PdfAsInternal { Properties props = new Properties(); props.setProperty(BKUPostConnection.RESPONSE_STRING_KEY, xmlResponse); SignatureResponse sigResponse = local_conn.analyzeVerifyResponse(props); - return new VerifyResultAdapter(sigResponse, holder, null); + return new VerifyResultAdapter(sigResponse, holder, null, null); // timestamp and xmldsig not needed here } /** diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/verify/VerifyResultAdapter.java b/src/main/java/at/gv/egiz/pdfas/impl/api/verify/VerifyResultAdapter.java index b640bc7..265c916 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/verify/VerifyResultAdapter.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/verify/VerifyResultAdapter.java @@ -14,6 +14,7 @@ import org.apache.commons.logging.LogFactory; import at.gv.egiz.pdfas.api.exceptions.PdfAsException; import at.gv.egiz.pdfas.api.verify.SignatureCheck; import at.gv.egiz.pdfas.api.verify.VerifyResult; +import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData; import at.gv.egiz.pdfas.impl.api.commons.SignatureInformationAdapter; import at.knowcenter.wag.egov.egiz.exceptions.SettingNotFoundException; import at.knowcenter.wag.egov.egiz.pdf.BinarySignatureHolder; @@ -38,6 +39,8 @@ public class VerifyResultAdapter extends SignatureInformationAdapter implements protected Date vTime = null; private String timestamp; + + private XMLDsigData xmlDsigData; /** @@ -49,12 +52,14 @@ public class VerifyResultAdapter extends SignatureInformationAdapter implements * The SignatureHolder. * @param verificationTime * The time of verification. This is directly returned by {@link #getVerificationTime()} + * @param xmlDsigData */ - public VerifyResultAdapter(SignatureResponse sigRes, SignatureHolder sh, Date verificationTime) + public VerifyResultAdapter(SignatureResponse sigRes, SignatureHolder sh, Date verificationTime, XMLDsigData xmlDsigData) { super(sh); this.sigRes = sigRes; this.vTime = verificationTime; + this.xmlDsigData = xmlDsigData; if (sh instanceof BinarySignatureHolder) { this.timestamp = ((BinarySignatureHolder)sh).getSignatureObject().getTimeStamp(); } @@ -169,5 +174,12 @@ public class VerifyResultAdapter extends SignatureInformationAdapter implements public boolean isVerificationDone() { return this.sigRes.getVerificationImpossibleEx() == null; } + + /** + * @see VerifyResult#getReconstructedXMLDsig() + */ + public XMLDsigData getReconstructedXMLDsig() { + return this.xmlDsigData; + } } -- cgit v1.2.3