Package io.netty.handler.codec.quic
Class QuicSslContextBuilder
- java.lang.Object
-
- io.netty.handler.codec.quic.QuicSslContextBuilder
-
public final class QuicSslContextBuilder extends java.lang.ObjectBuilder for configuring a new SslContext for creation.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description QuicSslContextBuilderapplicationProtocols(java.lang.String @Nullable ... applicationProtocols)Application protocol negotiation configuration.QuicSslContextbuild()Create newQuicSslContextinstance with configured settings that can be used forQUIC.static QuicSslContextbuildForServerWithSni(Mapping<? super java.lang.String,? extends QuicSslContext> mapping)Enables support for SNI on the server side.QuicSslContextBuilderclientAuth(ClientAuth clientAuth)Sets the client authentication mode.QuicSslContextBuilderearlyData(boolean enabled)Enable / disable the usage of early data.static QuicSslContextBuilderforClient()Creates a builder for new client-sideQuicSslContextthat can be used forQUIC.static QuicSslContextBuilderforServer(java.io.File keyFile, @Nullable java.lang.String keyPassword, java.io.File certChainFile)Creates a builder for new server-sideQuicSslContextthat can be used forQUIC.static QuicSslContextBuilderforServer(java.security.PrivateKey key, @Nullable java.lang.String keyPassword, java.security.cert.X509Certificate... certChain)Creates a builder for new server-sideQuicSslContextthat can be used forQUIC.static QuicSslContextBuilderforServer(javax.net.ssl.KeyManagerFactory keyManagerFactory, @Nullable java.lang.String password)Creates a builder for new server-sideQuicSslContextthat can be used forQUIC.static QuicSslContextBuilderforServer(javax.net.ssl.KeyManager keyManager, @Nullable java.lang.String keyPassword)QuicSslContextBuilderkeylog(boolean enabled)Enable / disable keylog.QuicSslContextBuilderkeylog(@Nullable BoringSSLKeylog keylog)Enable / disable keylog.QuicSslContextBuilderkeyManager(@Nullable java.io.File keyFile, @Nullable java.lang.String keyPassword, @Nullable java.io.File keyCertChainFile)Identifying certificate for this host.QuicSslContextBuilderkeyManager(@Nullable java.security.PrivateKey key, @Nullable java.lang.String keyPassword, java.security.cert.X509Certificate @Nullable ... certChain)Identifying certificate for this host.QuicSslContextBuilderkeyManager(@Nullable javax.net.ssl.KeyManagerFactory keyManagerFactory, @Nullable java.lang.String keyPassword)Identifying manager for this host.QuicSslContextBuilderkeyManager(javax.net.ssl.KeyManager keyManager, @Nullable java.lang.String password)A single key manager managing the identity information of this host.<T> QuicSslContextBuilderoption(SslContextOption<T> option, T value)Configure aSslContextOption.QuicSslContextBuildersessionCacheSize(long sessionCacheSize)Set the size of the cache used for storing SSL session objects.QuicSslContextBuildersessionTimeout(long sessionTimeout)Set the timeout for the cached SSL session objects, in seconds.QuicSslContextBuildertrustManager(@Nullable java.io.File trustCertCollectionFile)Trusted certificates for verifying the remote endpoint's certificate.QuicSslContextBuildertrustManager(@Nullable javax.net.ssl.TrustManagerFactory trustManagerFactory)Trusted manager for verifying the remote endpoint's certificate.QuicSslContextBuildertrustManager(java.security.cert.X509Certificate @Nullable ... trustCertCollection)Trusted certificates for verifying the remote endpoint's certificate.QuicSslContextBuildertrustManager(javax.net.ssl.TrustManager trustManager)A single trusted manager for verifying the remote endpoint's certificate.
-
-
-
Method Detail
-
forClient
public static QuicSslContextBuilder forClient()
Creates a builder for new client-sideQuicSslContextthat can be used forQUIC.
-
forServer
public static QuicSslContextBuilder forServer(java.io.File keyFile, @Nullable @Nullable java.lang.String keyPassword, java.io.File certChainFile)
Creates a builder for new server-sideQuicSslContextthat can be used forQUIC.- Parameters:
keyFile- a PKCS#8 private key file in PEM formatkeyPassword- the password of thekeyFile, ornullif it's not password-protectedcertChainFile- an X.509 certificate chain file in PEM format- See Also:
keyManager(File, String, File)
-
forServer
public static QuicSslContextBuilder forServer(java.security.PrivateKey key, @Nullable @Nullable java.lang.String keyPassword, java.security.cert.X509Certificate... certChain)
Creates a builder for new server-sideQuicSslContextthat can be used forQUIC.- Parameters:
key- a PKCS#8 private keykeyPassword- the password of thekeyFile, ornullif it's not password-protectedcertChain- the X.509 certificate chain- See Also:
keyManager(File, String, File)
-
forServer
public static QuicSslContextBuilder forServer(javax.net.ssl.KeyManagerFactory keyManagerFactory, @Nullable @Nullable java.lang.String password)
Creates a builder for new server-sideQuicSslContextthat can be used forQUIC.- Parameters:
keyManagerFactory- non-nullfactory for server's private key- See Also:
keyManager(KeyManagerFactory, String)
-
forServer
public static QuicSslContextBuilder forServer(javax.net.ssl.KeyManager keyManager, @Nullable @Nullable java.lang.String keyPassword)
- Parameters:
keyManager- non-nullKeyManager for server's private keykeyPassword- the password of thekeyFile, ornullif it's not password-protected
-
buildForServerWithSni
public static QuicSslContext buildForServerWithSni(Mapping<? super java.lang.String,? extends QuicSslContext> mapping)
Enables support for SNI on the server side.- Parameters:
mapping- theMappingthat is used to map names to theQuicSslContextto use. Usually usingDomainWildcardMappingBuildershould be used to create theMapping.
-
option
public <T> QuicSslContextBuilder option(SslContextOption<T> option, T value)
Configure aSslContextOption.
-
earlyData
public QuicSslContextBuilder earlyData(boolean enabled)
Enable / disable the usage of early data.
-
keylog
public QuicSslContextBuilder keylog(boolean enabled)
Enable / disable keylog. When enabled, TLS keys are logged to an internal logger named "io.netty.handler.codec.quic.BoringSSLLogginKeylog" with DEBUG level, seeBoringSSLKeylogfor detail, logging keys are following NSS Key Log Format. This is intended for debugging use with tools like Wireshark.
-
keylog
public QuicSslContextBuilder keylog(@Nullable @Nullable BoringSSLKeylog keylog)
Enable / disable keylog. When enabled, TLS keys are logged toBoringSSLKeylog.logKey(SSLEngine, String)logging keys are following NSS Key Log Format. This is intended for debugging use with tools like Wireshark.
-
trustManager
public QuicSslContextBuilder trustManager(@Nullable @Nullable java.io.File trustCertCollectionFile)
Trusted certificates for verifying the remote endpoint's certificate. The file should contain an X.509 certificate collection in PEM format.nulluses the system default which only works with Java 8u261 and later as these versions support TLS1.3, see JDK 8u261 Update Release Notes
-
trustManager
public QuicSslContextBuilder trustManager(java.security.cert.X509Certificate @Nullable ... trustCertCollection)
Trusted certificates for verifying the remote endpoint's certificate.nulluses the system default which only works with Java 8u261 and later as these versions support TLS1.3, see JDK 8u261 Update Release Notes
-
trustManager
public QuicSslContextBuilder trustManager(@Nullable @Nullable javax.net.ssl.TrustManagerFactory trustManagerFactory)
Trusted manager for verifying the remote endpoint's certificate.nulluses the system default which only works with Java 8u261 and later as these versions support TLS1.3, see JDK 8u261 Update Release Notes
-
trustManager
public QuicSslContextBuilder trustManager(javax.net.ssl.TrustManager trustManager)
A single trusted manager for verifying the remote endpoint's certificate. This is helpful when custom implementation ofTrustManageris needed. Internally, a simple wrapper ofTrustManagerFactorythat only produces this specifiedTrustManagerwill be created, thus all the requirements specified intrustManager(TrustManagerFactory trustManagerFactory)also apply here.
-
keyManager
public QuicSslContextBuilder keyManager(@Nullable @Nullable java.io.File keyFile, @Nullable @Nullable java.lang.String keyPassword, @Nullable @Nullable java.io.File keyCertChainFile)
Identifying certificate for this host.keyCertChainFileandkeyFilemay benullfor client contexts, which disables mutual authentication.- Parameters:
keyFile- a PKCS#8 private key file in PEM formatkeyPassword- the password of thekeyFile, ornullif it's not password-protectedkeyCertChainFile- an X.509 certificate chain file in PEM format
-
keyManager
public QuicSslContextBuilder keyManager(@Nullable @Nullable java.security.PrivateKey key, @Nullable @Nullable java.lang.String keyPassword, java.security.cert.X509Certificate @Nullable ... certChain)
Identifying certificate for this host.keyCertChainandkeymay benullfor client contexts, which disables mutual authentication.- Parameters:
key- a PKCS#8 private key filekeyPassword- the password of thekey, ornullif it's not password-protectedcertChain- an X.509 certificate chain
-
keyManager
public QuicSslContextBuilder keyManager(@Nullable @Nullable javax.net.ssl.KeyManagerFactory keyManagerFactory, @Nullable @Nullable java.lang.String keyPassword)
Identifying manager for this host.keyManagerFactorymay benullfor client contexts, which disables mutual authentication.
-
keyManager
public QuicSslContextBuilder keyManager(javax.net.ssl.KeyManager keyManager, @Nullable @Nullable java.lang.String password)
A single key manager managing the identity information of this host. This is helpful when custom implementation ofKeyManageris needed. Internally, a wrapper ofKeyManagerFactorythat only produces this specifiedKeyManagerwill be created, thus all the requirements specified inkeyManager(KeyManagerFactory, String)also apply here.
-
applicationProtocols
public QuicSslContextBuilder applicationProtocols(java.lang.String @Nullable ... applicationProtocols)
Application protocol negotiation configuration.nulldisables support.
-
sessionCacheSize
public QuicSslContextBuilder sessionCacheSize(long sessionCacheSize)
Set the size of the cache used for storing SSL session objects.0to use the default value.
-
sessionTimeout
public QuicSslContextBuilder sessionTimeout(long sessionTimeout)
Set the timeout for the cached SSL session objects, in seconds.0to use the default value.
-
clientAuth
public QuicSslContextBuilder clientAuth(ClientAuth clientAuth)
Sets the client authentication mode.
-
build
public QuicSslContext build()
Create newQuicSslContextinstance with configured settings that can be used forQUIC.
-
-