/** * */ package at.gv.egiz.pdfas.api.sign; import at.gv.egiz.pdfas.api.commons.Constants; import at.gv.egiz.pdfas.api.io.DataSink; import at.gv.egiz.pdfas.api.io.DataSource; import at.gv.egiz.pdfas.api.sign.pos.SignaturePositioning; import at.gv.egiz.pdfas.api.timestamp.TimeStamper; /** * Parameter object that holds the sign parameters. * * @author wprinz */ public class SignParameters { /** * The document to be signed. * *

* The DataSource implementation encapsulates the actual representaion of the * data. E.g. the DataSource may be File based or byte array based. See * package at.gv.egiz.pdfas.framework.input and at.gv.pdfas.impl.input *

*/ protected DataSource document = null; /** * The type of the signature. * *

* May be {@link Constants#SIGNATURE_TYPE_BINARY} or * {@link Constants#SIGNATURE_TYPE_TEXTUAL}. *

*/ protected String signatureType = Constants.SIGNATURE_TYPE_BINARY; /** * 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 signature profile identifier identifying the profile to be used in the * config file. * *

* Note: In near future it will be possible to provide a full specified * profile here instead of the profile id. *

*/ protected String signatureProfileId = null; /** * The signature key identifier specifying which signature key should be used * by the signature device to perform the signature. * *

* Providing a null value (default) means that no explicit signature key * identifier is provided. The selected signature device will then use its * default mechanism for retrieving this information (which is usually to read * the key from the provided signature profile). *

*

* Note that not all signature devices may support this parameter. * If a signature device doesn't support this parameter the value should be null. *

*

* This key is usually passed straight through to the signature device and * thereby has to contain an appropriate value for the signature device * chosen. *

*

* Currently, only the {@link Constants#SIGNATURE_DEVICE_MOA} signature device * evaluates this parameter and passes the provided String to MOA as the MOA * key group identifier. If null is provided, the MOA signature device will * determine the signature key identifier to be used from the provided profile * and, if not specified there either, from the MOA default configuration. *

*/ protected String signatureKeyIdentifier = null; /** * The signature position. Consult the PDF-AS documentation section * Commandline. */ protected SignaturePositioning signaturePositioning = null; /** * The output DataSink that will receive the signed document. */ protected DataSink output = null; protected TimeStamper timeStamperImpl; /** * {@link #setTimeStamperImpl(TimeStamper)} * @return */ public TimeStamper getTimeStamperImpl() { return this.timeStamperImpl; } /** * Set a {@link TimeStamper} to create a timestamp on the signature value. Will be * called after sign. For binary signatures only. Timestamp will be embedded in egiz dict /TimeStamp. * @param timeStamperImpl */ public void setTimeStamperImpl(TimeStamper timeStamperImpl) { this.timeStamperImpl = timeStamperImpl; } /** * @return the document */ public DataSource getDocument() { return document; } /** * @param document * the document to set */ public void setDocument(DataSource document) { this.document = document; } /** * @return the signatureType */ public String getSignatureType() { return signatureType; } /** * @param signatureType * the signatureType to set */ public void setSignatureType(String signatureType) { this.signatureType = signatureType; } /** * @return the signatureDevice */ public String getSignatureDevice() { return signatureDevice; } /** * @param signatureDevice * the signatureDevice to set */ public void setSignatureDevice(String signatureDevice) { this.signatureDevice = signatureDevice; } /** * @return the signatureProfileId */ public String getSignatureProfileId() { return signatureProfileId; } /** * @param signatureProfileId * the signatureProfileId to set */ public void setSignatureProfileId(String signatureProfileId) { this.signatureProfileId = signatureProfileId; } /** * @return the signaturePositioning */ public SignaturePositioning getSignaturePositioning() { return this.signaturePositioning; } /** * @param signaturePositioning * the signaturePositioning to set */ public void setSignaturePositioning(SignaturePositioning signaturePositioning) { this.signaturePositioning = signaturePositioning; } /** * @return the output */ public DataSink getOutput() { return output; } /** * @param output * the output to set */ public void setOutput(DataSink output) { this.output = output; } /** * @return the signatureKeyIdentifier */ public String getSignatureKeyIdentifier() { return this.signatureKeyIdentifier; } /** * @param signatureKeyIdentifier the signatureKeyIdentifier to set */ public void setSignatureKeyIdentifier(String signatureKeyIdentifier) { this.signatureKeyIdentifier = signatureKeyIdentifier; } }