Class XAdESBuilder

java.lang.Object
eu.europa.esig.dss.xades.signature.XAdESBuilder
Direct Known Subclasses:
ExtensionBuilder, XAdESSignatureBuilder

public abstract class XAdESBuilder
extends Object
Builds a XAdES signature
  • Field Details

    • REFERENCED_DATA

      public static final String REFERENCED_DATA
      The attribute used for timestamp includes
      See Also:
      Constant Field Values
    • TARGET

      public static final String TARGET
      The qualifying properties target
      See Also:
      Constant Field Values
    • URI

      public static final String URI
      The URI attribute
      See Also:
      Constant Field Values
    • xadesPaths

      protected XAdESPaths xadesPaths
      This variable holds the XAdESPaths which contains all constants and queries needed to cope with the default signature schema.
    • params

      protected XAdESSignatureParameters params
      This variable is a reference to the set of parameters relating to the structure and process of the creation or extension of the electronic signature.
    • documentDom

      protected Document documentDom
      This is the variable which represents the root XML document root (with signature).
    • certificateVerifier

      protected CertificateVerifier certificateVerifier
      Reference to the object in charge of certificates validation
  • Constructor Details

    • XAdESBuilder

      protected XAdESBuilder​(CertificateVerifier certificateVerifier)
      The default constructor.
      Parameters:
      certificateVerifier - CertificateVerifier
  • Method Details

    • incorporateDigestMethod

      protected void incorporateDigestMethod​(Element parentDom, DigestAlgorithm digestAlgorithm)
      This method creates the ds:DigestMethod DOM object
       
       		<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
       
       
      Parameters:
      parentDom - the parent element
      digestAlgorithm - the digest algorithm xml identifier
    • incorporateDigestValue

      protected void incorporateDigestValue​(Element parentDom, DigestAlgorithm digestAlgorithm, DSSDocument originalDocument)
      This method creates the ds:DigestValue DOM object.
       
       		<ds:DigestValue>fj8SJujSXU4fi342bdtiKVbglA0=</ds:DigestValue>
       
       
      Parameters:
      parentDom - the parent element
      digestAlgorithm - the digest algorithm to be used
      originalDocument - the document to be digested
    • incorporateDigestValue

      protected void incorporateDigestValue​(Element parentDom, DigestAlgorithm digestAlgorithm, Token token)
      This method creates the ds:DigestValue DOM object.
       
       		<ds:DigestValue>fj8SJujSXU4fi342bdtiKVbglA0=</ds:DigestValue>
       
       
      Parameters:
      parentDom - the parent element
      digestAlgorithm - the digest algorithm to use
      token - the token to be digested
    • incorporateCertificateRef

      protected void incorporateCertificateRef​(Element signingCertificateDom, Set<CertificateToken> certificates)
      Incorporates the certificate's references as a child of the given parent node. The first element of the X509Certificate List MUST be the signing certificate.
      Parameters:
      signingCertificateDom - DOM parent element
      certificates - List of the certificates to be incorporated
    • incorporateCert

      protected Element incorporateCert​(Element parentDom, CertificateToken certificate)
      Creates Cert DOM object:
       
       		<Cert>
       			<CertDigest>
       				<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
       				<ds:DigestValue>fj8SJujSXU4fi342bdtiKVbglA0=</ds:DigestValue>
       			</CertDigest>
       			<IssuerSerial>
       				<ds:X509IssuerName>CN=ICA A,O=DSS,C=AA</ds:X509IssuerName>
       				<ds:X509SerialNumber>4</ds:X509SerialNumber>
      			</IssuerSerial>
      		</Cert>
       
       
      Parameters:
      parentDom - the parent element
      certificate - the certificate to be added
      Returns:
      Element
    • incorporateIssuerV1

      protected void incorporateIssuerV1​(Element parentDom, CertificateToken certificate)
      Incorporates IssuerSerial element
      Parameters:
      parentDom - Element
      certificate - CertificateToken to get issuer for
    • incorporateIssuerV2

      protected void incorporateIssuerV2​(Element parentDom, CertificateToken certificate)
      Incorporates IssuerSerialV2 element
      Parameters:
      parentDom - Element
      certificate - CertificateToken to get issuer for
    • getReferenceDigestAlgorithmOrDefault

      protected DigestAlgorithm getReferenceDigestAlgorithmOrDefault​(XAdESSignatureParameters params)
      Returns params.referenceDigestAlgorithm if exists, params.digestAlgorithm otherwise
      Parameters:
      params - XAdESSignatureParameters
      Returns:
      DigestAlgorithm
    • createXmlDocument

      protected DSSDocument createXmlDocument()
      Creates DSSDocument from the current documentDom
      Returns:
      DSSDocument
    • alignNodes

      protected abstract void alignNodes()
    • getXmldsigNamespace

      protected DSSNamespace getXmldsigNamespace()
      This method returns the current used XMLDSig namespace
      Returns:
      DSSNamespace
    • getXadesNamespace

      protected DSSNamespace getXadesNamespace()
      This method returns the current used XAdES namespace
      Returns:
      DSSNamespace
    • getXades141Namespace

      protected DSSNamespace getXades141Namespace()
      This method returns the current used XAdES 1.4.1 namespace
      Returns:
      DSSNamespace
    • getCurrentXAdESElements

      protected XAdESElement getCurrentXAdESElements()
      Gets a relevant class containing the list of elements
      Returns:
      XAdESElement implementation
    • getCurrentXAdESPaths

      protected XAdESPaths getCurrentXAdESPaths()
      Gets a relevant class containing the list of paths
      Returns:
      XAdESPaths implementation