Classes for generating and validating XML Advanced Electronic Signatures. This package includes classes that represent the elements defined in the ETSI XML Advanced Electronic Signatures specification. The {@link iaik.xml.crypto.xades.XAdESSignature} extends the {@link javax.xml.crypto.dsig.XMLSignature} defined in JavaTM XML Digital Signature API Specification (JSR 105). {@link iaik.xml.crypto.xades.XAdESSignature}s are produced using a {@link javax.xml.crypto.dsig.XMLSignatureFactory} that supports XAdES.

The {@link iaik.xml.crypto.xades.QualifyingPropertiesFactory} is used to create QualifyingProperties elements ({@link iaik.xml.crypto.xades.SigningTime}, {@link iaik.xml.crypto.xades.SigningCertificate}, {@link iaik.xml.crypto.xades.SignaturePolicyIdentifier}, {@link iaik.xml.crypto.xades.SignatureProductionPlace}, {@link iaik.xml.crypto.xades.SignerRole}, {@link iaik.xml.crypto.xades.DataObjectFormat}, {@link iaik.xml.crypto.xades.CommitmentTypeIndication}, {@link iaik.xml.crypto.xades.AllDataObjectsTimeStamp}, {@link iaik.xml.crypto.xades.IndividualDataObjectsTimeStamp}, {@link iaik.xml.crypto.xades.CounterSignature}, {@link iaik.xml.crypto.xades.SignatureTimeStamp}, {@link iaik.xml.crypto.xades.CompleteCertificateRefs}, {@link iaik.xml.crypto.xades.CompleteRevocationRefs}, {@link iaik.xml.crypto.xades.AttributeCertificateRefs}, {@link iaik.xml.crypto.xades.AttributeRevocationRefs}, {@link iaik.xml.crypto.xades.SigAndRefsTimeStamp}, {@link iaik.xml.crypto.xades.RefsOnlyTimeStamp}, {@link iaik.xml.crypto.xades.CertificateValues}, {@link iaik.xml.crypto.xades.RevocationValues}, {@link iaik.xml.crypto.xades.ArchiveTimeStamp}) analog to {@link javax.xml.crypto.dsig.keyinfo.KeyInfoFactory} is used to create KeyInfo elements.

Unlike the {@link javax.xml.crypto.dsig.XMLSignature} the {@link iaik.xml.crypto.xades.XAdESSignature} supports appending additional (unsigned) information to an already marshaled signature, to allow for the extension of XAdES signatures with additional QualifyingProperties. Whether these changes are directly reflected by the underlying XML representation or a new XML representation must be marshaled depends on the implementation and the supported XML representation and marshaling mechanism.

The QualifyingProperties are grouped like the following: