From 1d3510e5efa2f6ef0f5a558e54ed765f9f7c5ef3 Mon Sep 17 00:00:00 2001 From: knowcenter Date: Fri, 13 Apr 2007 12:20:42 +0000 Subject: git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@69 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../signators/DetachedfTextualSignator_1_0_0.java | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 src/main/java/at/knowcenter/wag/egov/egiz/framework/signators/DetachedfTextualSignator_1_0_0.java (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/framework/signators') diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/framework/signators/DetachedfTextualSignator_1_0_0.java b/src/main/java/at/knowcenter/wag/egov/egiz/framework/signators/DetachedfTextualSignator_1_0_0.java new file mode 100644 index 0000000..0de4bc4 --- /dev/null +++ b/src/main/java/at/knowcenter/wag/egov/egiz/framework/signators/DetachedfTextualSignator_1_0_0.java @@ -0,0 +1,112 @@ +/** + * 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: TextualSignator_1_0_0.java,v 1.3 2006/10/31 08:07:50 wprinz Exp $ + */ +package at.knowcenter.wag.egov.egiz.framework.signators; + +import java.io.UnsupportedEncodingException; + +import at.knowcenter.wag.egov.egiz.PdfAS; +import at.knowcenter.wag.egov.egiz.PdfASID; +import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException; +import at.knowcenter.wag.egov.egiz.exceptions.PresentableException; +import at.knowcenter.wag.egov.egiz.framework.SignResult; +import at.knowcenter.wag.egov.egiz.framework.Signator; +import at.knowcenter.wag.egov.egiz.framework.SignatorFactory; +import at.knowcenter.wag.egov.egiz.pdf.BinarySignature; +import at.knowcenter.wag.egov.egiz.pdf.IncrementalUpdateInformation; +import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction; +import at.knowcenter.wag.egov.egiz.pdf.TablePos; + +import com.lowagie.text.pdf.PdfPTable; + +/** + * Signs a document textually. + * + *

+ * In prepareSign, the document text is extracted and normalized. + *

+ *

+ * In finishSign, the signed SignatureObject is transformed into a Signature + * block, which is then written as an Incremental Update. + *

+ * + * @author wprinz + */ +public class DetachedfTextualSignator_1_0_0 implements Signator +{ + /** + * The Mime Type. + */ + public static final String MIME_TYPE = "text/xml"; + + /** + * The Pdf-AS ID of this Signator. + */ + public static final PdfASID MY_ID = new PdfASID(SignatorFactory.VENDOR, SignatorFactory.TYPE_DETACHED_TEXTUAL, SignatorFactory.VERSION_1_0_0); + + /** + * Default constructor. + */ + public DetachedfTextualSignator_1_0_0() + { + // Default constructor. + } + + /** + *

+ * The parameter has_SIG_ID is not used by this Signator because it doesn't + * pre-format the signature block. + *

+ * + * @see at.knowcenter.wag.egov.egiz.framework.Signator#prepareSign(byte[], + * String, TablePos, boolean) + */ + public IncrementalUpdateInformation prepareSign(byte[] pdf, + String signature_type, TablePos pos, boolean has_SIG_ID) throws PresentableException + { + IncrementalUpdateInformation iui = new IncrementalUpdateInformation(); + iui.original_document = pdf; + iui.signature_type = signature_type; + iui.pos = pos; + + iui.document_text = PdfAS.extractNormalizedTextTextual(pdf); + // logger_.debug("signed_text = " + document_text); + + return iui; + } + + /** + * @see at.knowcenter.wag.egov.egiz.framework.Signator#finishSign(at.knowcenter.wag.egov.egiz.pdf.IncrementalUpdateInformation) + */ + public SignResult finishSign(IncrementalUpdateInformation iui) throws PresentableException + { + try + { + String response = iui.signed_signature_object.getRawSignatureResponse(); + byte[] response_bytes = response.getBytes("UTF-8"); + + SignResult sign_result = new SignResult(MIME_TYPE, response_bytes); + return sign_result; + } + catch (UnsupportedEncodingException e) + { + e.printStackTrace(); + throw new PDFDocumentException(300, e); + } + } + +} -- cgit v1.2.3