Home / Class/ OpenSslPrivateKey Class — netty Architecture

OpenSslPrivateKey Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  3810ea06_9298_b689_7913_be34daf0e60b["OpenSslPrivateKey"]
  27aebda7_19ca_4bfd_9f97_d477e1270b96["OpenSslPrivateKey.java"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|defined in| 27aebda7_19ca_4bfd_9f97_d477e1270b96
  82d2ed7e_ee25_2468_2add_e2e2cf370384["OpenSslPrivateKey()"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|method| 82d2ed7e_ee25_2468_2add_e2e2cf370384
  39adc83a_1efe_11c3_a3e5_02079a93d12f["String()"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|method| 39adc83a_1efe_11c3_a3e5_02079a93d12f
  da007ba2_17ef_6f85_c635_25d376509378["getEncoded()"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|method| da007ba2_17ef_6f85_c635_25d376509378
  0b82a72f_0a4b_edcd_7703_c3ac0159d074["privateKeyAddress()"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|method| 0b82a72f_0a4b_edcd_7703_c3ac0159d074
  81f6f263_350f_8e38_b7f9_bcc2ec76da9b["deallocate()"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|method| 81f6f263_350f_8e38_b7f9_bcc2ec76da9b
  97a92a17_6ddc_6e99_c6c2_4550bbe7dc20["destroy()"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|method| 97a92a17_6ddc_6e99_c6c2_4550bbe7dc20
  e182642c_ca95_c7a0_954f_1a38fb354288["isDestroyed()"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|method| e182642c_ca95_c7a0_954f_1a38fb354288
  ff15ec72_ff4f_c596_8283_81ddd466f249["OpenSslKeyMaterial()"]
  3810ea06_9298_b689_7913_be34daf0e60b -->|method| ff15ec72_ff4f_c596_8283_81ddd466f249

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/OpenSslPrivateKey.java lines 27–191

final class OpenSslPrivateKey extends AbstractReferenceCounted implements PrivateKey {

    private long privateKeyAddress;

    OpenSslPrivateKey(long privateKeyAddress) {
        this.privateKeyAddress = privateKeyAddress;
    }

    @Override
    public String getAlgorithm() {
        return "unknown";
    }

    @Override
    public String getFormat() {
        // As we do not support encoding we should return null as stated in the javadocs of PrivateKey.
        return null;
    }

    @Override
    public byte[] getEncoded() {
        return null;
    }

    private long privateKeyAddress() {
        if (refCnt() <= 0) {
            throw new IllegalReferenceCountException();
        }
        return privateKeyAddress;
    }

    @Override
    protected void deallocate() {
        SSL.freePrivateKey(privateKeyAddress);
        privateKeyAddress = 0;
    }

    @Override
    public OpenSslPrivateKey retain() {
        super.retain();
        return this;
    }

    @Override
    public OpenSslPrivateKey retain(int increment) {
        super.retain(increment);
        return this;
    }

    @Override
    public OpenSslPrivateKey touch() {
        super.touch();
        return this;
    }

    @Override
    public OpenSslPrivateKey touch(Object hint) {
        return this;
    }

    /**
     * NOTE: This is a JDK8 interface/method. Due to backwards compatibility
     * reasons it's not possible to slap the {@code @Override} annotation onto
     * this method.
     *
     * @see Destroyable#destroy()
     */
    @Override
    public void destroy() {
        release(refCnt());
    }

    /**
     * NOTE: This is a JDK8 interface/method. Due to backwards compatibility
     * reasons it's not possible to slap the {@code @Override} annotation onto
     * this method.
     *
     * @see Destroyable#isDestroyed()
     */
    @Override
    public boolean isDestroyed() {

Frequently Asked Questions

What is the OpenSslPrivateKey class?
OpenSslPrivateKey is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/OpenSslPrivateKey.java.
Where is OpenSslPrivateKey defined?
OpenSslPrivateKey is defined in handler/src/main/java/io/netty/handler/ssl/OpenSslPrivateKey.java at line 27.

Analyze Your Own Codebase

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

Try Supermodel Free