From 6025b6016517c6d898d8957d1d7e03ba71431912 Mon Sep 17 00:00:00 2001 From: tknall Date: Fri, 1 Dec 2006 12:20:24 +0000 Subject: Initial import of release 2.2. git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@4 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../wag/egov/egiz/pdf/BinarySignatureHolder.java | 146 +++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignatureHolder.java (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignatureHolder.java') diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignatureHolder.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignatureHolder.java new file mode 100644 index 0000000..1f522ff --- /dev/null +++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignatureHolder.java @@ -0,0 +1,146 @@ +/** + * 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; + } + +} -- cgit v1.2.3