/** * 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. * * $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; // } }