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:
    • TARGET

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

      public static final String URI
      The URI attribute
      See Also:
    • 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()
      Empty constructor
    • XAdESBuilder

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

    • incorporateCertDigest

      protected void incorporateCertDigest(Element parentDom, DigestAlgorithm digestAlgorithm, Token token)
      This method creates the xades:CertDigest DOM object.
       
       		<CertDigest>
       	       <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
       	       <ds:DigestValue>fj8SJujSXU4fi342bdtiKVbglA0=</ds:DigestValue>
       	    </CertDigest>
       
       
      Parameters:
      parentDom - the parent element
      digestAlgorithm - the digest algorithm to use
      token - the token to be digested
    • incorporateDigestMethod

      protected void incorporateDigestMethod(Element parentDom, DigestAlgorithm digestAlgorithm)
      This method creates the ds:DigestMethod DOM object.
       
       	   <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
       
       
      Parameters:
      parentDom - the parent element
      digestAlgorithm - the digest algorithm to use
    • incorporateDigestValue

      protected void incorporateDigestValue(Element parentDom, DigestAlgorithm digestAlgorithm, Token token)
      This method creates the ds:DigestValue DOM object for a given Token
       
       	   <ds:DigestValue>fj8SJujSXU4fi342bdtiKVbglA0=</ds:DigestValue>
       
       
      Parameters:
      parentDom - the parent element
      digestAlgorithm - the digest algorithm to use
      token - Token to compute Digest from
    • incorporateDigestValue

      protected void incorporateDigestValue(Element parentDom, String base64EncodedDigestBytes)
      This method creates the ds:DigestValue DOM object.
       
       	   <ds:DigestValue>fj8SJujSXU4fi342bdtiKVbglA0=</ds:DigestValue>
       
       
      Parameters:
      parentDom - Element the parent element
      base64EncodedDigestBytes - String base64 encoded digest value
    • incorporateCert

      protected Element incorporateCert(Element parentDom, CertificateToken certificate, DigestAlgorithm digestAlgorithm)
      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
      digestAlgorithm - DigestAlgorithm to use
      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()
      This method is used to align children indents
    • 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
    • incorporateSPDocSpecification

      protected void incorporateSPDocSpecification(Element parentElement, SpDocSpecification spDocSpecification)
      Creates SpDocSpecification DOM object:
       
       	<xades141:SPDocSpecification xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#">
       	    <xades:Identifier>1.2.3.4.5</xades:Identifier>
       	</xades141:SPDocSpecification>
       
       
      Parameters:
      parentElement - Element element to create the new object inside
      spDocSpecification - SpDocSpecification