Class OcspClient
java.lang.Object
io.netty.handler.ssl.ocsp.OcspClient
final class OcspClient
extends java.lang.Object
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final InternalLoggerprivate static final intstatic final java.lang.Stringprivate static final java.security.SecureRandom -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static booleanisIssuingCa(java.security.cert.X509Certificate responderCertificate, java.security.cert.X509Certificate issuerCertificate) RFC 6960 4.2.2.2: Is the certificate of the CA that issued the certificate in question The name and the key are compared instead of the encoding, so that a CA certificate that was re-issued or cross-signed with the same name and key still matches.private static java.lang.StringparseOcspUrlFromCertificate(java.security.cert.X509Certificate cert) Parse OCSP endpoint URL from Certificateprivate static Promise<org.bouncycastle.cert.ocsp.OCSPResp> query(EventLoop eventLoop, ByteBuf ocspRequest, java.lang.String host, int port, java.lang.String path, IoTransport ioTransport, DnsNameResolver dnsNameResolver) Query the OCSP responder for certificate status using HTTP/1.1(package private) static voidquery(java.security.cert.X509Certificate x509Certificate, java.security.cert.X509Certificate issuer, boolean validateResponseNonce, IoTransport ioTransport, DnsNameResolver dnsNameResolver, Promise<org.bouncycastle.cert.ocsp.BasicOCSPResp> responsePromise) Query the certificate status using OCSPprivate static voidvalidateCertificateChain(java.security.cert.X509Certificate responderCertificate, java.security.cert.X509Certificate[] allCerts, java.security.cert.X509Certificate issuerCertificate) Validates that a certificate chain can be built from the responder certificate to the issuer.private static voidvalidateNonce(org.bouncycastle.cert.ocsp.BasicOCSPResp basicResponse, org.bouncycastle.asn1.DEROctetString encodedNonce) Validate OCSP response nonceprivate static voidvalidateResponse(java.security.cert.X509Certificate x509Certificate, org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider, Promise<org.bouncycastle.cert.ocsp.BasicOCSPResp> responsePromise, org.bouncycastle.cert.ocsp.BasicOCSPResp basicResponse, org.bouncycastle.asn1.DEROctetString derNonce, java.security.cert.X509Certificate issuer, boolean validateNonce) (package private) static voidvalidateSignature(org.bouncycastle.cert.ocsp.BasicOCSPResp resp, java.security.cert.X509Certificate issuerCertificate) Validate OCSP response signatureMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
logger
-
SECURE_RANDOM
private static final java.security.SecureRandom SECURE_RANDOM -
OCSP_RESPONSE_MAX_SIZE
private static final int OCSP_RESPONSE_MAX_SIZE -
OID_OCSP_SIGNING
public static final java.lang.String OID_OCSP_SIGNING- See Also:
-
-
Constructor Details
-
OcspClient
private OcspClient()
-
-
Method Details
-
query
static void query(java.security.cert.X509Certificate x509Certificate, java.security.cert.X509Certificate issuer, boolean validateResponseNonce, IoTransport ioTransport, DnsNameResolver dnsNameResolver, Promise<org.bouncycastle.cert.ocsp.BasicOCSPResp> responsePromise) Query the certificate status using OCSP- Parameters:
x509Certificate- ClientX509Certificateto validateissuer-X509Certificateissuer of client certificatevalidateResponseNonce- Set totrueto enable OCSP response validationioTransport-IoTransportto useresponsePromise-PromiseofBasicOCSPResp
-
query
private static Promise<org.bouncycastle.cert.ocsp.OCSPResp> query(EventLoop eventLoop, ByteBuf ocspRequest, java.lang.String host, int port, java.lang.String path, IoTransport ioTransport, DnsNameResolver dnsNameResolver) Query the OCSP responder for certificate status using HTTP/1.1- Parameters:
eventLoop-EventLoopfor HTTP request executionocspRequest-ByteBufcontaining OCSP request datahost- OCSP responder hostnameport- OCSP responder portpath- OCSP responder pathioTransport-IoTransportto use- Returns:
- Returns
PromisecontainingOCSPResp
-
validateResponse
private static void validateResponse(java.security.cert.X509Certificate x509Certificate, org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider, Promise<org.bouncycastle.cert.ocsp.BasicOCSPResp> responsePromise, org.bouncycastle.cert.ocsp.BasicOCSPResp basicResponse, org.bouncycastle.asn1.DEROctetString derNonce, java.security.cert.X509Certificate issuer, boolean validateNonce) -
validateNonce
private static void validateNonce(org.bouncycastle.cert.ocsp.BasicOCSPResp basicResponse, org.bouncycastle.asn1.DEROctetString encodedNonce) throws org.bouncycastle.cert.ocsp.OCSPException Validate OCSP response nonce- Throws:
org.bouncycastle.cert.ocsp.OCSPException
-
validateSignature
static void validateSignature(org.bouncycastle.cert.ocsp.BasicOCSPResp resp, java.security.cert.X509Certificate issuerCertificate) throws org.bouncycastle.cert.ocsp.OCSPException Validate OCSP response signature- Throws:
org.bouncycastle.cert.ocsp.OCSPException
-
isIssuingCa
private static boolean isIssuingCa(java.security.cert.X509Certificate responderCertificate, java.security.cert.X509Certificate issuerCertificate) RFC 6960 4.2.2.2:Is the certificate of the CA that issued the certificate in question
The name and the key are compared instead of the encoding, so that a CA certificate that was re-issued or cross-signed with the same name and key still matches. -
validateCertificateChain
private static void validateCertificateChain(java.security.cert.X509Certificate responderCertificate, java.security.cert.X509Certificate[] allCerts, java.security.cert.X509Certificate issuerCertificate) throws org.bouncycastle.cert.ocsp.OCSPException Validates that a certificate chain can be built from the responder certificate to the issuer. Uses Java's CertPathBuilder to construct and validate the chain.- Throws:
org.bouncycastle.cert.ocsp.OCSPException
-
parseOcspUrlFromCertificate
private static java.lang.String parseOcspUrlFromCertificate(java.security.cert.X509Certificate cert) Parse OCSP endpoint URL from Certificate- Parameters:
cert- Certificate to be parsed- Returns:
- OCSP endpoint URL
- Throws:
java.lang.NullPointerException- If we couldn't locate OCSP responder URLjava.lang.IllegalArgumentException- If we couldn't parse X509Certificate into JcaX509CertificateHolder
-