Package org.digidoc4j.impl.asic.tsl
Class LazyTslCertificateSource
java.lang.Object
org.digidoc4j.impl.asic.tsl.LazyTslCertificateSource
- All Implemented Interfaces:
eu.europa.esig.dss.model.tsl.TrustedCertificateSourceWithTime,eu.europa.esig.dss.model.tsl.TrustPropertiesCertificateSource,eu.europa.esig.dss.spi.x509.CertificateSource,eu.europa.esig.dss.spi.x509.TrustedCertificateSource,Serializable,TSLCertificateSource
public class LazyTslCertificateSource
extends Object
implements TSLCertificateSource, eu.europa.esig.dss.spi.x509.TrustedCertificateSource, eu.europa.esig.dss.model.tsl.TrustPropertiesCertificateSource
Lazily initialized certificate source. It allows to initialize objects and populate parameters
where a certificate source is necessary, but is not yet accessed.
The goal is to postpone initialization and downloading of TSL until it is really needed to speed up processes. For example, it is not necessary to download TSL to open container and see signature parameters, but DSS library requires the presence of certificate source. TSL should be downloaded for validation and other functionality where it is really necessary to check the certificates.
To achieve that, a lazily initialized certificate source is used.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioneu.europa.esig.dss.model.x509.CertificateTokenaddCertificate(eu.europa.esig.dss.model.x509.CertificateToken certificate) voidaddCertificate(eu.europa.esig.dss.model.x509.CertificateToken certificate, List<eu.europa.esig.dss.model.tsl.TrustProperties> trustProperties) This method allows to define (to add) any certificate as trusted.voidaddTSLCertificate(X509Certificate certificate) This method allows to define (to add) any certificate as trusted.Set<eu.europa.esig.dss.model.x509.CertificateToken> findTokensFromCertRef(eu.europa.esig.dss.spi.x509.CertificateRef certificateRef) getAlternativeCRLUrls(eu.europa.esig.dss.model.x509.CertificateToken certificateToken) Returns a list of alternative CRL access point Urls for certificates issued by the current trust anchorgetAlternativeOCSPUrls(eu.europa.esig.dss.model.x509.CertificateToken certificateToken) Returns a list of alternative OCSP access point Urls for certificates issued by the current trust anchorSet<eu.europa.esig.dss.model.x509.CertificateToken> getByCertificateDigest(eu.europa.esig.dss.model.Digest digest) Set<eu.europa.esig.dss.model.x509.CertificateToken> getByEntityKey(eu.europa.esig.dss.model.identifier.EntityIdentifier entityIdentifier) Set<eu.europa.esig.dss.model.x509.CertificateToken> getByPublicKey(PublicKey publicKey) Set<eu.europa.esig.dss.model.x509.CertificateToken> getBySignerIdentifier(eu.europa.esig.dss.spi.x509.SignerIdentifier signerIdentifier) Set<eu.europa.esig.dss.model.x509.CertificateToken> getBySki(byte[] bytes) Set<eu.europa.esig.dss.model.x509.CertificateToken> getBySubject(eu.europa.esig.dss.model.x509.X500PrincipalHelper subject) List<eu.europa.esig.dss.model.x509.CertificateToken> Retrieves the list of all certificate tokens from this source.eu.europa.esig.dss.enumerations.CertificateSourceTypeList<eu.europa.esig.dss.spi.x509.CertificateSourceEntity> intThis method returns the number of stored certificates in this sourceintGets the number of trusted entity keys (public key + subject name)eu.europa.esig.dss.model.tsl.TLValidationJobSummaryGets TL Validation job summaryList<eu.europa.esig.dss.model.tsl.TrustProperties> getTrustServices(eu.europa.esig.dss.model.x509.CertificateToken token) Retrieves the list of trust properties for the gifen certificate token.eu.europa.esig.dss.model.tsl.CertificateTrustTimegetTrustTime(eu.europa.esig.dss.model.x509.CertificateToken certificateToken) Returns trust time period for the given certificate, when the certificate is considered as a trust anchor.voidInvalidates cache Only applicable when cache is used.booleanbooleanisCertificateSourceEqual(eu.europa.esig.dss.spi.x509.CertificateSource certificateSource) booleanisCertificateSourceEquivalent(eu.europa.esig.dss.spi.x509.CertificateSource certificateSource) booleanisKnown(eu.europa.esig.dss.model.x509.CertificateToken token) booleanisTrusted(eu.europa.esig.dss.model.x509.CertificateToken certificateToken) booleanisTrustedAtTime(eu.europa.esig.dss.model.x509.CertificateToken certificateToken, Date date) voidrefresh()voidsetCacheExpirationTime(Long cacheExpirationTime) voidsetSummary(eu.europa.esig.dss.model.tsl.TLValidationJobSummary tlValidationJobSummary) voidsetTrustPropertiesByCertificates(Map<eu.europa.esig.dss.model.x509.CertificateToken, List<eu.europa.esig.dss.model.tsl.TrustProperties>> map) voidsetTrustTimeByCertificates(Map<eu.europa.esig.dss.model.x509.CertificateToken, List<eu.europa.esig.dss.model.tsl.CertificateTrustTime>> map) Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.digidoc4j.TSLCertificateSource
getNumberOfTrustedPublicKeys
-
Constructor Details
-
LazyTslCertificateSource
- Parameters:
tslLoader- TSL loader
-
-
Method Details
-
addCertificate
public eu.europa.esig.dss.model.x509.CertificateToken addCertificate(eu.europa.esig.dss.model.x509.CertificateToken certificate) - Specified by:
addCertificatein interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
addCertificate
public void addCertificate(eu.europa.esig.dss.model.x509.CertificateToken certificate, List<eu.europa.esig.dss.model.tsl.TrustProperties> trustProperties) Description copied from interface:TSLCertificateSourceThis method allows to define (to add) any certificate as trusted. Service information is associated to this certificate.- Specified by:
addCertificatein interfaceTSLCertificateSource- Parameters:
certificate- the certificate you have to trusttrustProperties- list of the service information associated to the service
-
addTSLCertificate
Description copied from interface:TSLCertificateSourceThis method allows to define (to add) any certificate as trusted. Use with caution: the default Trust Service Provider settings used in this method may not correspond with the actual properties of this Trust Service, specified in the official European Commission Trust List. This method uses a set of default settings to add a CA service issuing Qualified Certificates to the library's trust store. ServiceName will be the certificate's CN field value
ServiceTypeIdentifier will be:
http://uri.etsi.org/TrstSvc/Svctype/Certstatus/OCSP/QC - if certificate contains "OCSPSigning" extended key usage
http://uri.etsi.org/TrstSvc/Svctype/TSA/QTST - if certificate contains "timeStamping" extended key usage http://uri.etsi.org/TrstSvc/Svctype/CA/QC - otherwise
Qualifier will be http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/QCWithSSCD with nonRepudiation
ServiceStatus will be:
Certificate's NotBefore pre Eidas -> http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/undersupervision
Certificate's NotBefore post Eidas -> http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted
CountryCode will be EU
TLInfo for EU will be added automatically when it does not exist- Specified by:
addTSLCertificatein interfaceTSLCertificateSource- Parameters:
certificate- X509 certificate to be added to the list, a certificate you have to trust.
-
findTokensFromCertRef
public Set<eu.europa.esig.dss.model.x509.CertificateToken> findTokensFromCertRef(eu.europa.esig.dss.spi.x509.CertificateRef certificateRef) - Specified by:
findTokensFromCertRefin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getAlternativeOCSPUrls
public List<String> getAlternativeOCSPUrls(eu.europa.esig.dss.model.x509.CertificateToken certificateToken) Description copied from interface:TSLCertificateSourceReturns a list of alternative OCSP access point Urls for certificates issued by the current trust anchor- Specified by:
getAlternativeOCSPUrlsin interfaceeu.europa.esig.dss.spi.x509.TrustedCertificateSource- Specified by:
getAlternativeOCSPUrlsin interfaceTSLCertificateSource- Parameters:
certificateToken-CertificateToken- Returns:
- a list of
Strings
-
getAlternativeCRLUrls
public List<String> getAlternativeCRLUrls(eu.europa.esig.dss.model.x509.CertificateToken certificateToken) Description copied from interface:TSLCertificateSourceReturns a list of alternative CRL access point Urls for certificates issued by the current trust anchor- Specified by:
getAlternativeCRLUrlsin interfaceeu.europa.esig.dss.spi.x509.TrustedCertificateSource- Specified by:
getAlternativeCRLUrlsin interfaceTSLCertificateSource- Parameters:
certificateToken-CertificateToken- Returns:
- a list of
Strings
-
getByEntityKey
public Set<eu.europa.esig.dss.model.x509.CertificateToken> getByEntityKey(eu.europa.esig.dss.model.identifier.EntityIdentifier entityIdentifier) - Specified by:
getByEntityKeyin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getByCertificateDigest
public Set<eu.europa.esig.dss.model.x509.CertificateToken> getByCertificateDigest(eu.europa.esig.dss.model.Digest digest) - Specified by:
getByCertificateDigestin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getByPublicKey
- Specified by:
getByPublicKeyin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getBySignerIdentifier
public Set<eu.europa.esig.dss.model.x509.CertificateToken> getBySignerIdentifier(eu.europa.esig.dss.spi.x509.SignerIdentifier signerIdentifier) - Specified by:
getBySignerIdentifierin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getBySki
- Specified by:
getBySkiin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getBySubject
public Set<eu.europa.esig.dss.model.x509.CertificateToken> getBySubject(eu.europa.esig.dss.model.x509.X500PrincipalHelper subject) - Specified by:
getBySubjectin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getCertificates
Description copied from interface:TSLCertificateSourceRetrieves the list of all certificate tokens from this source.- Specified by:
getCertificatesin interfaceeu.europa.esig.dss.spi.x509.CertificateSource- Specified by:
getCertificatesin interfaceTSLCertificateSource- Returns:
- all the TSL certificates.
-
getCertificateSourceType
public eu.europa.esig.dss.enumerations.CertificateSourceType getCertificateSourceType()- Specified by:
getCertificateSourceTypein interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getEntities
- Specified by:
getEntitiesin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
getNumberOfCertificates
public int getNumberOfCertificates()Description copied from interface:TSLCertificateSourceThis method returns the number of stored certificates in this source- Specified by:
getNumberOfCertificatesin interfaceTSLCertificateSource- Returns:
- number of certificates in this instance
-
getNumberOfTrustedEntityKeys
public int getNumberOfTrustedEntityKeys()Description copied from interface:TSLCertificateSourceGets the number of trusted entity keys (public key + subject name)- Specified by:
getNumberOfTrustedEntityKeysin interfaceTSLCertificateSource- Returns:
- the number of trusted entity keys (public key + subject name)
-
getSummary
public eu.europa.esig.dss.model.tsl.TLValidationJobSummary getSummary()Description copied from interface:TSLCertificateSourceGets TL Validation job summary- Specified by:
getSummaryin interfaceeu.europa.esig.dss.model.tsl.TrustPropertiesCertificateSource- Specified by:
getSummaryin interfaceTSLCertificateSource- Returns:
TLValidationJobSummary
-
getTrustServices
public List<eu.europa.esig.dss.model.tsl.TrustProperties> getTrustServices(eu.europa.esig.dss.model.x509.CertificateToken token) Description copied from interface:TSLCertificateSourceRetrieves the list of trust properties for the gifen certificate token.- Specified by:
getTrustServicesin interfaceeu.europa.esig.dss.model.tsl.TrustPropertiesCertificateSource- Specified by:
getTrustServicesin interfaceTSLCertificateSource- Parameters:
token-- Returns:
- all the Trust Properties associated with the certificate token.
-
getTrustTime
public eu.europa.esig.dss.model.tsl.CertificateTrustTime getTrustTime(eu.europa.esig.dss.model.x509.CertificateToken certificateToken) Description copied from interface:TSLCertificateSourceReturns trust time period for the given certificate, when the certificate is considered as a trust anchor. For an unbounded period of trust time, returns aCertificateTrustTimewith empty values. When the certificate is not trusted at any time, returns not trustedCertificateTrustTimeentry.- Specified by:
getTrustTimein interfaceeu.europa.esig.dss.model.tsl.TrustedCertificateSourceWithTime- Specified by:
getTrustTimein interfaceTSLCertificateSource- Parameters:
certificateToken-CertificateToken- Returns:
CertificateTrustTime
-
isAllSelfSigned
public boolean isAllSelfSigned()- Specified by:
isAllSelfSignedin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
isCertificateSourceEqual
public boolean isCertificateSourceEqual(eu.europa.esig.dss.spi.x509.CertificateSource certificateSource) - Specified by:
isCertificateSourceEqualin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
isCertificateSourceEquivalent
public boolean isCertificateSourceEquivalent(eu.europa.esig.dss.spi.x509.CertificateSource certificateSource) - Specified by:
isCertificateSourceEquivalentin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
isKnown
public boolean isKnown(eu.europa.esig.dss.model.x509.CertificateToken token) - Specified by:
isKnownin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
isTrusted
public boolean isTrusted(eu.europa.esig.dss.model.x509.CertificateToken certificateToken) - Specified by:
isTrustedin interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
isTrustedAtTime
public boolean isTrustedAtTime(eu.europa.esig.dss.model.x509.CertificateToken certificateToken, Date date) - Specified by:
isTrustedAtTimein interfaceeu.europa.esig.dss.spi.x509.CertificateSource
-
invalidateCache
public void invalidateCache()Description copied from interface:TSLCertificateSourceInvalidates cache Only applicable when cache is used.- Specified by:
invalidateCachein interfaceTSLCertificateSource
-
refresh
public void refresh()- Specified by:
refreshin interfaceTSLCertificateSource
-
setSummary
public void setSummary(eu.europa.esig.dss.model.tsl.TLValidationJobSummary tlValidationJobSummary) - Specified by:
setSummaryin interfaceeu.europa.esig.dss.model.tsl.TrustPropertiesCertificateSource
-
setTrustPropertiesByCertificates
public void setTrustPropertiesByCertificates(Map<eu.europa.esig.dss.model.x509.CertificateToken, List<eu.europa.esig.dss.model.tsl.TrustProperties>> map) - Specified by:
setTrustPropertiesByCertificatesin interfaceeu.europa.esig.dss.model.tsl.TrustPropertiesCertificateSource
-
setTrustTimeByCertificates
public void setTrustTimeByCertificates(Map<eu.europa.esig.dss.model.x509.CertificateToken, List<eu.europa.esig.dss.model.tsl.CertificateTrustTime>> map) - Specified by:
setTrustTimeByCertificatesin interfaceeu.europa.esig.dss.model.tsl.TrustPropertiesCertificateSource
-
getLastCacheReloadingTime
-
getCacheExpirationTime
-
setCacheExpirationTime
-
getTslLoader
-