/** * 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. */ package at.gv.egiz.pdfas.impl.api.commons; import java.security.cert.X509Certificate; import java.util.Date; import java.util.List; import at.gv.egiz.pdfas.api.commons.Constants; import at.gv.egiz.pdfas.api.commons.SignatureInformation; import at.gv.egiz.pdfas.api.io.DataSource; import at.knowcenter.wag.egov.egiz.pdf.BinarySignatureHolder; import at.knowcenter.wag.egov.egiz.pdf.EGIZDate; import at.knowcenter.wag.egov.egiz.pdf.SignatureHolder; /** * Adapter that converts a framework SignatureHolder to an API * SignatureInformation. * * @author wprinz */ public class SignatureInformationAdapter implements SignatureInformation { /** * The framework SignatureHolder to be adapted to an API SignatureInformation. */ protected SignatureHolder signatureHolder = null; protected String timeStamp = null; protected List nonTextualObjects = null; /** * Constructor. * * @param signatureHolder * The framework SignatureHolder to be adapted to an API * SignatureInformation. */ public SignatureInformationAdapter(SignatureHolder signatureHolder) { this.signatureHolder = signatureHolder; if (signatureHolder instanceof BinarySignatureHolder) { this.timeStamp = ((BinarySignatureHolder)signatureHolder).getSignatureObject().getTimeStamp(); } } /** * @see at.gv.egiz.pdfas.api.commons.SignatureInformation#getSignedData() */ public DataSource getSignedData() { return new DataSourceApiAdapter(this.signatureHolder.getDataSource()); } /** * @see at.gv.egiz.pdfas.api.commons.SignatureInformation#getInternalSignatureInformation() */ public Object getInternalSignatureInformation() { return this.signatureHolder; } /** * @see at.gv.egiz.pdfas.api.commons.SignatureInformation#getSignatureType() */ public String getSignatureType() { if (this.signatureHolder.getSignatureObject().isBinary()) { return Constants.SIGNATURE_TYPE_BINARY; } return Constants.SIGNATURE_TYPE_TEXTUAL; } /** * @see at.gv.egiz.pdfas.api.commons.SignatureInformation#getSignerCertificate() */ public X509Certificate getSignerCertificate() { return this.signatureHolder.getSignatureObject().getX509Cert().getX509Certificate(); } /** * @see at.gv.egiz.pdfas.api.commons.SignatureInformation#getSigningTime() */ public Date getSigningTime() { String date_value = this.signatureHolder.getSignatureObject().getSignationDate(); Date date = EGIZDate.parseDateFromString(date_value); return date; } public String getTimeStampValue() { return this.timeStamp; } public List getNonTextualObjects() { return this.nonTextualObjects; } public boolean hasNonTextualObjects() { return this.nonTextualObjects != null && this.nonTextualObjects.size() > 0; } public void setNonTextualObjects(List nonTextualObjects) { this.nonTextualObjects = nonTextualObjects; } }