Home / Class/ OcspRequestBuilder Class — netty Architecture

OcspRequestBuilder Class — netty Architecture

Architecture documentation for the OcspRequestBuilder class in OcspRequestBuilder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  5e523b06_3d31_b97e_c8a8_ac39ad8fa6ac["OcspRequestBuilder"]
  2fd5f930_4143_18ae_6e07_5c033af9cf48["OcspRequestBuilder.java"]
  5e523b06_3d31_b97e_c8a8_ac39ad8fa6ac -->|defined in| 2fd5f930_4143_18ae_6e07_5c033af9cf48
  8e13f071_109a_53b1_a8ad_4a011ac2f355["OcspRequestBuilder()"]
  5e523b06_3d31_b97e_c8a8_ac39ad8fa6ac -->|method| 8e13f071_109a_53b1_a8ad_4a011ac2f355
  8cc0e90a_7150_47d1_4f96_4815dc491483["OCSPReq()"]
  5e523b06_3d31_b97e_c8a8_ac39ad8fa6ac -->|method| 8cc0e90a_7150_47d1_4f96_4815dc491483

Relationship Graph

Source Code

example/src/main/java/io/netty/example/ocsp/OcspRequestBuilder.java lines 43–104

public class OcspRequestBuilder {

    private static final SecureRandom GENERATOR = new SecureRandom();

    private SecureRandom generator = GENERATOR;

    private DigestCalculator calculator = Digester.sha1();

    private X509Certificate certificate;

    private X509Certificate issuer;

    public OcspRequestBuilder generator(SecureRandom generator) {
        this.generator = generator;
        return this;
    }

    public OcspRequestBuilder calculator(DigestCalculator calculator) {
        this.calculator = calculator;
        return this;
    }

    public OcspRequestBuilder certificate(X509Certificate certificate) {
        this.certificate = certificate;
        return this;
    }

    public OcspRequestBuilder issuer(X509Certificate issuer) {
        this.issuer = issuer;
        return this;
    }

    /**
     * ATTENTION: The returned {@link OCSPReq} is not re-usable/cacheable! It contains a one-time nonce
     * and CA's will (should) reject subsequent requests that have the same nonce value.
     */
    public OCSPReq build() throws OCSPException, IOException, CertificateEncodingException {
        SecureRandom generator = checkNotNull(this.generator, "generator");
        DigestCalculator calculator = checkNotNull(this.calculator, "calculator");
        X509Certificate certificate = checkNotNull(this.certificate, "certificate");
        X509Certificate issuer = checkNotNull(this.issuer, "issuer");

        BigInteger serial = certificate.getSerialNumber();

        CertificateID certId = new CertificateID(calculator,
                new X509CertificateHolder(issuer.getEncoded()), serial);

        OCSPReqBuilder builder = new OCSPReqBuilder();
        builder.addRequest(certId);

        byte[] nonce = new byte[8];
        generator.nextBytes(nonce);

        Extension[] extensions = new Extension[] {
                new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, false,
                        new DEROctetString(nonce)) };

        builder.setRequestExtensions(new Extensions(extensions));

        return builder.build();
    }
}

Frequently Asked Questions

What is the OcspRequestBuilder class?
OcspRequestBuilder is a class in the netty codebase, defined in example/src/main/java/io/netty/example/ocsp/OcspRequestBuilder.java.
Where is OcspRequestBuilder defined?
OcspRequestBuilder is defined in example/src/main/java/io/netty/example/ocsp/OcspRequestBuilder.java at line 43.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free