Class XAdESSignature
java.lang.Object
eu.europa.esig.dss.validation.DefaultAdvancedSignature
eu.europa.esig.dss.xades.validation.XAdESSignature
- All Implemented Interfaces:
AdvancedSignature,Serializable
public class XAdESSignature extends DefaultAdvancedSignature
Parse an XAdES signature structure. Note that for each signature to be validated a new instance of this object must
be created.
- See Also:
- Serialized Form
-
Field Summary
Fields inherited from class eu.europa.esig.dss.validation.DefaultAdvancedSignature
counterSignatures, detachedContents, manifestFile, offlineCertificateSource, referenceValidations, signatureCRLSource, signatureCryptographicVerification, signatureIdentifier, signatureOCSPSource, signaturePolicy, signatureTimestampSource, signingCertificateSource, structureValidationMessages -
Constructor Summary
Constructors Constructor Description XAdESSignature(Element signatureElement)This constructor is used when creating the signature.XAdESSignature(Element signatureElement, List<XAdESPaths> xadesPathsHolders)The default constructor for XAdESSignature. -
Method Summary
Modifier and Type Method Description voidcheckSignatureIntegrity()Verifies the signature integrity; checks if the signed content has not been tampered with.SignatureCertificateSourcegetCertificateSource()Gets a certificate source which contains ALL certificates embedded in the signature.ElementgetCertificateValues()Gets xades:CertificateValues elementList<SignerRole>getCertifiedSignerRoles()Returns the certified roles of the signer.List<SignerRole>getClaimedSignerRoles()Returns the claimed roles of the signer.List<CommitmentTypeIndication>getCommitmentTypeIndications()This method obtains the information concerning commitment type indication linked to the signatureElementgetCompleteCertificateRefs()Gets xades:CompleteCertificateRefs elementElementgetCompleteRevocationRefs()Gets xades:CompleteRevocationRefs elementStringgetContentType()Returns the value of the signed attribute content-typeList<AdvancedSignature>getCounterSignatures()This method retrieves the potential countersignatures embedded in the XAdES signature document.OfflineCRLSourcegetCRLSource()Gets a CRL source which contains ALL CRLs embedded in the signature.StringgetDAIdentifier()This method returns an identifier provided by the Driving Application (DA) Note: used only for XAdESSignatureLevelgetDataFoundUpToLevel()This method returns the signature levelDigestgetDataToBeSignedRepresentation()TS 119 102-1 (4.2.8 Data to be signed representation (DTBSR)) : The DTBS preparation component shall take the DTBSF and hash it according to the hash algorithm specified in the cryptographic suite.DigestAlgorithmgetDigestAlgorithm()Retrieves the digest algorithm used for generating the signature.EncryptionAlgorithmgetEncryptionAlgorithm()Retrieves the encryption algorithm used for generating the signature.ElementgetLastTimestampValidationData()This method returns the last timestamp validation data for an archive timestamp.NodegetManifestById(String id)Gets ds:Manifest by its IdList<ReferenceValidation>getManifestReferences(Node manifestNode)Returns a list of all references contained in the given manifestMaskGenerationFunctiongetMaskGenerationFunction()Retrieves the mask generation function used for generating the signature.StringgetMimeType()Returns the value of the signed attribute mime-typeNodegetObjectById(String id)Gets ds:Object by its IdNodeListgetObjects()This method returns the list of ds:Object elements for the current signature element.OfflineOCSPSourcegetOCSPSource()Gets an OCSP source which contains ALL OCSP responses embedded in the signature.List<org.apache.xml.security.signature.Reference>getReferences()Gets a list of found referencesList<ReferenceValidation>getReferenceValidations()Returns individual validation foreach reference (XAdES) or for the message-imprint (CAdES)ElementgetRevocationValues()Gets xades:RevocationValues elementNodeListgetSigAndRefsTimeStamp()Gets xades:SigAndRefsTimeStamp node listSignatureAlgorithmgetSignatureAlgorithm()Retrieves the signature algorithm (or cipher) used for generating the signature.SignatureDigestReferencegetSignatureDigestReference(DigestAlgorithm digestAlgorithm)TS 119 442 - V1.1.1 - Electronic Signatures and Infrastructures (ESI), ch. 5.1.4.2.1.3 XML component: In case of XAdES signatures, the input of the digest value computation shall be the result of applying the canonicalization algorithm identified within the CanonicalizationMethod child element's value to the corresponding ds:Signature element and its contents.ElementgetSignatureElement()Returns the w3c.dom encapsulated signature element.SignatureFormgetSignatureForm()Specifies the format of the signatureprotected SignatureIdentifierBuildergetSignatureIdentifierBuilder()Returns a builder to define and build a signature IdList<Element>getSignatureObjects()Gets a list of found signature ds:Object elementsSignaturePolicygetSignaturePolicy()Returns the Signature Policy OID from the signature.SignaturePolicyStoregetSignaturePolicyStore()Returns the Signature Policy Store from the signatureSignatureProductionPlacegetSignatureProductionPlace()Returns information about the place where the signature was generatedbyte[]getSignatureValue()Returns the digital signature valueStringgetSignatureValueBase64()Returns a base64 SignatureValueStringgetSignatureValueId()Returns Id of the ds:SignatureValue elementList<SignerRole>getSignedAssertions()Returns the list of embedded signed assertions.List<String>getSignedDataObjectProperties()Retrieves the name of each node found under the SignedDataObjectProperties elementList<String>getSignedProperties()Retrieves the name of each node found under the SignedProperties elementList<String>getSignedSignatureProperties()Retrieves the name of each node found under the SignedSignatureProperties elementDategetSigningTime()Returns the signing time included within the signature.XAdESTimestampSourcegetTimestampSource()Gets a Signature Timestamp source which contains ALL timestamps embedded in the signature.List<String>getUnsignedProperties()Retrieves the name of each node found under the UnsignedProperties elementList<String>getUnsignedSignatureProperties()Retrieves the name of each node found under the UnsignedSignatureProperties elementDSSNamespacegetXadesNamespace()Returns the XAdES namespaceXAdESPathsgetXAdESPaths()Gets the currentXAdESPathsList<XAdESPaths>getXAdESPathsHolders()Returns a list of usedXAdESPathsDSSNamespacegetXmldSigNamespace()Returns the XMLDSIG namespacebooleanhasBProfile()Checks the presence of ... segment in the signature, what is the proof -B profile existencebooleanhasCProfile()Checks the presence of CompleteCertificateRefs and CompleteRevocationRefs segments in the signature, what is the proof -C profile existencebooleanhasXProfile()Checks the presence of SigAndRefsTimeStamp segment in the signature, what is the proof -X profile existencevoidrecursiveNamespaceBrowser(Element element)This method sets the namespace which will determinate theXAdESPathsto use.voidregisterXAdESPaths(XAdESPaths xadesPaths)This method allows to register a newXAdESPaths.voidsetDisableXSWProtection(boolean disableXSWProtection)NOT RECOMMENDED : This parameter allows to disable protection against XML Signature wrapping attacks (XSW).List<String>validateStructure()This method processes the structure validation of the signature.Methods inherited from class eu.europa.esig.dss.validation.DefaultAdvancedSignature
addExternalTimestamp, areAllSelfSignedCertificates, equals, findSignatureScope, getAllTimestamps, getArchiveTimestamps, getCandidatesForSigningCertificate, getCertificates, getCertificateSourcesExceptLastArchiveTimestamp, getCompleteCertificateSource, getCompleteCRLSource, getCompleteOCSPSource, getContainerContents, getContentTimestamps, getCounterSignaturesCertificateSource, getCounterSignaturesCRLSource, getCounterSignaturesOCSPSource, getDetachedContents, getDocumentTimestamps, getDSSId, getId, getManifestFile, getMasterSignature, getSignatureCryptographicVerification, getSignatureFilename, getSignatureScopes, getSignatureTimestamps, getSignatureValidationContext, getSignerRoles, getSigningCertificateToken, getStructureValidationResult, getTimestampsX1, getTimestampsX2, hashCode, hasLTAProfile, hasLTProfile, hasTProfile, isCounterSignature, isDocHashOnlyValidation, isHashOnlyValidation, prepareCounterSignatures, prepareOfflineCertificateVerifier, prepareTimestamps, resetCertificateSource, resetRevocationSources, resetTimestampSource, setContainerContents, setDetachedContents, setManifestFile, setMasterSignature, setSignatureFilename, setSigningCertificateSource, toString
-
Constructor Details
-
XAdESSignature
This constructor is used when creating the signature. The defaultXPathQueryHolderis set.- Parameters:
signatureElement- the signature DOM element
-
XAdESSignature
The default constructor for XAdESSignature.- Parameters:
signatureElement- the signature DOM elementxadesPathsHolders- List ofXAdESPathsto use when handling signature
-
-
Method Details
-
setDisableXSWProtection
public void setDisableXSWProtection(boolean disableXSWProtection)NOT RECOMMENDED : This parameter allows to disable protection against XML Signature wrapping attacks (XSW). It disables the research by XPath expression for defined Type attributes.- Parameters:
disableXSWProtection- true to disable the protection
-
recursiveNamespaceBrowser
This method sets the namespace which will determinate theXAdESPathsto use. The content of the Transform element is ignored.- Parameters:
element-Element
-
getXAdESPathsHolders
Returns a list of usedXAdESPaths- Returns:
- a list of
XAdESPaths
-
getXAdESPaths
Gets the currentXAdESPaths- Returns:
XAdESPaths
-
getXmldSigNamespace
Returns the XMLDSIG namespace- Returns:
DSSNamespace
-
getXadesNamespace
Returns the XAdES namespace- Returns:
DSSNamespace
-
getSignatureElement
Returns the w3c.dom encapsulated signature element.- Returns:
- the signatureElement
-
getSignatureForm
Description copied from interface:AdvancedSignatureSpecifies the format of the signature- Returns:
SignatureForm
-
getEncryptionAlgorithm
Description copied from interface:AdvancedSignatureRetrieves the encryption algorithm used for generating the signature.- Returns:
EncryptionAlgorithm
-
getDigestAlgorithm
Description copied from interface:AdvancedSignatureRetrieves the digest algorithm used for generating the signature.- Returns:
DigestAlgorithm
-
getMaskGenerationFunction
Description copied from interface:AdvancedSignatureRetrieves the mask generation function used for generating the signature.- Returns:
MaskGenerationFunction
-
getSignatureAlgorithm
Description copied from interface:AdvancedSignatureRetrieves the signature algorithm (or cipher) used for generating the signature.- Returns:
SignatureAlgorithm
-
getCertificateSource
Description copied from interface:AdvancedSignatureGets a certificate source which contains ALL certificates embedded in the signature.- Returns:
SignatureCertificateSource
-
getCRLSource
Description copied from interface:AdvancedSignatureGets a CRL source which contains ALL CRLs embedded in the signature.- Returns:
OfflineRevocationSource
-
getOCSPSource
Description copied from interface:AdvancedSignatureGets an OCSP source which contains ALL OCSP responses embedded in the signature.- Returns:
OfflineRevocationSource
-
getTimestampSource
Description copied from interface:AdvancedSignatureGets a Signature Timestamp source which contains ALL timestamps embedded in the signature.- Returns:
SignatureTimestampSource
-
getSigningTime
Description copied from interface:AdvancedSignatureReturns the signing time included within the signature.- Returns:
Daterepresenting the signing time or null
-
getSignaturePolicy
Description copied from interface:AdvancedSignatureReturns the Signature Policy OID from the signature.- Returns:
SignaturePolicy
-
getSignatureProductionPlace
Description copied from interface:AdvancedSignatureReturns information about the place where the signature was generated- Returns:
SignatureProductionPlace
-
getSignaturePolicyStore
Description copied from interface:AdvancedSignatureReturns the Signature Policy Store from the signature- Returns:
SignaturePolicyStore
-
getSignedAssertions
Description copied from interface:AdvancedSignatureReturns the list of embedded signed assertions.- Returns:
- list of the assertions s
-
getClaimedSignerRoles
Description copied from interface:AdvancedSignatureReturns the claimed roles of the signer.- Returns:
- list of the
SignerRoles
-
getCertifiedSignerRoles
Description copied from interface:AdvancedSignatureReturns the certified roles of the signer.- Returns:
- list of the
SignerRoles
-
getContentType
Description copied from interface:AdvancedSignatureReturns the value of the signed attribute content-type- Returns:
- content type as
String
-
getMimeType
Description copied from interface:AdvancedSignatureReturns the value of the signed attribute mime-type- Returns:
- mime type as
String
-
getSignatureValueBase64
Returns a base64 SignatureValue- Returns:
- base64
String
-
getSignatureValue
public byte[] getSignatureValue()Description copied from interface:AdvancedSignatureReturns the digital signature value- Returns:
- digital signature value byte array
-
getSignatureValueId
Returns Id of the ds:SignatureValue element- Returns:
StringId
-
getObjects
This method returns the list of ds:Object elements for the current signature element.- Returns:
NodeList
-
getCompleteCertificateRefs
Gets xades:CompleteCertificateRefs element- Returns:
Element
-
getCompleteRevocationRefs
Gets xades:CompleteRevocationRefs element- Returns:
Element
-
getSigAndRefsTimeStamp
Gets xades:SigAndRefsTimeStamp node list- Returns:
NodeList
-
getCertificateValues
Gets xades:CertificateValues element- Returns:
Element
-
getRevocationValues
Gets xades:RevocationValues element- Returns:
Element
-
hasBProfile
public boolean hasBProfile()Checks the presence of ... segment in the signature, what is the proof -B profile existence- Returns:
- true if B Profile is detected
-
hasCProfile
public boolean hasCProfile()Checks the presence of CompleteCertificateRefs and CompleteRevocationRefs segments in the signature, what is the proof -C profile existence- Returns:
- true if C Profile is detected
-
hasXProfile
public boolean hasXProfile()Checks the presence of SigAndRefsTimeStamp segment in the signature, what is the proof -X profile existence- Returns:
- true if the -X extension is present
-
checkSignatureIntegrity
public void checkSignatureIntegrity()Description copied from interface:AdvancedSignatureVerifies the signature integrity; checks if the signed content has not been tampered with. In the case of a non-AdES signature no including the signing certificate then the latter must be provided by callingsetProvidedSigningCertificateTokenIn the case of a detached signature the signed content must be provided by callingsetProvidedSigningCertificateToken -
getReferenceValidations
Description copied from interface:AdvancedSignatureReturns individual validation foreach reference (XAdES) or for the message-imprint (CAdES)- Returns:
- a list with one or more
ReferenceValidation
-
getSignatureDigestReference
TS 119 442 - V1.1.1 - Electronic Signatures and Infrastructures (ESI), ch. 5.1.4.2.1.3 XML component: In case of XAdES signatures, the input of the digest value computation shall be the result of applying the canonicalization algorithm identified within the CanonicalizationMethod child element's value to the corresponding ds:Signature element and its contents. The canonicalization shall be computed keeping this ds:Signature element as a descendant of the XML root element, without detaching it.- Parameters:
digestAlgorithm-DigestAlgorithmto use- Returns:
SignatureDigestReference
-
getDataToBeSignedRepresentation
Description copied from interface:AdvancedSignatureTS 119 102-1 (4.2.8 Data to be signed representation (DTBSR)) : The DTBS preparation component shall take the DTBSF and hash it according to the hash algorithm specified in the cryptographic suite.- Returns:
DigestDTBSR, which is then used to create the signature.
-
getManifestReferences
Returns a list of all references contained in the given manifest- Parameters:
manifestNode-Nodeto get references from- Returns:
- list of
ReferenceValidationobjects
-
getObjectById
Gets ds:Object by its Id -
getManifestById
Gets ds:Manifest by its Id -
getCounterSignatures
This method retrieves the potential countersignatures embedded in the XAdES signature document. From ETSI TS 101 903 v1.4.2: 7.2.4.1 Countersignature identifier in Type attribute of ds:Reference A XAdES signature containing a ds:Reference element whose Type attribute has value "http://uri.etsi.org/01903#CountersignedSignature" will indicate that is is, in fact, a countersignature of the signature referenced by this element. 7.2.4.2 Enveloped countersignatures: the CounterSignature element The CounterSignature is an unsigned property that qualifies the signature. A XAdES signature MAY have more than one CounterSignature properties. As indicated by its name, it contains one countersignature of the qualified signature.- Returns:
- a list containing the countersignatures embedded in the XAdES signature document
-
getSignatureIdentifierBuilder
Description copied from class:DefaultAdvancedSignatureReturns a builder to define and build a signature Id- Specified by:
getSignatureIdentifierBuilderin classDefaultAdvancedSignature- Returns:
SignatureIdentifierBuilder
-
getDAIdentifier
Description copied from interface:AdvancedSignatureThis method returns an identifier provided by the Driving Application (DA) Note: used only for XAdES- Returns:
- The signature identifier
-
getUnsignedSignatureProperties
Retrieves the name of each node found under the UnsignedSignatureProperties element- Returns:
- an ArrayList containing the retrieved node names
-
getSignedSignatureProperties
Retrieves the name of each node found under the SignedSignatureProperties element- Returns:
- an ArrayList containing the retrieved node names
-
getSignedProperties
Retrieves the name of each node found under the SignedProperties element- Returns:
- an ArrayList containing the retrieved node names
-
getUnsignedProperties
Retrieves the name of each node found under the UnsignedProperties element- Returns:
- an ArrayList containing the retrieved node names
-
getSignedDataObjectProperties
Retrieves the name of each node found under the SignedDataObjectProperties element- Returns:
- an ArrayList containing the retrieved node names
-
getDataFoundUpToLevel
Description copied from interface:AdvancedSignatureThis method returns the signature level- Returns:
- a value of
SignatureLevel
-
validateStructure
Description copied from class:DefaultAdvancedSignatureThis method processes the structure validation of the signature.- Overrides:
validateStructurein classDefaultAdvancedSignature- Returns:
- list of
Stringerrors
-
getLastTimestampValidationData
This method returns the last timestamp validation data for an archive timestamp.- Returns:
Elementxades141:TimestampValidationData
-
getCommitmentTypeIndications
Description copied from interface:AdvancedSignatureThis method obtains the information concerning commitment type indication linked to the signature- Returns:
- a list of
CommitmentTypeIndications
-
getReferences
Gets a list of found references- Returns:
- a list of
References
-
getSignatureObjects
Gets a list of found signature ds:Object elements- Returns:
- a list of
Elements
-
registerXAdESPaths
This method allows to register a newXAdESPaths.- Parameters:
xadesPaths-XAdESPathsto register
-