All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xades4j.xml.marshalling.DefaultSignedPropertiesMarshaller Maven / Gradle / Ivy

Go to download

The XAdES4j library is an high-level, configurable and extensible Java implementation of XML Advanced Electronic Signatures (XAdES 1.3.2 and 1.4.1). It enables producing, verifying and extending signatures in the main XAdES forms: XAdES-BES, XAdES-EPES, XAdES-T and XAdES-C. Also, extended forms are supported through the enrichment of an existing signature.

There is a newer version: 2.3.0
Show newest version
/*
 * XAdES4j - A Java library for generation and verification of XAdES signatures.
 * Copyright (C) 2010 Luis Goncalves.
 *
 * XAdES4j is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 3 of the License, or any later version.
 *
 * XAdES4j is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public License along
 * with XAdES4j. If not, see .
 */
package xades4j.xml.marshalling;

import javax.inject.Inject;
import xades4j.properties.data.SigAndDataObjsPropertiesData;
import org.w3c.dom.Node;
import xades4j.properties.QualifyingProperty;
import xades4j.properties.data.AllDataObjsTimeStampData;
import xades4j.properties.data.CommitmentTypeData;
import xades4j.properties.data.DataObjectFormatData;
import xades4j.properties.data.IndividualDataObjsTimeStampData;
import xades4j.properties.data.SignaturePolicyData;
import xades4j.properties.data.SignatureProdPlaceData;
import xades4j.properties.data.SignerRoleData;
import xades4j.properties.data.SigningCertificateData;
import xades4j.properties.data.SigningTimeData;
import xades4j.xml.bind.xades.ObjectFactory;
import xades4j.xml.bind.xades.XmlSignedDataObjectPropertiesType;
import xades4j.xml.bind.xades.XmlSignedPropertiesType;
import xades4j.xml.bind.xades.XmlSignedSignaturePropertiesType;
import xades4j.xml.marshalling.algorithms.AlgorithmsParametersMarshallingProvider;

/**
 * Default implementation of {@link SignedPropertiesMarshaller}. Based on JAXB.
 * 

* Supports all the signed properties data objects in the library (XAdES 1.4.1) * plus the {@code GenericDOMData}. * @author Luís */ final class DefaultSignedPropertiesMarshaller extends BaseJAXBMarshaller implements SignedPropertiesMarshaller { @Inject DefaultSignedPropertiesMarshaller(AlgorithmsParametersMarshallingProvider algorithmsParametersMarshallingProvider) { super(9, QualifyingProperty.SIGNED_PROPS_TAG); // Signed signature properties super.putConverter( SigningCertificateData.class, new ToXmlSigningCertificateConverter()); super.putConverter( SigningTimeData.class, new ToXmlSigningTimeConverter()); super.putConverter(SignerRoleData.class, new ToXmlSignerRoleConverter()); super.putConverter( SignatureProdPlaceData.class, new ToXmlSignatureProductionPlaceConverter()); super.putConverter( SignaturePolicyData.class, new ToXmlSignaturePolicyConverter()); // Signed data objects properties super.putConverter( DataObjectFormatData.class, new ToXmlDataObjectFormatConverter()); super.putConverter( CommitmentTypeData.class, new ToXmlCommitmentTypeConverter()); super.putConverter( IndividualDataObjsTimeStampData.class, new ToXmlIndivDataObjsTimeStampConverter(algorithmsParametersMarshallingProvider)); super.putConverter( AllDataObjsTimeStampData.class, new ToXmlAllDataObjsTimeStampConverter(algorithmsParametersMarshallingProvider)); } /* Methods from SignedPropertiesMarshaller */ @Override public void marshal(SigAndDataObjsPropertiesData signedProps, Node qualifyingPropsNode) throws MarshalException { XmlSignedPropertiesType xmlSignedProps = new XmlSignedPropertiesType(); doMarshal(signedProps, qualifyingPropsNode, xmlSignedProps); } /* Methods from BaseJAXBMarshaller */ @Override protected void prepareSigProps(XmlSignedPropertiesType xmlProps) { // Create SignedSignatureProperties and add it to SignedProperties XmlSignedSignaturePropertiesType xmlSignedSigProps = new XmlSignedSignaturePropertiesType(); xmlProps.setSignedSignatureProperties(xmlSignedSigProps); } @Override protected void prepareDataObjsProps(XmlSignedPropertiesType xmlProps) { // Create SignedDataObjectProperties and add it to SignedProperties XmlSignedDataObjectPropertiesType xmlSignedDataObjProps = new XmlSignedDataObjectPropertiesType(); xmlProps.setSignedDataObjectProperties(xmlSignedDataObjProps); } @Override protected Object createPropsXmlElem( ObjectFactory objFact, XmlSignedPropertiesType xmlProps) { return objFact.createSignedProperties(xmlProps); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy