Package eu.europa.esig.dss.validation
Class SignatureValidationContext
java.lang.Object
eu.europa.esig.dss.validation.SignatureValidationContext
- All Implemented Interfaces:
ValidationContext
public class SignatureValidationContext extends Object implements ValidationContext
During the validation of a signature, the software retrieves different X509 artifacts like Certificate, CRL and OCSP
Response. The SignatureValidationContext is a "cache" for
one validation request that contains every object retrieved so far.
-
Field Summary
Fields Modifier and Type Field Description protected Date
currentTime
This is the time at what the validation is carried out. -
Constructor Summary
Constructors Constructor Description SignatureValidationContext()
This constructor is used during the signature creation process. -
Method Summary
Modifier and Type Method Description void
addCertificateTokenForVerification(CertificateToken certificateToken)
Adds a new certificate token to the list of tokens to verify.void
addRevocationTokenForVerification(RevocationToken<Revocation> revocationToken)
Adds a new revocation token to the list of tokens to verify.void
addTimestampTokenForVerification(TimestampToken timestampToken)
Adds a new timestamp token to the list of tokens to verify.boolean
checkAllCertificatesValid()
This method allows to verify if all processed certificates are not revoked Additionally, an alert can be handledCertificateVerifier.setAlertOnRevokedCertificate(eu.europa.esig.dss.alert.StatusAlert)
boolean
checkAllPOECoveredByRevocationData()
This method allows to verify if all POE (timestamp tokens) are covered by a revocation data Additionally, an alert can be handledCertificateVerifier.setAlertOnUncoveredPOE(eu.europa.esig.dss.alert.StatusAlert)
boolean
checkAllRequiredRevocationDataPresent()
This method allows to verify if all processed certificates have a revocation data Additionally, an alert can be handledCertificateVerifier.setAlertOnMissingRevocationData(eu.europa.esig.dss.alert.StatusAlert)
boolean
checkAllTimestampsValid()
This method allows to verify if all processed timestamps are valid and intact.boolean
checkAtLeastOneRevocationDataPresentAfterBestSignatureTime(CertificateToken signingCertificate)
This method allows to verify if there is at least one revocation data present after the earliest available timestamp token producing time Additionally, an alert can be handledCertificateVerifier.setAlertOnNoRevocationAfterBestSignatureTime(eu.europa.esig.dss.alert.StatusAlert)
Map<CertificateToken,Set<CertificateSourceType>>
getCertificateSourceTypes()
Returns a map ofCertificateSourceType
byCertificateToken
which contains the sources where the certificate was found.Date
getCurrentTime()
Set<CertificateToken>
getProcessedCertificates()
Returns a read only list of all certificates used in the process of the validation of all signatures from the given document.Set<RevocationToken<Revocation>>
getProcessedRevocations()
Returns a read only list of all revocations used in the process of the validation of all signatures from the given document.Set<TimestampToken>
getProcessedTimestamps()
Returns a read only list of all timestamps processed during the validation of all signatures from the given document.void
initialize(CertificateVerifier certificateVerifier)
void
setCurrentTime(Date currentTime)
This function sets the validation time.void
validate()
Carries out the validation process in recursive manner for not yet checked tokens.
-
Field Details
-
currentTime
This is the time at what the validation is carried out. It is used only for test purpose.
-
-
Constructor Details
-
SignatureValidationContext
public SignatureValidationContext()This constructor is used during the signature creation process.
-
-
Method Details
-
initialize
- Specified by:
initialize
in interfaceValidationContext
- Parameters:
certificateVerifier
- The certificates verifier (eg: using the TSL as list of trusted certificates).
-
getCurrentTime
- Specified by:
getCurrentTime
in interfaceValidationContext
-
setCurrentTime
Description copied from interface:ValidationContext
This function sets the validation time.- Specified by:
setCurrentTime
in interfaceValidationContext
- Parameters:
currentTime
- the currentDate
-
addRevocationTokenForVerification
Description copied from interface:ValidationContext
Adds a new revocation token to the list of tokens to verify. If the revocation token has already been added then it is ignored.- Specified by:
addRevocationTokenForVerification
in interfaceValidationContext
- Parameters:
revocationToken
- an instance ofRevocationToken
revocation tokens to verify
-
addCertificateTokenForVerification
Description copied from interface:ValidationContext
Adds a new certificate token to the list of tokens to verify. If the certificate token has already been added then it is ignored.- Specified by:
addCertificateTokenForVerification
in interfaceValidationContext
- Parameters:
certificateToken
-CertificateToken
certificate token to verify
-
addTimestampTokenForVerification
Description copied from interface:ValidationContext
Adds a new timestamp token to the list of tokens to verify. If the timestamp token has already been added then it is ignored.- Specified by:
addTimestampTokenForVerification
in interfaceValidationContext
- Parameters:
timestampToken
-TimestampToken
timestamp token to verify
-
validate
public void validate()Description copied from interface:ValidationContext
Carries out the validation process in recursive manner for not yet checked tokens.- Specified by:
validate
in interfaceValidationContext
-
checkAllRequiredRevocationDataPresent
public boolean checkAllRequiredRevocationDataPresent()Description copied from interface:ValidationContext
This method allows to verify if all processed certificates have a revocation data Additionally, an alert can be handledCertificateVerifier.setAlertOnMissingRevocationData(eu.europa.esig.dss.alert.StatusAlert)
- Specified by:
checkAllRequiredRevocationDataPresent
in interfaceValidationContext
- Returns:
- true if all needed revocation data are present
-
checkAllPOECoveredByRevocationData
public boolean checkAllPOECoveredByRevocationData()Description copied from interface:ValidationContext
This method allows to verify if all POE (timestamp tokens) are covered by a revocation data Additionally, an alert can be handledCertificateVerifier.setAlertOnUncoveredPOE(eu.europa.esig.dss.alert.StatusAlert)
- Specified by:
checkAllPOECoveredByRevocationData
in interfaceValidationContext
- Returns:
- true if all timestamps are covered by a usable revocation data
-
checkAllTimestampsValid
public boolean checkAllTimestampsValid()Description copied from interface:ValidationContext
This method allows to verify if all processed timestamps are valid and intact. Additionally, an alert can be handledCertificateVerifier.setAlertOnInvalidTimestamp(eu.europa.esig.dss.alert.StatusAlert)
- Specified by:
checkAllTimestampsValid
in interfaceValidationContext
- Returns:
- true if all timestamps are valid
-
checkAllCertificatesValid
public boolean checkAllCertificatesValid()Description copied from interface:ValidationContext
This method allows to verify if all processed certificates are not revoked Additionally, an alert can be handledCertificateVerifier.setAlertOnRevokedCertificate(eu.europa.esig.dss.alert.StatusAlert)
- Specified by:
checkAllCertificatesValid
in interfaceValidationContext
- Returns:
- true if all certificates are valid
-
checkAtLeastOneRevocationDataPresentAfterBestSignatureTime
public boolean checkAtLeastOneRevocationDataPresentAfterBestSignatureTime(CertificateToken signingCertificate)Description copied from interface:ValidationContext
This method allows to verify if there is at least one revocation data present after the earliest available timestamp token producing time Additionally, an alert can be handledCertificateVerifier.setAlertOnNoRevocationAfterBestSignatureTime(eu.europa.esig.dss.alert.StatusAlert)
- Specified by:
checkAtLeastOneRevocationDataPresentAfterBestSignatureTime
in interfaceValidationContext
- Parameters:
signingCertificate
-CertificateToken
signing certificate of the signature to be checked- Returns:
- true if the signing certificate is covered with a updated revocation data (after signature-timestamp production time)
-
getProcessedCertificates
Description copied from interface:ValidationContext
Returns a read only list of all certificates used in the process of the validation of all signatures from the given document. This list includes the certificate to check, certification chain certificates, OCSP response certificate...- Specified by:
getProcessedCertificates
in interfaceValidationContext
- Returns:
- The list of CertificateToken(s)
-
getCertificateSourceTypes
Description copied from interface:ValidationContext
Returns a map ofCertificateSourceType
byCertificateToken
which contains the sources where the certificate was found.- Specified by:
getCertificateSourceTypes
in interfaceValidationContext
- Returns:
- a map of CertificateSourceType by CertificateToken
-
getProcessedRevocations
Description copied from interface:ValidationContext
Returns a read only list of all revocations used in the process of the validation of all signatures from the given document.- Specified by:
getProcessedRevocations
in interfaceValidationContext
- Returns:
- The list of CertificateToken(s)
-
getProcessedTimestamps
Description copied from interface:ValidationContext
Returns a read only list of all timestamps processed during the validation of all signatures from the given document.- Specified by:
getProcessedTimestamps
in interfaceValidationContext
- Returns:
- The list of CertificateToken(s)
-