/** * Copyright (c) 2006 by Know-Center, Graz, Austria * * This software is the confidential and proprietary information of Know-Center, * Graz, Austria. You shall not disclose such Confidential Information and shall * use it only in accordance with the terms of the license agreement you entered * into with Know-Center. * * KNOW-CENTER MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR * NON-INFRINGEMENT. KNOW-CENTER SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS * DERIVATIVES. * * $Id: BinarySignatureHolder.java,v 1.1 2006/10/11 07:58:28 wprinz Exp $ */ package at.knowcenter.wag.egov.egiz.pdf; import java.io.Serializable; import at.gv.egiz.pdfas.impl.input.ByteArrayPdfDataSourceImpl; import at.gv.egiz.pdfas.framework.input.DataSource; import at.gv.egiz.pdfas.framework.input.PdfDataSource; import at.knowcenter.wag.egov.egiz.sig.SignatureObject; /** * Data structure that holds the information of one binary signature block, * which is the signed/signable pdf and the corresponding SignatureObject. * *

* The actual signed text is computed by Base64 encoding the binary data when * first requested. *

*

* The corresponding getters can be used to retrieve the signed document (e.g. * for displaying a preview). *

* * @author wprinz */ public class BinarySignatureHolder implements Serializable, SignatureHolder { /** * SVUID. */ private static final long serialVersionUID = -7208103904479272760L; // /** // * The whole pdf this holder was extracted from. // */ // private byte[] signed_pdf = null; private PdfDataSource pdfDataSource = null; // /** // * The number of bytes that give the signed document. // */ // private int signed_pdf_length = -1; // /** // * The signed text of this object. // * // *

// * This is the value that will be signed by the Connector. // *

// */ // private String signed_text = null; /** * The signature object. */ private SignatureObject signature_object = null; // /** // * Constructor that takes the pdf and the SignatureObject as parameters. // * // * @param pdf // * The pdf data. // * @param length // * The length (number of bytes) of the pdf data to be used for being // * converted into "signed text". // * @param so // * The signed signature object. // */ // public BinarySignatureHolder(final byte[] pdf, final int length, SignatureObject so) // { //// this.signed_pdf = pdf; // this.pdfDataSource = new ByteArrayPdfDataSourceImpl(pdf); // // streaming byte array // this.signed_pdf_length = length; // this.signature_object = so; // //// this.signed_text = null; // } public BinarySignatureHolder(PdfDataSource pdf, SignatureObject so) { this.pdfDataSource = pdf; this.signature_object = so; } /** * @see at.knowcenter.wag.egov.egiz.pdf.SignatureHolder#getSignedText() */ public String getSignedText() { throw new RuntimeException("BinarySignatureHolder must not return text."); // if (this.signed_text == null) // { // computeSignedText(); // } // return this.signed_text; } /** * @see at.knowcenter.wag.egov.egiz.pdf.SignatureHolder#getSignatureObject() */ public SignatureObject getSignatureObject() { return this.signature_object; } /** * @see at.knowcenter.wag.egov.egiz.pdf.SignatureHolder#getDataSource() */ public DataSource getDataSource() { return getSignedPdf(); } // TODO obsolete funtction - remove; // /** // * Computes or recomputes the signed text from the underlying binary data. // * // *

// * This usually encodes the binary data of given length in Base64. // *

// * // *

// * This is usually called automatically when the signed text is first // * requested. // *

// */ // protected void computeSignedText() // { // this.signed_text = BinarySignature.retrieveSignableTextFromData(this.signed_pdf, this.signed_pdf_length); // } // /** // * Returns the signed_pdf. // * @return Returns the signed_pdf. // */ // public byte[] getSignedPdf() // { // return this.signed_pdf; // } public PdfDataSource getSignedPdf () { return this.pdfDataSource; } // /** // * Returns the signed_pdf_length. // * @return Returns the signed_pdf_length. // */ // public int getSignedPdfLength() // { // return this.signed_pdf_length; // } }