/** * */ package at.gv.egiz.pdfas.api.verify; import java.util.Date; import at.gv.egiz.pdfas.api.commons.Constants; import at.gv.egiz.pdfas.api.io.DataSource; /** * Parameter object that holds the verify parameters. * * @author wprinz */ public class VerifyParameters { // This would be a perfect point for multiple inheritance in Java. // VerifyParameters extends AnalyzeParameters, VerifyAfterAnalysisParameters // Then a lot of code could be easily reused in the PdfAsObject's check*Parameters methods. /** * The document to be verified. */ protected DataSource document = null; /** * The signature device to perform the actual signature. * *
* May be {@link Constants#SIGNATURE_DEVICE_MOA} or * {@link Constants#SIGNATURE_DEVICE_BKU}. *
*/ protected String signatureDevice = Constants.SIGNATURE_DEVICE_MOA; /** * The mode of operation how the document is analyzed. * ** May be {@link Constants#VERIFY_MODE_BINARY_ONLY} to check the document for * binary signatures only (very fast). Or may be * {@link Constants#VERIFY_MODE_SEMI_CONSERVATIVE} to perform a semi * conservative (optimized) text and binary verification (slow). Or may be * {@link Constants#VERIFY_MODE_FULL_CONSERVATIVE} to perform a full * conservative text and binary verification (very slow). *
*/ protected String verifyMode = Constants.VERIFY_MODE_FULL_CONSERVATIVE; /** * The (zero based) index of the signature to verify. * ** This allows to verify only one found signature instead of all. {@link Constants#VERIFY_ALL} means to * verify all found signatures. *
*/ protected int signatureToVerify = Constants.VERIFY_ALL; /** * Allows to pass a VerificationTime to the verification device. * ** Note that the actual usage of this parameter depends on the verification 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; protected boolean returnNonTextObjects = false; /** * @return the document */ public DataSource getDocument() { return this.document; } /** * @param document * the document to set */ public void setDocument(DataSource document) { this.document = document; } /** * @return the signatureDevice */ public String getSignatureDevice() { return this.signatureDevice; } /** * @param signatureDevice * the signatureDevice to set */ public void setSignatureDevice(String signatureDevice) { this.signatureDevice = signatureDevice; } /** * @return the verifyMode */ public String getVerifyMode() { return this.verifyMode; } /** * @param verifyMode * the verifyMode to set */ public void setVerifyMode(String verifyMode) { this.verifyMode = verifyMode; } /** * @return the signatureToVerify */ public int getSignatureToVerify() { return this.signatureToVerify; } /** * @param signatureToVerify * the signatureToVerify to set */ public void setSignatureToVerify(int signatureToVerify) { this.signatureToVerify = signatureToVerify; } /** * @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; } public boolean isReturnNonTextObjects() { return this.returnNonTextObjects; } /** * Tells if non text object of the signed pdf should be extracted and returned. * One should show this to the user, especially in case of textual signature. * Defaults to false * * @param returnNonTextObjects */ public void setReturnNonTextObjects(boolean returnNonTextObjects) { this.returnNonTextObjects = returnNonTextObjects; } }