Cloneable
, CertPathChecker
public abstract class PKIXRevocationChecker extends PKIXCertPathChecker
PKIXCertPathChecker
for checking the revocation status of certificates with the PKIX algorithm. A PKIXRevocationChecker
checks the revocation status of certificates with the Online Certificate Status Protocol (OCSP) or Certificate Revocation Lists (CRLs). OCSP is described in RFC 2560 and is a network protocol for determining the status of a certificate. A CRL is a time-stamped list identifying revoked certificates, and RFC 5280 describes an algorithm for determining the revocation status of certificates using CRLs.
Each PKIXRevocationChecker
must be able to check the revocation status of certificates with OCSP and CRLs. By default, OCSP is the preferred mechanism for checking revocation status, with CRLs as the fallback mechanism. However, this preference can be switched to CRLs with the PREFER_CRLS
option. In addition, the fallback mechanism can be disabled with the NO_FALLBACK
option.
A PKIXRevocationChecker
is obtained by calling the getRevocationChecker
method of a PKIX CertPathValidator
. Additional parameters and options specific to revocation can be set (by calling the setOcspResponder
method for instance). The PKIXRevocationChecker
is added to a PKIXParameters
object using the addCertPathChecker
or setCertPathCheckers
method, and then the PKIXParameters
is passed along with the CertPath
to be validated to the validate
method of a PKIX CertPathValidator
. When supplying a revocation checker in this manner, it will be used to check revocation irrespective of the setting of the RevocationEnabled
flag, and will override the default revocation checking mechanism of the PKIX service provider. Similarly, a PKIXRevocationChecker
may be added to a PKIXBuilderParameters
object for use with a PKIX CertPathBuilder
.
Note that when a PKIXRevocationChecker
is added to PKIXParameters
, it clones the PKIXRevocationChecker
; thus any subsequent modifications to the PKIXRevocationChecker
have no effect.
Any parameter that is not set (or is set to null
) will be set to the default value for that parameter.
Concurrent Access
Unless otherwise specified, the methods defined in this class are not thread-safe. Multiple threads that need to access a single object concurrently should synchronize amongst themselves and provide the necessary locking. Multiple threads each manipulating separate objects need not synchronize.
Modifier and Type | Class | Description |
---|---|---|
static enum |
PKIXRevocationChecker.Option |
Various revocation options that can be specified for the revocation checking mechanism. |
Modifier | Constructor | Description |
---|---|---|
protected |
Default constructor. |
Modifier and Type | Method | Description |
---|---|---|
PKIXRevocationChecker |
clone() |
Returns a clone of this object. |
List |
getOcspExtensions() |
Gets the optional OCSP request extensions. |
URI |
getOcspResponder() |
Gets the URI that identifies the location of the OCSP responder. |
X509Certificate |
getOcspResponderCert() |
Gets the OCSP responder's certificate. |
Map |
getOcspResponses() |
Gets the OCSP responses. |
Set |
getOptions() |
Gets the revocation options. |
abstract List |
getSoftFailExceptions() |
Returns a list containing the exceptions that are ignored by the revocation checker when the SOFT_FAIL option is set. |
void |
setOcspExtensions |
Sets the optional OCSP request extensions. |
void |
setOcspResponder |
Sets the URI that identifies the location of the OCSP responder. |
void |
setOcspResponderCert |
Sets the OCSP responder's certificate. |
void |
setOcspResponses |
Sets the OCSP responses. |
void |
setOptions |
Sets the revocation options. |
check, check, getSupportedExtensions, init, isForwardCheckingSupported
protected PKIXRevocationChecker()
public void setOcspResponder(URI uri)
ocsp.responderURL
security property and any responder specified in a certificate's Authority Information Access Extension, as defined in RFC 5280.uri
- the responder URIpublic URI getOcspResponder()
ocsp.responderURL
security property. If this parameter or the ocsp.responderURL
property is not set, the location is determined from the certificate's Authority Information Access Extension, as defined in RFC 5280.null
if not setpublic void setOcspResponderCert(X509Certificate cert)
ocsp.responderCertSubjectName
, ocsp.responderCertIssuerName
, and ocsp.responderCertSerialNumber
security properties.cert
- the responder's certificatepublic X509Certificate getOcspResponderCert()
ocsp.responderCertSubjectName
, ocsp.responderCertIssuerName
, and ocsp.responderCertSerialNumber
security properties. If this parameter or the aforementioned properties are not set, then the responder's certificate is determined as specified in RFC 2560.null
if not setpublic void setOcspExtensions(List<Extension> extensions)
extensions
- a list of extensions. The list is copied to protect against subsequent modification.public List<Extension> getOcspExtensions()
public void setOcspResponses(Map<X509Certificate,byte[]> responses)
responses
- a map of OCSP responses. Each key is an X509Certificate
that maps to the corresponding DER-encoded OCSP response for that certificate. A deep copy of the map is performed to protect against subsequent modification.public Map<X509Certificate,byte[]> getOcspResponses()
X509Certificate
that maps to the corresponding DER-encoded OCSP response for that certificate. A deep copy of the map is returned to protect against subsequent modification. Returns an empty map if no responses have been specified.public void setOptions(Set<PKIXRevocationChecker.Option> options)
options
- a set of revocation options. The set is copied to protect against subsequent modification.public Set<PKIXRevocationChecker.Option> getOptions()
public abstract List<CertPathValidatorException> getSoftFailExceptions()
SOFT_FAIL
option is set. The list is cleared each time init
is called. The list is ordered in ascending order according to the certificate index returned by getIndex
method of each entry. An implementation of PKIXRevocationChecker
is responsible for adding the ignored exceptions to the list.
public PKIXRevocationChecker clone()
PKIXCertPathChecker
Object.clone()
method. All subclasses which maintain state must support and override this method, if necessary.clone
in class PKIXCertPathChecker
PKIXCertPathChecker
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/security/cert/PKIXRevocationChecker.html