be.fedict.eid.applet.service.signer.facets
Class XAdESXLSignatureFacet

java.lang.Object
  extended by be.fedict.eid.applet.service.signer.facets.XAdESXLSignatureFacet
All Implemented Interfaces:
SignatureFacet

public class XAdESXLSignatureFacet
extends Object
implements SignatureFacet

XAdES-X-L v1.4.1 signature facet. This signature facet implementation will upgrade a given XAdES-BES/EPES signature to XAdES-X-L. We don't inherit from XAdESSignatureFacet as we also want to be able to use this facet out of the context of a signature creation. This signature facet assumes that the signature is already XAdES-BES/EPES compliant. This implementation has been tested against an implementation that participated multiple ETSI XAdES plugtests.

Author:
Frank Cornelis
See Also:
XAdESSignatureFacet

Field Summary
static String XADES_NAMESPACE
           
static String XADES141_NAMESPACE
           
 
Constructor Summary
XAdESXLSignatureFacet(TimeStampService timeStampService, RevocationDataService revocationDataService)
          Convenience constructor.
XAdESXLSignatureFacet(TimeStampService timeStampService, RevocationDataService revocationDataService, DigestAlgo digestAlgorithm)
          Main constructor.
 
Method Summary
static Element createNamespaceElement(Node documentNode)
           
static be.fedict.eid.applet.service.signer.jaxb.xades132.XAdESTimeStampType createXAdESTimeStamp(byte[] data, RevocationData revocationData, String c14nAlgoId, TimeStampService timeStampService, be.fedict.eid.applet.service.signer.jaxb.xades132.ObjectFactory objectFactory, be.fedict.eid.applet.service.signer.jaxb.xmldsig.ObjectFactory xmldsigObjectFactory)
           
static be.fedict.eid.applet.service.signer.jaxb.xades132.XAdESTimeStampType createXAdESTimeStamp(List<Node> nodeList, RevocationData revocationData, String c14nAlgoId, TimeStampService timeStampService, be.fedict.eid.applet.service.signer.jaxb.xades132.ObjectFactory objectFactory, be.fedict.eid.applet.service.signer.jaxb.xmldsig.ObjectFactory xmldsigObjectFactory)
           
static Node findSingleNode(Node baseNode, String xpathExpression, Element nsElement)
           
static byte[] getC14nValue(List<Node> nodeList, String c14nAlgoId)
           
static NodeList getNodes(Node baseNode, String xpathExpression, Element nsElement)
           
 void postSign(Element signatureElement, List<X509Certificate> signingCertificateChain)
          This method is being invoked by the XML signature service engine during the post-sign phase.
 void preSign(javax.xml.crypto.dsig.XMLSignatureFactory signatureFactory, Document document, String signatureId, List<X509Certificate> signingCertificateChain, List<javax.xml.crypto.dsig.Reference> references, List<javax.xml.crypto.dsig.XMLObject> objects)
          This method is being invoked by the XML signature service engine during pre-sign phase.
 void setCanonicalizerAlgorithm(String c14nAlgoId)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XADES_NAMESPACE

public static final String XADES_NAMESPACE
See Also:
Constant Field Values

XADES141_NAMESPACE

public static final String XADES141_NAMESPACE
See Also:
Constant Field Values
Constructor Detail

XAdESXLSignatureFacet

public XAdESXLSignatureFacet(TimeStampService timeStampService,
                             RevocationDataService revocationDataService)
Convenience constructor.

Parameters:
timeStampService - the time-stamp service used for XAdES-T and XAdES-X.
revocationDataService - the optional revocation data service used for XAdES-C and XAdES-X-L. When null the signature will be limited to XAdES-T only.

XAdESXLSignatureFacet

public XAdESXLSignatureFacet(TimeStampService timeStampService,
                             RevocationDataService revocationDataService,
                             DigestAlgo digestAlgorithm)
Main constructor.

Parameters:
timeStampService - the time-stamp service used for XAdES-T and XAdES-X.
revocationDataService - the optional revocation data service used for XAdES-C and XAdES-X-L. When null the signature will be limited to XAdES-T only.
digestAlgorithm - the digest algorithm to be used for construction of the XAdES-X-L elements.
Method Detail

setCanonicalizerAlgorithm

public void setCanonicalizerAlgorithm(String c14nAlgoId)

findSingleNode

public static Node findSingleNode(Node baseNode,
                                  String xpathExpression,
                                  Element nsElement)

getNodes

public static NodeList getNodes(Node baseNode,
                                String xpathExpression,
                                Element nsElement)

postSign

public void postSign(Element signatureElement,
                     List<X509Certificate> signingCertificateChain)
Description copied from interface: SignatureFacet
This method is being invoked by the XML signature service engine during the post-sign phase. Via this method a signature facet can extend the XML signatures with for example key information.

Specified by:
postSign in interface SignatureFacet

getC14nValue

public static byte[] getC14nValue(List<Node> nodeList,
                                  String c14nAlgoId)

createNamespaceElement

public static Element createNamespaceElement(Node documentNode)

preSign

public void preSign(javax.xml.crypto.dsig.XMLSignatureFactory signatureFactory,
                    Document document,
                    String signatureId,
                    List<X509Certificate> signingCertificateChain,
                    List<javax.xml.crypto.dsig.Reference> references,
                    List<javax.xml.crypto.dsig.XMLObject> objects)
             throws NoSuchAlgorithmException,
                    InvalidAlgorithmParameterException
Description copied from interface: SignatureFacet
This method is being invoked by the XML signature service engine during pre-sign phase. Via this method a signature facet implementation can add signature facets to an XML signature.

Specified by:
preSign in interface SignatureFacet
signingCertificateChain - the optional signing certificate chain
Throws:
NoSuchAlgorithmException
InvalidAlgorithmParameterException

createXAdESTimeStamp

public static be.fedict.eid.applet.service.signer.jaxb.xades132.XAdESTimeStampType createXAdESTimeStamp(List<Node> nodeList,
                                                                                                        RevocationData revocationData,
                                                                                                        String c14nAlgoId,
                                                                                                        TimeStampService timeStampService,
                                                                                                        be.fedict.eid.applet.service.signer.jaxb.xades132.ObjectFactory objectFactory,
                                                                                                        be.fedict.eid.applet.service.signer.jaxb.xmldsig.ObjectFactory xmldsigObjectFactory)

createXAdESTimeStamp

public static be.fedict.eid.applet.service.signer.jaxb.xades132.XAdESTimeStampType createXAdESTimeStamp(byte[] data,
                                                                                                        RevocationData revocationData,
                                                                                                        String c14nAlgoId,
                                                                                                        TimeStampService timeStampService,
                                                                                                        be.fedict.eid.applet.service.signer.jaxb.xades132.ObjectFactory objectFactory,
                                                                                                        be.fedict.eid.applet.service.signer.jaxb.xmldsig.ObjectFactory xmldsigObjectFactory)


Copyright © 2008-2012 FedICT. All Rights Reserved.