QuicheQuicSslContext() — netty Function Reference
Architecture documentation for the QuicheQuicSslContext() function in QuicheQuicSslContext.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 4c11817f_e3df_d049_1a15_4c91d56786ee["QuicheQuicSslContext()"] ea71e2fc_ba66_6542_2be3_948d21522ebd["QuicheQuicSslContext"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|defined in| ea71e2fc_ba66_6542_2be3_948d21522ebd f51fe718_2235_ebd0_fc8b_48e726612e61["add()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| f51fe718_2235_ebd0_fc8b_48e726612e61 d259fbec_d17c_642c_2c9b_3340441ddb81["BoringSSLAsyncPrivateKeyMethodAdapter()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| d259fbec_d17c_642c_2c9b_3340441ddb81 c847f4c9_fcd2_70a9_1528_191d4644c2b6["QuicClientSessionCache()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| c847f4c9_fcd2_70a9_1528_191d4644c2b6 7aa1baed_7f72_e9ff_a127_01873d1e70f8["boringSSLVerifyModeForServer()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| 7aa1baed_7f72_e9ff_a127_01873d1e70f8 e2670f42_d48b_71bc_c2f9_9d72ac3e79d9["NativeSslContext()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| e2670f42_d48b_71bc_c2f9_9d72ac3e79d9 7bfe1cde_1667_3525_a51b_1e3b08810110["QuicheQuicApplicationProtocolNegotiator()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| 7bfe1cde_1667_3525_a51b_1e3b08810110 3c4d5e66_b349_d95a_63ea_c8d3f70edbb8["address()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| 3c4d5e66_b349_d95a_63ea_c8d3f70edbb8 572858d2_7081_a4cf_a817_6c9232607380["QuicheQuicSslSessionContext()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| 572858d2_7081_a4cf_a817_6c9232607380 3fc73f85_9f2a_b38b_ae96_69d69b1158ae["setSessionCacheSize()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| 3fc73f85_9f2a_b38b_ae96_69d69b1158ae 3bae5a84_999d_bbba_ea27_bb9f1888b685["setSessionTimeout()"] 4c11817f_e3df_d049_1a15_4c91d56786ee -->|calls| 3bae5a84_999d_bbba_ea27_bb9f1888b685 style 4c11817f_e3df_d049_1a15_4c91d56786ee fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicSslContext.java lines 154–283
QuicheQuicSslContext(boolean server, long sessionTimeout, long sessionCacheSize,
ClientAuth clientAuth, @Nullable TrustManagerFactory trustManagerFactory,
@Nullable KeyManagerFactory keyManagerFactory, String password,
@Nullable Mapping<? super String, ? extends QuicSslContext> mapping,
@Nullable Boolean earlyData, @Nullable BoringSSLKeylog keylog,
String[] applicationProtocols, Map.Entry<SslContextOption<?>, Object>... ctxOptions) {
Quic.ensureAvailability();
this.server = server;
this.clientAuth = server ? checkNotNull(clientAuth, "clientAuth") : ClientAuth.NONE;
final X509TrustManager trustManager;
if (trustManagerFactory == null) {
try {
trustManagerFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init((KeyStore) null);
trustManager = chooseTrustManager(trustManagerFactory);
} catch (Exception e) {
throw new IllegalStateException(e);
}
} else {
trustManager = chooseTrustManager(trustManagerFactory);
}
final X509ExtendedKeyManager keyManager;
if (keyManagerFactory == null) {
if (server) {
throw new IllegalArgumentException("No KeyManagerFactory");
}
keyManager = null;
} else {
keyManager = chooseKeyManager(keyManagerFactory);
}
String[] groups = NAMED_GROUPS;
String[] sigalgs = EmptyArrays.EMPTY_STRINGS;
Map<String, String> serverKeyTypes = null;
Set<String> clientKeyTypes = null;
if (ctxOptions != null) {
for (Map.Entry<SslContextOption<?>, Object> ctxOpt : ctxOptions) {
SslContextOption<?> option = ctxOpt.getKey();
if (option == BoringSSLContextOption.GROUPS) {
String[] groupsArray = (String[]) ctxOpt.getValue();
Set<String> groupsSet = new LinkedHashSet<String>(groupsArray.length);
for (String group : groupsArray) {
groupsSet.add(GroupsConverter.toBoringSSL(group));
}
groups = groupsSet.toArray(EmptyArrays.EMPTY_STRINGS);
} else if (option == BoringSSLContextOption.SIGNATURE_ALGORITHMS) {
String[] sigalgsArray = (String[]) ctxOpt.getValue();
Set<String> sigalgsSet = new LinkedHashSet<String>(sigalgsArray.length);
for (String sigalg : sigalgsArray) {
sigalgsSet.add(sigalg);
}
sigalgs = sigalgsSet.toArray(EmptyArrays.EMPTY_STRINGS);
} else if (option == BoringSSLContextOption.CLIENT_KEY_TYPES) {
clientKeyTypes = (Set<String>) ctxOpt.getValue();
} else if (option == BoringSSLContextOption.SERVER_KEY_TYPES) {
serverKeyTypes = (Map<String, String>) ctxOpt.getValue();
} else {
LOGGER.debug("Skipping unsupported " + SslContextOption.class.getSimpleName()
+ ": " + ctxOpt.getKey());
}
}
}
final BoringSSLPrivateKeyMethod privateKeyMethod;
if (keyManagerFactory instanceof BoringSSLKeylessManagerFactory) {
privateKeyMethod = new BoringSSLAsyncPrivateKeyMethodAdapter(engineMap,
((BoringSSLKeylessManagerFactory) keyManagerFactory).privateKeyMethod);
} else {
privateKeyMethod = null;
}
sessionCache = server ? null : new QuicClientSessionCache();
int verifyMode = server ? boringSSLVerifyModeForServer(this.clientAuth) : BoringSSL.SSL_VERIFY_PEER;
nativeSslContext = new NativeSslContext(BoringSSL.SSLContext_new(server, applicationProtocols,
new BoringSSLHandshakeCompleteCallback(engineMap),
new BoringSSLCertificateCallback(engineMap, keyManager, password, serverKeyTypes, clientKeyTypes),
new BoringSSLCertificateVerifyCallback(engineMap, trustManager),
mapping == null ? null : new BoringSSLTlsextServernameCallback(engineMap, mapping),
keylog == null ? null : new BoringSSLKeylogCallback(engineMap, keylog),
server ? null : new BoringSSLSessionCallback(engineMap, sessionCache), privateKeyMethod,
sessionTicketCallback, verifyMode,
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does QuicheQuicSslContext() do?
QuicheQuicSslContext() is a function in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicSslContext.java.
Where is QuicheQuicSslContext() defined?
QuicheQuicSslContext() is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicSslContext.java at line 154.
What does QuicheQuicSslContext() call?
QuicheQuicSslContext() calls 10 function(s): BoringSSLAsyncPrivateKeyMethodAdapter, NativeSslContext, QuicClientSessionCache, QuicheQuicApplicationProtocolNegotiator, QuicheQuicSslSessionContext, add, address, boringSSLVerifyModeForServer, and 2 more.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free