Class OpenSsl
java.lang.Object
io.netty.handler.ssl.OpenSsl
public final class OpenSsl
extends java.lang.Object
Tells if
netty-tcnative and its OpenSSL support
are available.-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final java.util.Set<java.lang.String> private static final java.util.Set<java.lang.String> private static final java.util.Set<java.lang.String> private static final java.util.Set<java.lang.String> (package private) static final java.util.List<java.lang.String> private static final java.lang.String[](package private) static final java.lang.String[](package private) static final java.lang.Stringprivate static final booleanprivate static final boolean(package private) static final booleanprivate static final InternalLogger(package private) static final java.lang.String[]private static final java.util.Set<java.lang.String> private static final intprivate static final intprivate static final intprivate static final intprivate static final booleanprivate static final booleanprivate static final intprivate static final intprivate static final intprivate static final intprivate static final booleanprivate static final java.lang.Throwableprivate static final boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic java.util.Set<java.lang.String> Deprecated.static java.util.Set<java.lang.String> Returns all the available cipher suites (Java-style).static java.util.Set<java.lang.String> Returns all the available OpenSSL cipher suites.(package private) static java.lang.StringcheckTls13Ciphers(InternalLogger logger, java.lang.String ciphers) (package private) static java.lang.String[]defaultProtocols(boolean isClient) private static java.util.Set<java.lang.String> defaultProtocols(java.lang.String property) private static booleanprivate static booleandoesSupportProtocol(int protocol, int opt) static voidEnsure thatnetty-tcnativeand its OpenSSL support are available.private static intgetProtocolBit(java.lang.String protocol) private static booleaninitializeTcNative(java.lang.String engine) static booleanDeprecated.static booleanReturnstrueif and only ifnetty-tcnativeand its OpenSSL support are available.(package private) static booleanisAWSLC()(package private) static booleanstatic booleanisCipherSuiteAvailable(java.lang.String cipherSuite) Returnstrueif and only if the specified cipher suite is available in OpenSSL.static booleanReturnstrueif the used version of OpenSSL supports OCSP stapling.(package private) static booleanisOptionSupported(SslContextOption<?> option) (package private) static booleanisProtocolSupported(java.lang.String protocol) static booleanReturnstrueif the used version of OpenSSL supports renegotiation.(package private) static boolean(package private) static booleanprivate static void(package private) static longmemoryAddress(ByteBuf buf) (package private) static voidreleaseIfNeeded(ReferenceCounted counted) (package private) static java.security.cert.X509CertificateReturns a self-signedX509Certificatefornetty.io.static booleanDeprecated.Will be removed because hostname validation is always done by aTrustManagerimplementation.static booleanReturnstrueifKeyManagerFactoryis supported when using OpenSSL.static java.lang.ThrowableReturns the cause of unavailability ofnetty-tcnativeand its OpenSSL support.(package private) static java.util.List<java.lang.String> (package private) static booleanstatic intversion()static java.lang.StringReturns the version string of the used available OpenSSL library ornullifisAvailable()returnsfalse.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
logger
-
UNAVAILABILITY_CAUSE
private static final java.lang.Throwable UNAVAILABILITY_CAUSE -
DEFAULT_CIPHERS
static final java.util.List<java.lang.String> DEFAULT_CIPHERS -
AVAILABLE_CIPHER_SUITES
static final java.util.Set<java.lang.String> AVAILABLE_CIPHER_SUITES -
AVAILABLE_OPENSSL_CIPHER_SUITES
private static final java.util.Set<java.lang.String> AVAILABLE_OPENSSL_CIPHER_SUITES -
AVAILABLE_JAVA_CIPHER_SUITES
private static final java.util.Set<java.lang.String> AVAILABLE_JAVA_CIPHER_SUITES -
SUPPORTS_KEYMANAGER_FACTORY
private static final boolean SUPPORTS_KEYMANAGER_FACTORY -
USE_KEYMANAGER_FACTORY
private static final boolean USE_KEYMANAGER_FACTORY -
SUPPORTS_OCSP
private static final boolean SUPPORTS_OCSP -
TLSV13_SUPPORTED
private static final boolean TLSV13_SUPPORTED -
IS_BORINGSSL
private static final boolean IS_BORINGSSL -
IS_AWSLC
private static final boolean IS_AWSLC -
CLIENT_DEFAULT_PROTOCOLS
private static final java.util.Set<java.lang.String> CLIENT_DEFAULT_PROTOCOLS -
SERVER_DEFAULT_PROTOCOLS
private static final java.util.Set<java.lang.String> SERVER_DEFAULT_PROTOCOLS -
SSL_V2_HELLO
private static final int SSL_V2_HELLO- See Also:
-
SSL_V2
private static final int SSL_V2- See Also:
-
SSL_V3
private static final int SSL_V3- See Also:
-
TLS_V1
private static final int TLS_V1- See Also:
-
TLS_V1_1
private static final int TLS_V1_1- See Also:
-
TLS_V1_2
private static final int TLS_V1_2- See Also:
-
TLS_V1_3
private static final int TLS_V1_3- See Also:
-
supportedProtocolsPacked
private static final int supportedProtocolsPacked -
EXTRA_SUPPORTED_TLS_1_3_CIPHERS
static final java.lang.String[] EXTRA_SUPPORTED_TLS_1_3_CIPHERS -
EXTRA_SUPPORTED_TLS_1_3_CIPHERS_STRING
static final java.lang.String EXTRA_SUPPORTED_TLS_1_3_CIPHERS_STRING -
NAMED_GROUPS
static final java.lang.String[] NAMED_GROUPS -
JAVAX_CERTIFICATE_CREATION_SUPPORTED
static final boolean JAVAX_CERTIFICATE_CREATION_SUPPORTED -
DEFAULT_NAMED_GROUPS
private static final java.lang.String[] DEFAULT_NAMED_GROUPS
-
-
Constructor Details
-
OpenSsl
private OpenSsl()
-
-
Method Details
-
checkTls13Ciphers
-
isSessionCacheSupported
static boolean isSessionCacheSupported() -
selfSignedCertificate
static java.security.cert.X509Certificate selfSignedCertificate() throws java.security.cert.CertificateExceptionReturns a self-signedX509Certificatefornetty.io.- Throws:
java.security.cert.CertificateException
-
doesSupportOcsp
private static boolean doesSupportOcsp() -
doesSupportProtocol
private static boolean doesSupportProtocol(int protocol, int opt) -
isAvailable
public static boolean isAvailable()Returnstrueif and only ifnetty-tcnativeand its OpenSSL support are available. -
isAlpnSupported
@Deprecated public static boolean isAlpnSupported()Deprecated.Returnstrueif the used version of openssl supports ALPN. -
isOcspSupported
public static boolean isOcspSupported()Returnstrueif the used version of OpenSSL supports OCSP stapling. -
isRenegotiationSupported
public static boolean isRenegotiationSupported()Returnstrueif the used version of OpenSSL supports renegotiation.Some implementations, such as BoringSSL and AWS-LC, intentionally do not support renegotiation.
- Returns:
trueif renegotiation is supported, otherwisefalse.
-
version
public static int version() -
versionString
public static java.lang.String versionString()Returns the version string of the used available OpenSSL library ornullifisAvailable()returnsfalse. -
ensureAvailability
public static void ensureAvailability()Ensure thatnetty-tcnativeand its OpenSSL support are available.- Throws:
java.lang.UnsatisfiedLinkError- if unavailable
-
availableCipherSuites
@Deprecated public static java.util.Set<java.lang.String> availableCipherSuites()Deprecated. -
availableOpenSslCipherSuites
public static java.util.Set<java.lang.String> availableOpenSslCipherSuites()Returns all the available OpenSSL cipher suites. Please note that the returned array may include the cipher suites that are insecure or non-functional. -
availableJavaCipherSuites
public static java.util.Set<java.lang.String> availableJavaCipherSuites()Returns all the available cipher suites (Java-style). Please note that the returned array may include the cipher suites that are insecure or non-functional. -
isCipherSuiteAvailable
public static boolean isCipherSuiteAvailable(java.lang.String cipherSuite) Returnstrueif and only if the specified cipher suite is available in OpenSSL. Both Java-style cipher suite and OpenSSL-style cipher suite are accepted. -
supportsKeyManagerFactory
public static boolean supportsKeyManagerFactory()ReturnstrueifKeyManagerFactoryis supported when using OpenSSL. -
supportsHostnameValidation
@Deprecated public static boolean supportsHostnameValidation()Deprecated.Will be removed because hostname validation is always done by aTrustManagerimplementation. -
useKeyManagerFactory
static boolean useKeyManagerFactory() -
memoryAddress
-
loadTcNative
private static void loadTcNative() throws java.lang.Exception- Throws:
java.lang.Exception
-
initializeTcNative
private static boolean initializeTcNative(java.lang.String engine) throws java.lang.Exception - Throws:
java.lang.Exception
-
releaseIfNeeded
-
isTlsv13Supported
static boolean isTlsv13Supported() -
isOptionSupported
-
defaultProtocols
private static java.util.Set<java.lang.String> defaultProtocols(java.lang.String property) -
defaultProtocols
static java.lang.String[] defaultProtocols(boolean isClient) -
isProtocolSupported
static boolean isProtocolSupported(java.lang.String protocol) -
getProtocolBit
private static int getProtocolBit(java.lang.String protocol) -
unpackSupportedProtocols
static java.util.List<java.lang.String> unpackSupportedProtocols() -
isBoringSSL
static boolean isBoringSSL() -
isAWSLC
static boolean isAWSLC()
-
availableOpenSslCipherSuites()