/** * 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.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; /** * 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.signed_pdf_length = length; this.signature_object = so; this.signed_text = null; } /** * @see at.knowcenter.wag.egov.egiz.pdf.SignatureHolder#getSignedText() */ public String getSignedText() { 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; } /** * 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; } /** * Returns the signed_pdf_length. * @return Returns the signed_pdf_length. */ public int getSignedPdfLength() { return this.signed_pdf_length; } }