Package eu.europa.esig.dss.validation
Class CommonCertificateVerifier
java.lang.Object
eu.europa.esig.dss.validation.CommonCertificateVerifier
- All Implemented Interfaces:
CertificateVerifier
This class provides the different sources used to verify the status of a certificate using the trust model. There are
four different types of sources to be defined:
- Trusted certificates source;
- Adjunct certificates source (not trusted);
- OCSP source;
- CRL source;
- AIA source to give access to the certificates through AIA.
- Trusted certificates source;
- Adjunct certificates source (not trusted);
- OCSP source;
- CRL source;
- AIA source to give access to the certificates through AIA.
-
Constructor Summary
ConstructorDescriptionThe default constructor.CommonCertificateVerifier
(boolean simpleCreationOnly) This constructor allows creating ofCommonCertificateVerifier
withoutDataLoader
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAdjunctCertSources
(CertificateSource... certSources) Adds adjunct certificate sources to an existing list of adjunct certificate sourcesvoid
addTrustedCertSources
(CertificateSource... certSources) Adds trusted certificate sources to an existing list of trusted certificate sourcesReturns the list of adjunct certificate sources assigned to this verifier.Gets the AIASource used to load aeu.europa.esig.dss.model.x509.CertificateToken
's issuer by defined AIA URI(s) within the tokenThis method returns the defined execution behaviour on expired signature (if the signing certificate or its POE(s) has been expired).This method returns the defined execution behaviour on invalid timestamp.This method returns the defined execution behaviour on missing revocation data.This method returns the defined execution behaviour if no revocation data obtained with an issuance time after the bestSignatureTimeThis method returns the defined execution behaviour on revoked certificate.This method returns the defined execution behaviour on uncovered POE (timestamp).Returns the CRL source associated with this verifier.This method returns a default Digest Algorithm what will be used for digest calculationReturns the OCSP source associated with this verifier.Returns a factory used to create revocation data loading strategy associated with this verifier.Returns aRevocationDataVerifier
associated with this verifier.Returns the trusted certificate sources associated with this verifier.boolean
This method returns true if revocation check is enabled for untrusted certificate chains.boolean
This method returns whether POEs should be extracted from timestamps coming from untrusted certificate chains.boolean
Returns whether revocation data still shall be returned if validation of requested revocation data failed (i.e.void
setAdjunctCertSources
(CertificateSource... certSources) Sets multiple adjunct certificate sources.void
setAdjunctCertSources
(ListCertificateSource adjunctListCertificateSource) Sets a list of adjunct certificate sourcesvoid
setAIASource
(AIASource aiaSource) Sets the AIASource used to load aeu.europa.esig.dss.model.x509.CertificateToken
's issuer by defined AIA URI(s) within the tokenvoid
setAlertOnExpiredSignature
(StatusAlert alertOnExpiredSignature) This method allows to change the behavior on expired signature (if the signing certificate or its POE(s) has been expired).void
setAlertOnInvalidTimestamp
(StatusAlert alertOnInvalidTimestamp) This method allows to change the behavior on invalid timestamp (LT/LTA augmentation).void
setAlertOnMissingRevocationData
(StatusAlert alertOnMissingRevocationData) This method allows to change the behavior on missing revocation data (LT/LTA augmentation).void
setAlertOnNoRevocationAfterBestSignatureTime
(StatusAlert alertOnNoRevocationAfterBestSignatureTime) This method allows to change the behavior on revocation data issued after a control time.void
setAlertOnRevokedCertificate
(StatusAlert alertOnRevokedCertificate) This method allows to change the behavior on revoked certificates (LT/LTA augmentation).void
setAlertOnUncoveredPOE
(StatusAlert alertOnUncoveredPOE) This method allows to change the behavior on uncovered POE (timestamp).void
setCheckRevocationForUntrustedChains
(boolean checkRevocationForUntrustedChains) This method allows enabling of revocation checking for untrusted certificate chains.void
setCrlSource
(RevocationSource<CRL> crlSource) Defines the source of CRL used by this classvoid
setDefaultDigestAlgorithm
(DigestAlgorithm digestAlgorithm) This method allows to change the Digest Algorithm that will be used for tokens' digest calculation Default :DigestAlgorithm.SHA256
void
setExtractPOEFromUntrustedChains
(boolean extractPOEFromUntrustedChains) This method allows enabling of POE extraction from timestamps coming from untrusted certificate chains.void
setOcspSource
(RevocationSource<OCSP> ocspSource) Defines the source of OCSP used by this classvoid
setRevocationDataLoadingStrategyFactory
(RevocationDataLoadingStrategyFactory revocationDataLoadingStrategyFactory) Creates a strategy used to fetch OCSP or CRL for certificate validation.void
setRevocationDataVerifier
(RevocationDataVerifier revocationDataVerifier) SetsRevocationDataVerifier
used to validate acceptance of the retrieved (from offline or online sources) revocation data.void
setRevocationFallback
(boolean revocationFallback) Sets whether a revocation data still have to be returned to the validation process, in case validation of obtained revocation data has failed (i.e.void
setTrustedCertSources
(CertificateSource... certSources) Sets multiple trusted certificate sources.void
setTrustedCertSources
(ListCertificateSource trustedListCertificateSource) Sets a list of trusted certificate sources
-
Constructor Details
-
CommonCertificateVerifier
public CommonCertificateVerifier()The default constructor. TheDataLoader
is created to allow the retrieval of certificates through AIA. -
CommonCertificateVerifier
public CommonCertificateVerifier(boolean simpleCreationOnly) This constructor allows creating ofCommonCertificateVerifier
withoutDataLoader
. It means that only a -B profile signature can be created.- Parameters:
simpleCreationOnly
- if true theCommonCertificateVerifier
will not containAIASource
.
-
-
Method Details
-
getCrlSource
Description copied from interface:CertificateVerifier
Returns the CRL source associated with this verifier.- Specified by:
getCrlSource
in interfaceCertificateVerifier
- Returns:
- the used CRL source for external access (web, filesystem, cached,...)
-
setCrlSource
Description copied from interface:CertificateVerifier
Defines the source of CRL used by this class- Specified by:
setCrlSource
in interfaceCertificateVerifier
- Parameters:
crlSource
- the CRL source to set for external access (web, filesystem, cached,...)
-
getOcspSource
Description copied from interface:CertificateVerifier
Returns the OCSP source associated with this verifier.- Specified by:
getOcspSource
in interfaceCertificateVerifier
- Returns:
- the used OCSP source for external access (web, filesystem, cached,...)
-
setOcspSource
Description copied from interface:CertificateVerifier
Defines the source of OCSP used by this class- Specified by:
setOcspSource
in interfaceCertificateVerifier
- Parameters:
ocspSource
- the OCSP source to set for external access (web, filesystem, cached,...)
-
getRevocationDataLoadingStrategyFactory
Description copied from interface:CertificateVerifier
Returns a factory used to create revocation data loading strategy associated with this verifier.- Specified by:
getRevocationDataLoadingStrategyFactory
in interfaceCertificateVerifier
- Returns:
- creates the defined strategy to fetch OCSP or CRL for certificate validation
-
setRevocationDataLoadingStrategyFactory
public void setRevocationDataLoadingStrategyFactory(RevocationDataLoadingStrategyFactory revocationDataLoadingStrategyFactory) Description copied from interface:CertificateVerifier
Creates a strategy used to fetch OCSP or CRL for certificate validation. Default:OCSPFirstRevocationDataLoadingStrategyFactory
used to create a strategy to extract OCSP token first and CRL after- Specified by:
setRevocationDataLoadingStrategyFactory
in interfaceCertificateVerifier
- Parameters:
revocationDataLoadingStrategyFactory
-RevocationDataLoadingStrategyFactory
-
getRevocationDataVerifier
Description copied from interface:CertificateVerifier
Returns aRevocationDataVerifier
associated with this verifier.- Specified by:
getRevocationDataVerifier
in interfaceCertificateVerifier
- Returns:
RevocationDataVerifier
-
setRevocationDataVerifier
Description copied from interface:CertificateVerifier
SetsRevocationDataVerifier
used to validate acceptance of the retrieved (from offline or online sources) revocation data. This class is used to verify revocation data extracted from the validating document itself, as well the revocation data retrieved from remote sources during the validation process.NOTE: It is not recommended to use the same instance of
RevocationDataVerifier
within differentCertificateVerifier
s, as it may lead to concurrency issues during the execution in multi-threaded environments. Please use a newRevocationDataVerifier
per eachCertificateVerifier
.- Specified by:
setRevocationDataVerifier
in interfaceCertificateVerifier
- Parameters:
revocationDataVerifier
-RevocationDataVerifier
-
isRevocationFallback
public boolean isRevocationFallback()Description copied from interface:CertificateVerifier
Returns whether revocation data still shall be returned if validation of requested revocation data failed (i.e. both for OCSP and CRL).- Specified by:
isRevocationFallback
in interfaceCertificateVerifier
- Returns:
- revocation fallback
-
setRevocationFallback
public void setRevocationFallback(boolean revocationFallback) Description copied from interface:CertificateVerifier
Sets whether a revocation data still have to be returned to the validation process, in case validation of obtained revocation data has failed (i.e. both for OCSP and CRL). Default: FALSE (invalid revocation data not returned)NOTE: Revocation fallback is enforced to TRUE (return even invalid revocation data, when no valid found) on signature validation
- Specified by:
setRevocationFallback
in interfaceCertificateVerifier
- Parameters:
revocationFallback
- whether invalid revocation data shall be returned, when not valid revocation available
-
getTrustedCertSources
Description copied from interface:CertificateVerifier
Returns the trusted certificate sources associated with this verifier. These sources are used to identify the trusted anchors.- Specified by:
getTrustedCertSources
in interfaceCertificateVerifier
- Returns:
- the certificate sources which contain trusted certificates
-
setTrustedCertSources
Description copied from interface:CertificateVerifier
Sets multiple trusted certificate sources.- Specified by:
setTrustedCertSources
in interfaceCertificateVerifier
- Parameters:
certSources
- The certificate sources with known trusted certificates
-
addTrustedCertSources
Description copied from interface:CertificateVerifier
Adds trusted certificate sources to an existing list of trusted certificate sources- Specified by:
addTrustedCertSources
in interfaceCertificateVerifier
- Parameters:
certSources
- The certificate sources with known trusted certificates
-
setTrustedCertSources
Description copied from interface:CertificateVerifier
Sets a list of trusted certificate sources- Specified by:
setTrustedCertSources
in interfaceCertificateVerifier
- Parameters:
trustedListCertificateSource
-ListCertificateSource
of trusted cert sources
-
getAdjunctCertSources
Description copied from interface:CertificateVerifier
Returns the list of adjunct certificate sources assigned to this verifier.- Specified by:
getAdjunctCertSources
in interfaceCertificateVerifier
- Returns:
- the certificate source which contains additional certificate (missing CA,...)
-
setAdjunctCertSources
Description copied from interface:CertificateVerifier
Sets multiple adjunct certificate sources.- Specified by:
setAdjunctCertSources
in interfaceCertificateVerifier
- Parameters:
certSources
- the certificate sources with additional and/or missing certificates
-
addAdjunctCertSources
Description copied from interface:CertificateVerifier
Adds adjunct certificate sources to an existing list of adjunct certificate sources- Specified by:
addAdjunctCertSources
in interfaceCertificateVerifier
- Parameters:
certSources
- The certificate sources with additional certificates
-
setAdjunctCertSources
Description copied from interface:CertificateVerifier
Sets a list of adjunct certificate sources- Specified by:
setAdjunctCertSources
in interfaceCertificateVerifier
- Parameters:
adjunctListCertificateSource
-ListCertificateSource
of adjunct cert sources
-
getAIASource
Description copied from interface:CertificateVerifier
Gets the AIASource used to load aeu.europa.esig.dss.model.x509.CertificateToken
's issuer by defined AIA URI(s) within the token- Specified by:
getAIASource
in interfaceCertificateVerifier
- Returns:
- aiaSource
AIASource
-
setAIASource
Description copied from interface:CertificateVerifier
Sets the AIASource used to load aeu.europa.esig.dss.model.x509.CertificateToken
's issuer by defined AIA URI(s) within the token- Specified by:
setAIASource
in interfaceCertificateVerifier
- Parameters:
aiaSource
-AIASource
-
getAlertOnInvalidTimestamp
Description copied from interface:CertificateVerifier
This method returns the defined execution behaviour on invalid timestamp.- Specified by:
getAlertOnInvalidTimestamp
in interfaceCertificateVerifier
- Returns:
StatusAlert
to be processed in case of an invalid timestamp
-
setAlertOnInvalidTimestamp
Description copied from interface:CertificateVerifier
This method allows to change the behavior on invalid timestamp (LT/LTA augmentation). Default :ExceptionOnStatusAlert
- throw an exception.- Specified by:
setAlertOnInvalidTimestamp
in interfaceCertificateVerifier
- Parameters:
alertOnInvalidTimestamp
- defines a behaviour in case of invalid timestamp
-
getAlertOnMissingRevocationData
Description copied from interface:CertificateVerifier
This method returns the defined execution behaviour on missing revocation data.- Specified by:
getAlertOnMissingRevocationData
in interfaceCertificateVerifier
- Returns:
StatusAlert
to be processed in case of missing revocation data
-
setAlertOnMissingRevocationData
Description copied from interface:CertificateVerifier
This method allows to change the behavior on missing revocation data (LT/LTA augmentation). Default :ExceptionOnStatusAlert
- throw an exception.- Specified by:
setAlertOnMissingRevocationData
in interfaceCertificateVerifier
- Parameters:
alertOnMissingRevocationData
- defines a behaviour in case of missing revocation data
-
getAlertOnUncoveredPOE
Description copied from interface:CertificateVerifier
This method returns the defined execution behaviour on uncovered POE (timestamp).- Specified by:
getAlertOnUncoveredPOE
in interfaceCertificateVerifier
- Returns:
StatusAlert
to be processed in case of uncovered POE
-
setAlertOnUncoveredPOE
Description copied from interface:CertificateVerifier
This method allows to change the behavior on uncovered POE (timestamp). Default :LogOnStatusAlert
- log a warning.- Specified by:
setAlertOnUncoveredPOE
in interfaceCertificateVerifier
- Parameters:
alertOnUncoveredPOE
- defines a behaviour in case of uncovered POE
-
getAlertOnRevokedCertificate
Description copied from interface:CertificateVerifier
This method returns the defined execution behaviour on revoked certificate.- Specified by:
getAlertOnRevokedCertificate
in interfaceCertificateVerifier
- Returns:
StatusAlert
to be processed in case of revoked certificate
-
setAlertOnRevokedCertificate
Description copied from interface:CertificateVerifier
This method allows to change the behavior on revoked certificates (LT/LTA augmentation). Default :ExceptionOnStatusAlert
- throw an exception.- Specified by:
setAlertOnRevokedCertificate
in interfaceCertificateVerifier
- Parameters:
alertOnRevokedCertificate
- defines a behaviour in case of revoked certificate
-
getAlertOnNoRevocationAfterBestSignatureTime
Description copied from interface:CertificateVerifier
This method returns the defined execution behaviour if no revocation data obtained with an issuance time after the bestSignatureTime- Specified by:
getAlertOnNoRevocationAfterBestSignatureTime
in interfaceCertificateVerifier
- Returns:
StatusAlert
to be processed in case of no revocation data after best signature time
-
setAlertOnNoRevocationAfterBestSignatureTime
public void setAlertOnNoRevocationAfterBestSignatureTime(StatusAlert alertOnNoRevocationAfterBestSignatureTime) Description copied from interface:CertificateVerifier
This method allows to change the behavior on revocation data issued after a control time. Default :LogOnStatusAlert
- log a warning.- Specified by:
setAlertOnNoRevocationAfterBestSignatureTime
in interfaceCertificateVerifier
- Parameters:
alertOnNoRevocationAfterBestSignatureTime
- defines a behaviour in case of no revocation data issued after the bestSignatureTime
-
setAlertOnExpiredSignature
Description copied from interface:CertificateVerifier
This method allows to change the behavior on expired signature (if the signing certificate or its POE(s) has been expired). Default :ExceptionOnStatusAlert
- throw an exception.- Specified by:
setAlertOnExpiredSignature
in interfaceCertificateVerifier
- Parameters:
alertOnExpiredSignature
- defines a behaviour in case of an expired signature
-
getAlertOnExpiredSignature
Description copied from interface:CertificateVerifier
This method returns the defined execution behaviour on expired signature (if the signing certificate or its POE(s) has been expired).- Specified by:
getAlertOnExpiredSignature
in interfaceCertificateVerifier
- Returns:
StatusAlert
to be processed in case of uncovered POE
-
isCheckRevocationForUntrustedChains
public boolean isCheckRevocationForUntrustedChains()Description copied from interface:CertificateVerifier
This method returns true if revocation check is enabled for untrusted certificate chains.- Specified by:
isCheckRevocationForUntrustedChains
in interfaceCertificateVerifier
- Returns:
- true if external revocation check is done for untrusted certificate chains
-
setCheckRevocationForUntrustedChains
public void setCheckRevocationForUntrustedChains(boolean checkRevocationForUntrustedChains) Description copied from interface:CertificateVerifier
This method allows enabling of revocation checking for untrusted certificate chains. Default : FALSE (revocation data is not checked for untrusted certificate chains)- Specified by:
setCheckRevocationForUntrustedChains
in interfaceCertificateVerifier
- Parameters:
checkRevocationForUntrustedChains
- true if revocation checking is allowed for untrusted certificate chains
-
isExtractPOEFromUntrustedChains
public boolean isExtractPOEFromUntrustedChains()Description copied from interface:CertificateVerifier
This method returns whether POEs should be extracted from timestamps coming from untrusted certificate chains.- Specified by:
isExtractPOEFromUntrustedChains
in interfaceCertificateVerifier
- Returns:
- true if POEs should be extracted from timestamp with untrusted certificate chains
-
setExtractPOEFromUntrustedChains
public void setExtractPOEFromUntrustedChains(boolean extractPOEFromUntrustedChains) Description copied from interface:CertificateVerifier
This method allows enabling of POE extraction from timestamps coming from untrusted certificate chains. Default : FALSE (timestamps created with untrusted certificate chains are not considered as POE)- Specified by:
setExtractPOEFromUntrustedChains
in interfaceCertificateVerifier
- Parameters:
extractPOEFromUntrustedChains
- true if POE extraction is allowed for timestamps from untrusted certificate chains
-
setDefaultDigestAlgorithm
Description copied from interface:CertificateVerifier
This method allows to change the Digest Algorithm that will be used for tokens' digest calculation Default :DigestAlgorithm.SHA256
- Specified by:
setDefaultDigestAlgorithm
in interfaceCertificateVerifier
- Parameters:
digestAlgorithm
-DigestAlgorithm
to use
-
getDefaultDigestAlgorithm
Description copied from interface:CertificateVerifier
This method returns a default Digest Algorithm what will be used for digest calculation- Specified by:
getDefaultDigestAlgorithm
in interfaceCertificateVerifier
- Returns:
DigestAlgorithm
-