java.lang.Object
eu.europa.esig.dss.validation.DefaultAdvancedSignature
eu.europa.esig.dss.xades.validation.XAdESSignature
- All Implemented Interfaces:
eu.europa.esig.dss.model.identifier.IdentifierBasedObject,eu.europa.esig.dss.validation.AdvancedSignature,Serializable
public class XAdESSignature
extends eu.europa.esig.dss.validation.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:
-
Field Summary
Fields inherited from class eu.europa.esig.dss.validation.DefaultAdvancedSignature
counterSignatures, detachedContents, manifestFile, offlineCertificateSource, offlineCertificateVerifier, referenceValidations, signatureCRLSource, signatureCryptographicVerification, signatureIdentifier, signatureOCSPSource, signaturePolicy, signatureTimestampSource, signingCertificateSource, structureValidationMessages -
Constructor Summary
ConstructorsConstructorDescriptionXAdESSignature(Element signatureElement) This constructor is used when creating the signature.XAdESSignature(Element signatureElement, List<eu.europa.esig.xades.definition.XAdESPath> xadesPathHolders) The default constructor for XAdESSignature. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddExternalTimestamp(eu.europa.esig.dss.spi.x509.tsp.TimestampToken timestamp) protected XAdESSignaturePolicyvoidprotected XAdESBaselineRequirementsCheckerprotected List<eu.europa.esig.dss.model.scope.SignatureScope>protected XAdESBaselineRequirementsCheckereu.europa.esig.dss.spi.SignatureCertificateSourceGets xades:CertificateValues elementList<eu.europa.esig.dss.validation.SignerRole>List<eu.europa.esig.dss.validation.SignerRole>List<eu.europa.esig.dss.validation.CommitmentTypeIndication>Gets xades:CompleteCertificateRefs or xades141:CompleteCertificateRefsV2 elementGets xades:CompleteRevocationRefsList<eu.europa.esig.dss.validation.AdvancedSignature>This method retrieves the potential countersignatures embedded in the XAdES signature document.eu.europa.esig.dss.spi.x509.revocation.crl.OfflineCRLSourceeu.europa.esig.dss.enumerations.SignatureLeveleu.europa.esig.dss.model.Digesteu.europa.esig.dss.enumerations.DigestAlgorithmeu.europa.esig.dss.enumerations.EncryptionAlgorithmThis method returns the last timestamp validation data for an archive timestamp.Gets ds:Manifest by its Ideu.europa.esig.dss.enumerations.MaskGenerationFunctiongetObjectById(String id) Gets ds:Object by its IdThis method returns the list of ds:Object elements for the current signature element.eu.europa.esig.dss.spi.x509.revocation.ocsp.OfflineOCSPSourceList<org.apache.xml.security.signature.Reference>Gets a list of found referencesList<eu.europa.esig.dss.model.ReferenceValidation>Gets xades:RefsOnlyTimestamp node listGets xades:RevocationValues elementGets xades:SigAndRefsTimeStamp node listeu.europa.esig.dss.enumerations.SignatureAlgorithmeu.europa.esig.dss.validation.SignatureDigestReferencegetSignatureDigestReference(eu.europa.esig.dss.enumerations.DigestAlgorithm digestAlgorithm) TS 119 442 - V1.1.1 - Electronic Signatures and Infrastructures (ESI), ch.Returns the w3c.dom encapsulated signature element.eu.europa.esig.dss.enumerations.SignatureFormprotected eu.europa.esig.dss.validation.SignatureIdentifierBuilderGets a list of found signature ds:Object elementseu.europa.esig.dss.model.SignaturePolicyStoreeu.europa.esig.dss.validation.SignatureProductionPlacebyte[]Returns a base64 SignatureValueReturns Id of the ds:SignatureValue elementList<eu.europa.esig.dss.validation.SignerRole>Retrieves the name of each node found under the SignedDataObjectProperties elementReturns the ds:SignedInfo elementRetrieves the name of each node found under the SignedProperties elementRetrieves the name of each node found under the SignedSignatureProperties elementRetrieves the name of each node found under the UnsignedProperties elementRetrieves the name of each node found under the UnsignedSignatureProperties elementeu.europa.esig.dss.xml.common.definition.DSSNamespaceReturns the XAdES namespaceeu.europa.esig.xades.definition.XAdESPathGets the currentXAdESPathsList<eu.europa.esig.xades.definition.XAdESPath>Returns a list of usedXAdESPathseu.europa.esig.dss.xml.common.definition.DSSNamespaceReturns the XMLDSIG namespacebooleanChecks the presence of ArchiveTimeStamp element in the signature, what is the proof -A profile existencebooleanChecks the presence of signing certificate covered by the signature, what is the proof -BES profile existencebooleanChecks the presence of CompleteCertificateRefs and CompleteRevocationRefs segments in the signature, what is the proof -C profile existencebooleanChecks the presence of SignaturePolicyIdentifier element in the signature, what is the proof -EPES profile existencebooleanChecks the presence of SignatureTimeStamp element in the signature, what is the proof -T profile existencebooleanChecks if the T-level is present in the signature.booleanChecks the presence of CertificateValues/RevocationValues segment in the signature, what is the proof -XL profile existencebooleanChecks 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(eu.europa.esig.xades.definition.XAdESPath 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).Methods inherited from class eu.europa.esig.dss.validation.DefaultAdvancedSignature
addExternalEvidenceRecord, areAllSelfSignedCertificates, equals, findSignatureScope, getAllEvidenceRecords, getAllTimestamps, getArchiveTimestamps, getCandidatesForSigningCertificate, getCertificates, getCompleteCertificateSource, getCompleteCRLSource, getCompleteOCSPSource, getContainerContents, getContentTimestamps, getCounterSignaturesCertificateSource, getCounterSignaturesCRLSource, getCounterSignaturesOCSPSource, getDetachedContents, getDetachedEvidenceRecords, getDetachedTimestamps, getDocumentTimestamps, getDSSId, getEmbeddedEvidenceRecords, getId, getManifestFile, getMasterSignature, getSignatureCryptographicVerification, getSignatureFilename, getSignatureScopes, getSignatureTimestamps, getSignerRoles, getSigningCertificateToken, getStructureValidationResult, getTimestampsX1, getTimestampsX2, hasBProfile, hashCode, hasLTAProfile, hasLTProfile, isCounterSignature, isDocHashOnlyValidation, isHashOnlyValidation, prepareOfflineCertificateVerifier, 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
public XAdESSignature(Element signatureElement, List<eu.europa.esig.xades.definition.XAdESPath> xadesPathHolders) The default constructor for XAdESSignature.- Parameters:
signatureElement- the signature DOM elementxadesPathHolders- 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
public eu.europa.esig.xades.definition.XAdESPath getXAdESPaths()Gets the currentXAdESPaths- Returns:
XAdESPath
-
getXmldSigNamespace
public eu.europa.esig.dss.xml.common.definition.DSSNamespace getXmldSigNamespace()Returns the XMLDSIG namespace- Returns:
DSSNamespace
-
getXadesNamespace
public eu.europa.esig.dss.xml.common.definition.DSSNamespace getXadesNamespace()Returns the XAdES namespace- Returns:
DSSNamespace
-
getSignatureElement
Returns the w3c.dom encapsulated signature element.- Returns:
- the signatureElement
-
getSignatureForm
public eu.europa.esig.dss.enumerations.SignatureForm getSignatureForm() -
getEncryptionAlgorithm
public eu.europa.esig.dss.enumerations.EncryptionAlgorithm getEncryptionAlgorithm() -
getDigestAlgorithm
public eu.europa.esig.dss.enumerations.DigestAlgorithm getDigestAlgorithm() -
getMaskGenerationFunction
public eu.europa.esig.dss.enumerations.MaskGenerationFunction getMaskGenerationFunction() -
getSignatureAlgorithm
public eu.europa.esig.dss.enumerations.SignatureAlgorithm getSignatureAlgorithm() -
getCertificateSource
public eu.europa.esig.dss.spi.SignatureCertificateSource getCertificateSource() -
getCRLSource
public eu.europa.esig.dss.spi.x509.revocation.crl.OfflineCRLSource getCRLSource() -
getOCSPSource
public eu.europa.esig.dss.spi.x509.revocation.ocsp.OfflineOCSPSource getOCSPSource() -
getTimestampSource
-
getSigningTime
-
getSignaturePolicy
- Specified by:
getSignaturePolicyin interfaceeu.europa.esig.dss.validation.AdvancedSignature- Overrides:
getSignaturePolicyin classeu.europa.esig.dss.validation.DefaultAdvancedSignature
-
buildSignaturePolicy
- Specified by:
buildSignaturePolicyin classeu.europa.esig.dss.validation.DefaultAdvancedSignature
-
getSignatureProductionPlace
public eu.europa.esig.dss.validation.SignatureProductionPlace getSignatureProductionPlace() -
getSignaturePolicyStore
public eu.europa.esig.dss.model.SignaturePolicyStore getSignaturePolicyStore() -
getSignedAssertions
-
getClaimedSignerRoles
-
getCertifiedSignerRoles
-
getContentType
-
getMimeType
-
getSignatureValueBase64
Returns a base64 SignatureValue- Returns:
- base64
String
-
getSignatureValue
public byte[] getSignatureValue() -
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 or xades141:CompleteCertificateRefsV2 element- Returns:
Element
-
getCompleteRevocationRefs
Gets xades:CompleteRevocationRefs- Returns:
Element
-
getSigAndRefsTimeStamp
Gets xades:SigAndRefsTimeStamp node list- Returns:
NodeList
-
getRefsOnlyTimestampTimeStamp
Gets xades:RefsOnlyTimestamp node list- Returns:
NodeList
-
getCertificateValues
Gets xades:CertificateValues element- Returns:
Element
-
getRevocationValues
Gets xades:RevocationValues element- Returns:
Element
-
addExternalTimestamp
public void addExternalTimestamp(eu.europa.esig.dss.spi.x509.tsp.TimestampToken timestamp) -
getBaselineRequirementsChecker
- Overrides:
getBaselineRequirementsCheckerin classeu.europa.esig.dss.validation.DefaultAdvancedSignature
-
createBaselineRequirementsChecker
- Specified by:
createBaselineRequirementsCheckerin classeu.europa.esig.dss.validation.DefaultAdvancedSignature
-
hasTProfile
public boolean hasTProfile()Checks if the T-level is present in the signature. In case of a signature with BDOC signature policy, T-level is indicated by the presence of a time-mark-conformant OCSP response.- Overrides:
hasTProfilein classeu.europa.esig.dss.validation.DefaultAdvancedSignature- Returns:
- true if the T-level is present, false otherwise
-
hasBESProfile
public boolean hasBESProfile()Checks the presence of signing certificate covered by the signature, what is the proof -BES profile existence- Returns:
- true if BES Profile is detected
-
hasEPESProfile
public boolean hasEPESProfile()Checks the presence of SignaturePolicyIdentifier element in the signature, what is the proof -EPES profile existence- Returns:
- true if EPES Profile is detected
-
hasExtendedTProfile
public boolean hasExtendedTProfile()Checks the presence of SignatureTimeStamp element in the signature, what is the proof -T profile existence- Returns:
- true if T 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
-
hasXLProfile
public boolean hasXLProfile()Checks the presence of CertificateValues/RevocationValues segment in the signature, what is the proof -XL profile existence- Returns:
- true if the -XL extension is present
-
hasAProfile
public boolean hasAProfile()Checks the presence of ArchiveTimeStamp element in the signature, what is the proof -A profile existence- Returns:
- true if the -A extension is present
-
checkSignatureIntegrity
public void checkSignatureIntegrity() -
getReferenceValidations
-
getSignatureDigestReference
public eu.europa.esig.dss.validation.SignatureDigestReference getSignatureDigestReference(eu.europa.esig.dss.enumerations.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. The canonicalization shall be computed keeping this ds:Signature element as a descendant of the XML root element, without detaching it. -
getDataToBeSignedRepresentation
public eu.europa.esig.dss.model.Digest getDataToBeSignedRepresentation() -
getSignedInfo
Returns the ds:SignedInfo element- Returns:
Elementds:SignedInfo
-
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
protected eu.europa.esig.dss.validation.SignatureIdentifierBuilder getSignatureIdentifierBuilder()- Specified by:
getSignatureIdentifierBuilderin classeu.europa.esig.dss.validation.DefaultAdvancedSignature
-
getDAIdentifier
-
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
public eu.europa.esig.dss.enumerations.SignatureLevel getDataFoundUpToLevel() -
validateStructure
- Overrides:
validateStructurein classeu.europa.esig.dss.validation.DefaultAdvancedSignature
-
findSignatureScopes
- Specified by:
findSignatureScopesin classeu.europa.esig.dss.validation.DefaultAdvancedSignature
-
getLastTimestampValidationData
This method returns the last timestamp validation data for an archive timestamp.- Returns:
Elementxades141:TimestampValidationData
-
getCommitmentTypeIndications
-
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
public void registerXAdESPaths(eu.europa.esig.xades.definition.XAdESPath xadesPaths) This method allows to register a newXAdESPaths.- Parameters:
xadesPaths-XAdESPathsto register
-