/** * Copyright 2006 by Know-Center, Graz, Austria * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a * joint initiative of the Federal Chancellery Austria and Graz University of * Technology. * * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by * the European Commission - subsequent versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * http://www.osor.eu/eupl/ * * Unless required by applicable law or agreed to in writing, software * distributed under the Licence is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the Licence for the specific language governing permissions and * limitations under the Licence. * * This product combines work with different licenses. See the "NOTICE" text * file for details on the various modules and licenses. * The "NOTICE" text file is part of the distribution. Any derivative works * that you distribute must include a readable copy of the "NOTICE" text file. */ package at.gv.egiz.pdfas.api.xmldsig; import java.util.Date; import at.gv.egiz.pdfas.api.PdfAs; import at.gv.egiz.pdfas.api.commons.Constants; import at.gv.egiz.pdfas.api.io.DataSource; /** * Parameters for the {@link PdfAs#reconstructXMLDSIG(ReconstructXMLDsigParameters)} method. * No need to call analyze before calling this method. * * @author exthex * */ public class ReconstructXMLDsigParameters { /** * 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 returnNonTextualObjects = 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 isReturnNonTextualObjects() { return this.returnNonTextualObjects; } /** * 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 returnNonTextualObjects */ public void setReturnNonTextualObjects(boolean returnNonTextualObjects) { this.returnNonTextualObjects = returnNonTextualObjects; } }