Home / Function/ handle() — netty Function Reference

handle() — netty Function Reference

Architecture documentation for the handle() function in BoringSSLCertificateCallback.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  1ae3bf29_f26e_95be_f9d3_d5dc2a258dbf["handle()"]
  0fd0c2dd_82bc_1c80_9d13_1c23c790e939["BoringSSLCertificateCallback"]
  1ae3bf29_f26e_95be_f9d3_d5dc2a258dbf -->|defined in| 0fd0c2dd_82bc_1c80_9d13_1c23c790e939
  a44defb1_f866_cc20_d5c6_0d9d7dd5d76d["supportedClientKeyTypes()"]
  1ae3bf29_f26e_95be_f9d3_d5dc2a258dbf -->|calls| a44defb1_f866_cc20_d5c6_0d9d7dd5d76d
  044e02ff_832f_7528_120e_8b7fef7bceac["removeMappingIfNeeded()"]
  1ae3bf29_f26e_95be_f9d3_d5dc2a258dbf -->|calls| 044e02ff_832f_7528_120e_8b7fef7bceac
  252b7f62_56c7_6714_7ef3_718b8db1a936["selectKeyMaterialClientSide()"]
  1ae3bf29_f26e_95be_f9d3_d5dc2a258dbf -->|calls| 252b7f62_56c7_6714_7ef3_718b8db1a936
  59a02504_ab5b_7b5b_8310_539c93c5a317["selectKeyMaterialServerSide()"]
  1ae3bf29_f26e_95be_f9d3_d5dc2a258dbf -->|calls| 59a02504_ab5b_7b5b_8310_539c93c5a317
  style 1ae3bf29_f26e_95be_f9d3_d5dc2a258dbf fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-classes-quic/src/main/java/io/netty/handler/codec/quic/BoringSSLCertificateCallback.java lines 109–149

    @SuppressWarnings("unused")
    long @Nullable [] handle(long ssl, byte[] keyTypeBytes, byte @Nullable [][] asn1DerEncodedPrincipals,
                             String[] authMethods) {
        QuicheQuicSslEngine engine = engineMap.get(ssl);
        if (engine == null) {
            return null;
        }

        try {
            if (keyManager == null) {
                if (engine.getUseClientMode()) {
                    return NO_KEY_MATERIAL_CLIENT_SIDE;
                }
                return null;
            }
            if (engine.getUseClientMode()) {
                final Set<String> keyTypesSet = supportedClientKeyTypes(keyTypeBytes);
                final String[] keyTypes = keyTypesSet.toArray(new String[0]);
                final X500Principal[] issuers;
                if (asn1DerEncodedPrincipals == null) {
                    issuers = null;
                } else {
                    issuers = new X500Principal[asn1DerEncodedPrincipals.length];
                    for (int i = 0; i < asn1DerEncodedPrincipals.length; i++) {
                        issuers[i] = new X500Principal(asn1DerEncodedPrincipals[i]);
                    }
                }
                return removeMappingIfNeeded(ssl, selectKeyMaterialClientSide(ssl, engine, keyTypes, issuers));
            } else {
                // For now we just ignore the asn1DerEncodedPrincipals as this is kind of inline with what the
                // OpenJDK SSLEngineImpl does.
                return removeMappingIfNeeded(ssl, selectKeyMaterialServerSide(ssl, engine, authMethods));
            }
        } catch (SSLException e) {
            engineMap.remove(ssl);
            return null;
        } catch (Throwable cause) {
            engineMap.remove(ssl);
            throw cause;
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does handle() do?
handle() is a function in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/BoringSSLCertificateCallback.java.
Where is handle() defined?
handle() is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/BoringSSLCertificateCallback.java at line 109.
What does handle() call?
handle() calls 4 function(s): removeMappingIfNeeded, selectKeyMaterialClientSide, selectKeyMaterialServerSide, supportedClientKeyTypes.

Analyze Your Own Codebase

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

Try Supermodel Free