public final class io.netty.handler.ssl.OpenSsl
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.ssl.OpenSsl
super_class: java.lang.Object
{
private static final io.netty.util.internal.logging.InternalLogger logger;
descriptor: Lio/netty/util/internal/logging/InternalLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Throwable UNAVAILABILITY_CAUSE;
descriptor: Ljava/lang/Throwable;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.util.List<java.lang.String> DEFAULT_CIPHERS;
descriptor: Ljava/util/List;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
static final java.util.Set<java.lang.String> AVAILABLE_CIPHER_SUITES;
descriptor: Ljava/util/Set;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final java.util.Set<java.lang.String> AVAILABLE_OPENSSL_CIPHER_SUITES;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final java.util.Set<java.lang.String> AVAILABLE_JAVA_CIPHER_SUITES;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final boolean SUPPORTS_KEYMANAGER_FACTORY;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean SUPPORTS_HOSTNAME_VALIDATION;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean USE_KEYMANAGER_FACTORY;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean SUPPORTS_OCSP;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.util.Set<java.lang.String> SUPPORTED_PROTOCOLS_SET;
descriptor: Ljava/util/Set;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=19, args_size=0
0: ldc Lio/netty/handler/ssl/OpenSsl;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic io.netty.handler.ssl.OpenSsl.$assertionsDisabled:Z
3: ldc Lio/netty/handler/ssl/OpenSsl;
invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
putstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
4: aconst_null
astore 0
start local 0 5: ldc "io.netty.handler.ssl.noOpenSsl"
iconst_0
invokestatic io.netty.util.internal.SystemPropertyUtil.getBoolean:(Ljava/lang/String;Z)Z
ifeq 16
6: new java.lang.UnsupportedOperationException
dup
7: ldc "OpenSSL was explicit disabled with -Dio.netty.handler.ssl.noOpenSsl=true"
8: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
astore 0
9: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
10: new java.lang.StringBuilder
dup
ldc "netty-tcnative explicit disabled; "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
11: ldc Lio/netty/handler/ssl/OpenSslEngine;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " will be unavailable."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: aload 0
14: invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
15: goto 51
16: StackMap locals: java.lang.Throwable
StackMap stack:
ldc "io.netty.internal.tcnative.SSL"
iconst_0
ldc Lio/netty/handler/ssl/OpenSsl;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
pop
17: goto 25
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
18: astore 1
start local 1 19: aload 1
astore 0
20: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
21: new java.lang.StringBuilder
dup
ldc "netty-tcnative not in the classpath; "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
22: ldc Lio/netty/handler/ssl/OpenSslEngine;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " will be unavailable."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
end local 1 25: StackMap locals:
StackMap stack:
aload 0
ifnonnull 51
26: invokestatic io.netty.handler.ssl.OpenSsl.loadTcNative:()V
27: goto 38
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 1
start local 1 29: aload 1
astore 0
30: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
31: new java.lang.StringBuilder
dup
ldc "Failed to load netty-tcnative; "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: ldc Lio/netty/handler/ssl/OpenSslEngine;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " will be unavailable, unless the "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc "application has already loaded the symbols by some other means. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: ldc "See http://netty.io/wiki/forked-tomcat-native.html for more information."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
35: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
36: aload 1
37: invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 38: StackMap locals:
StackMap stack:
invokestatic io.netty.handler.ssl.OpenSsl.initializeTcNative:()Z
pop
39: aconst_null
astore 0
40: goto 51
StackMap locals:
StackMap stack: java.lang.Throwable
41: astore 1
start local 1 42: aload 0
ifnonnull 44
43: aload 1
astore 0
44: StackMap locals: java.lang.Throwable
StackMap stack:
getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
45: new java.lang.StringBuilder
dup
ldc "Failed to initialize netty-tcnative; "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
46: ldc Lio/netty/handler/ssl/OpenSslEngine;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " will be unavailable. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
47: ldc "See http://netty.io/wiki/forked-tomcat-native.html for more information."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
48: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
49: aload 1
50: invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 51: StackMap locals:
StackMap stack:
aload 0
putstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
52: aload 0
ifnonnull 148
53: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "netty-tcnative using native library: {}"
invokestatic io.netty.internal.tcnative.SSL.versionString:()Ljava/lang/String;
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
54: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 55: new java.util.LinkedHashSet
dup
sipush 128
invokespecial java.util.LinkedHashSet.<init>:(I)V
astore 2
start local 2 56: iconst_0
istore 3
start local 3 57: iconst_0
istore 4
start local 4 58: iconst_0
istore 5
start local 5 59: bipush 31
iconst_1
invokestatic io.netty.internal.tcnative.SSLContext.make:(II)J
lstore 6
start local 6 60: lconst_0
lstore 8
start local 8 61: aconst_null
astore 10
start local 10 62: lload 6
ldc "ALL"
invokestatic io.netty.internal.tcnative.SSLContext.setCipherSuite:(JLjava/lang/String;)Z
pop
63: lload 6
iconst_1
invokestatic io.netty.internal.tcnative.SSL.newSSL:(JZ)J
lstore 11
start local 11 64: lload 11
invokestatic io.netty.internal.tcnative.SSL.getCiphers:(J)[Ljava/lang/String;
dup
astore 16
arraylength
istore 15
iconst_0
istore 14
goto 70
StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long top int int java.lang.String[]
StackMap stack:
65: aload 16
iload 14
aaload
astore 13
start local 13 66: aload 13
ifnull 69
aload 13
invokevirtual java.lang.String.isEmpty:()Z
ifne 69
aload 2
aload 13
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 68
67: goto 69
68: StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long java.lang.String int int java.lang.String[]
StackMap stack:
aload 2
aload 13
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 13 69: StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long top int int java.lang.String[]
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
70: iload 14
iload 15
if_icmplt 65
71: lload 11
iconst_0
ldc "netty.io"
invokestatic io.netty.internal.tcnative.SSL.setHostNameValidation:(JILjava/lang/String;)V
72: iconst_1
istore 5
73: goto 76
StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long
StackMap stack: java.lang.Throwable
74: pop
75: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Hostname Verification not supported."
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
76: StackMap locals:
StackMap stack:
new io.netty.handler.ssl.util.SelfSignedCertificate
dup
invokespecial io.netty.handler.ssl.util.SelfSignedCertificate.<init>:()V
astore 10
77: iconst_1
anewarray java.security.cert.X509Certificate
dup
iconst_0
aload 10
invokevirtual io.netty.handler.ssl.util.SelfSignedCertificate.cert:()Ljava/security/cert/X509Certificate;
aastore
invokestatic io.netty.handler.ssl.ReferenceCountedOpenSslContext.toBIO:([Ljava/security/cert/X509Certificate;)J
lstore 8
78: lload 11
lload 8
iconst_0
invokestatic io.netty.internal.tcnative.SSL.setCertificateChainBio:(JJZ)V
79: iconst_1
istore 3
80: new io.netty.handler.ssl.OpenSsl$1
dup
invokespecial io.netty.handler.ssl.OpenSsl$1.<init>:()V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
istore 4
81: goto 95
StackMap locals:
StackMap stack: java.lang.Throwable
82: pop
83: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Failed to get useKeyManagerFactory system property."
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
84: goto 95
StackMap locals:
StackMap stack: java.lang.Throwable
85: pop
86: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "KeyManagerFactory not supported."
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
87: goto 95
StackMap locals:
StackMap stack: java.lang.Throwable
88: astore 17
89: lload 11
invokestatic io.netty.internal.tcnative.SSL.freeSSL:(J)V
90: lload 8
lconst_0
lcmp
ifeq 92
91: lload 8
invokestatic io.netty.internal.tcnative.SSL.freeBIO:(J)V
92: StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long top top top top java.lang.Throwable
StackMap stack:
aload 10
ifnull 94
93: aload 10
invokevirtual io.netty.handler.ssl.util.SelfSignedCertificate.delete:()V
94: StackMap locals:
StackMap stack:
aload 17
athrow
95: StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long
StackMap stack:
lload 11
invokestatic io.netty.internal.tcnative.SSL.freeSSL:(J)V
96: lload 8
lconst_0
lcmp
ifeq 98
97: lload 8
invokestatic io.netty.internal.tcnative.SSL.freeBIO:(J)V
98: StackMap locals:
StackMap stack:
aload 10
ifnull 104
99: aload 10
invokevirtual io.netty.handler.ssl.util.SelfSignedCertificate.delete:()V
end local 11 100: goto 104
StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate
StackMap stack: java.lang.Throwable
101: astore 18
102: lload 6
invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
pop
103: aload 18
athrow
104: StackMap locals:
StackMap stack:
lload 6
invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
pop
end local 10 end local 8 end local 6 105: goto 108
StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int
StackMap stack: java.lang.Exception
106: astore 6
start local 6 107: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Failed to get the list of available OpenSSL cipher suites."
aload 6
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 108: StackMap locals:
StackMap stack:
aload 2
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
109: new java.util.LinkedHashSet
dup
110: getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
iconst_2
imul
111: invokespecial java.util.LinkedHashSet.<init>:(I)V
astore 6
start local 6 112: getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 116
StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int java.util.Set top java.util.Iterator
StackMap stack:
113: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 114: aload 6
aload 7
ldc "TLS"
invokestatic io.netty.handler.ssl.CipherSuiteConverter.toJava:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
115: aload 6
aload 7
ldc "SSL"
invokestatic io.netty.handler.ssl.CipherSuiteConverter.toJava:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 7 116: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 113
117: aload 6
aload 1
getstatic io.netty.handler.ssl.SslUtils.DEFAULT_CIPHER_SUITES:[Ljava/lang/String;
invokestatic io.netty.handler.ssl.SslUtils.addIfSupported:(Ljava/util/Set;Ljava/util/List;[Ljava/lang/String;)V
118: aload 1
aload 6
invokestatic io.netty.handler.ssl.SslUtils.useFallbackCiphersIfDefaultIsEmpty:(Ljava/util/List;Ljava/lang/Iterable;)V
119: aload 1
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putstatic io.netty.handler.ssl.OpenSsl.DEFAULT_CIPHERS:Ljava/util/List;
120: aload 6
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
121: new java.util.LinkedHashSet
dup
122: getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
iadd
123: invokespecial java.util.LinkedHashSet.<init>:(I)V
astore 7
start local 7 124: aload 7
getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
125: aload 7
getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
126: aload 7
putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_CIPHER_SUITES:Ljava/util/Set;
127: iload 3
putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_KEYMANAGER_FACTORY:Z
128: iload 5
putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_HOSTNAME_VALIDATION:Z
129: iload 4
putstatic io.netty.handler.ssl.OpenSsl.USE_KEYMANAGER_FACTORY:Z
130: new java.util.LinkedHashSet
dup
bipush 6
invokespecial java.util.LinkedHashSet.<init>:(I)V
astore 8
start local 8 131: aload 8
ldc "SSLv2Hello"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
132: iconst_1
invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
ifeq 134
133: aload 8
ldc "SSLv2"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
134: StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int java.util.Set java.util.Set java.util.Set
StackMap stack:
iconst_2
invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
ifeq 136
135: aload 8
ldc "SSLv3"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
136: StackMap locals:
StackMap stack:
iconst_4
invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
ifeq 138
137: aload 8
ldc "TLSv1"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
138: StackMap locals:
StackMap stack:
bipush 8
invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
ifeq 140
139: aload 8
ldc "TLSv1.1"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
140: StackMap locals:
StackMap stack:
bipush 16
invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
ifeq 142
141: aload 8
ldc "TLSv1.2"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
142: StackMap locals:
StackMap stack:
aload 8
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putstatic io.netty.handler.ssl.OpenSsl.SUPPORTED_PROTOCOLS_SET:Ljava/util/Set;
143: invokestatic io.netty.handler.ssl.OpenSsl.doesSupportOcsp:()Z
putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_OCSP:Z
144: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
ifeq 157
145: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Supported protocols (OpenSSL): {} "
iconst_1
anewarray java.util.Set
dup
iconst_0
getstatic io.netty.handler.ssl.OpenSsl.SUPPORTED_PROTOCOLS_SET:Ljava/util/Set;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
146: getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Default cipher suites (OpenSSL): {}"
getstatic io.netty.handler.ssl.OpenSsl.DEFAULT_CIPHERS:Ljava/util/List;
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 147: goto 157
148: StackMap locals: java.lang.Throwable
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
putstatic io.netty.handler.ssl.OpenSsl.DEFAULT_CIPHERS:Ljava/util/List;
149: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
150: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
151: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_CIPHER_SUITES:Ljava/util/Set;
152: iconst_0
putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_KEYMANAGER_FACTORY:Z
153: iconst_0
putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_HOSTNAME_VALIDATION:Z
154: iconst_0
putstatic io.netty.handler.ssl.OpenSsl.USE_KEYMANAGER_FACTORY:Z
155: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putstatic io.netty.handler.ssl.OpenSsl.SUPPORTED_PROTOCOLS_SET:Ljava/util/Set;
156: iconst_0
putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_OCSP:Z
end local 0 157: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
5 157 0 cause Ljava/lang/Throwable;
19 25 1 t Ljava/lang/ClassNotFoundException;
29 38 1 t Ljava/lang/Throwable;
42 51 1 t Ljava/lang/Throwable;
55 147 1 defaultCiphers Ljava/util/List<Ljava/lang/String;>;
56 147 2 availableOpenSslCipherSuites Ljava/util/Set<Ljava/lang/String;>;
57 147 3 supportsKeyManagerFactory Z
58 147 4 useKeyManagerFactory Z
59 147 5 supportsHostNameValidation Z
60 105 6 sslCtx J
61 105 8 certBio J
62 105 10 cert Lio/netty/handler/ssl/util/SelfSignedCertificate;
64 100 11 ssl J
66 69 13 c Ljava/lang/String;
107 108 6 e Ljava/lang/Exception;
112 147 6 availableJavaCipherSuites Ljava/util/Set<Ljava/lang/String;>;
114 116 7 cipher Ljava/lang/String;
124 147 7 availableCipherSuites Ljava/util/Set<Ljava/lang/String;>;
131 147 8 protocols Ljava/util/Set<Ljava/lang/String;>;
Exception table:
from to target type
16 17 18 Class java.lang.ClassNotFoundException
26 27 28 Class java.lang.Throwable
38 40 41 Class java.lang.Throwable
71 73 74 Class java.lang.Throwable
80 81 82 Class java.lang.Throwable
76 84 85 Class java.lang.Throwable
64 88 88 any
62 101 101 any
59 105 106 Class java.lang.Exception
private static boolean doesSupportOcsp();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=0
0: iconst_0
istore 0
start local 0 1: invokestatic io.netty.handler.ssl.OpenSsl.version:()I
i2l
ldc 268443648
lcmp
iflt 16
2: ldc -1
lstore 1
start local 1 3: bipush 16
iconst_1
invokestatic io.netty.internal.tcnative.SSLContext.make:(II)J
lstore 1
4: lload 1
iconst_0
invokestatic io.netty.internal.tcnative.SSLContext.enableOcsp:(JZ)V
5: iconst_1
istore 0
6: goto 14
StackMap locals: int long
StackMap stack: java.lang.Exception
7: pop
8: lload 1
ldc -1
lcmp
ifeq 16
9: lload 1
invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
pop
goto 16
10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
11: lload 1
ldc -1
lcmp
ifeq 13
12: lload 1
invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
pop
13: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
athrow
14: StackMap locals:
StackMap stack:
lload 1
ldc -1
lcmp
ifeq 16
15: lload 1
invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
pop
end local 1 16: StackMap locals:
StackMap stack:
iload 0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 17 0 supportsOcsp Z
3 16 1 sslCtx J
Exception table:
from to target type
3 6 7 Class java.lang.Exception
3 8 10 any
private static boolean doesSupportProtocol(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: ldc -1
lstore 1
start local 1 1: iload 0
iconst_2
invokestatic io.netty.internal.tcnative.SSLContext.make:(II)J
lstore 1
2: lload 1
ldc -1
lcmp
ifeq 4
3: lload 1
invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
pop
4: StackMap locals: long
StackMap stack:
iconst_1
ireturn
5: StackMap locals:
StackMap stack: java.lang.Exception
pop
6: lload 1
ldc -1
lcmp
ifeq 8
7: lload 1
invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
pop
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
10: lload 1
ldc -1
lcmp
ifeq 12
11: lload 1
invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
pop
12: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 protocol I
1 13 1 sslCtx J
Exception table:
from to target type
1 2 5 Class java.lang.Exception
1 2 9 any
5 6 9 any
MethodParameters:
Name Flags
protocol
public static boolean isAvailable();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
ifnonnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static boolean isAlpnSupported();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: invokestatic io.netty.handler.ssl.OpenSsl.version:()I
i2l
ldc 268443648
lcmp
iflt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static boolean isOcspSupported();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_OCSP:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static int version();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic io.netty.handler.ssl.OpenSsl.isAvailable:()Z
ifeq 1
invokestatic io.netty.internal.tcnative.SSL.version:()I
goto 2
StackMap locals:
StackMap stack:
1: iconst_m1
StackMap locals:
StackMap stack: int
2: ireturn
LocalVariableTable:
Start End Slot Name Signature
public static java.lang.String versionString();
descriptor: ()Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic io.netty.handler.ssl.OpenSsl.isAvailable:()Z
ifeq 1
invokestatic io.netty.internal.tcnative.SSL.versionString:()Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: java.lang.String
2: areturn
LocalVariableTable:
Start End Slot Name Signature
public static void ensureAvailability();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
ifnull 6
1: new java.lang.UnsatisfiedLinkError
dup
2: ldc "failed to load the required native library"
3: invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
4: getstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
invokevirtual java.lang.UnsatisfiedLinkError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
5: checkcast java.lang.Error
athrow
6: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
public static java.lang.Throwable unavailabilityCause();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static java.util.Set<java.lang.String> availableCipherSuites();
descriptor: ()Ljava/util/Set;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic io.netty.handler.ssl.OpenSsl.availableOpenSslCipherSuites:()Ljava/util/Set;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public static java.util.Set<java.lang.String> availableOpenSslCipherSuites();
descriptor: ()Ljava/util/Set;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
public static java.util.Set<java.lang.String> availableJavaCipherSuites();
descriptor: ()Ljava/util/Set;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
public static boolean isCipherSuiteAvailable(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic io.netty.handler.ssl.CipherSuiteConverter.toOpenSsl:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
astore 0
3: StackMap locals: java.lang.String
StackMap stack:
getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
aload 0
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 cipherSuite Ljava/lang/String;
1 4 1 converted Ljava/lang/String;
MethodParameters:
Name Flags
cipherSuite
public static boolean supportsKeyManagerFactory();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_KEYMANAGER_FACTORY:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static boolean supportsHostnameValidation();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_HOSTNAME_VALIDATION:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
static boolean useKeyManagerFactory();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic io.netty.handler.ssl.OpenSsl.USE_KEYMANAGER_FACTORY:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
static long memoryAddress(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)J
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic io.netty.handler.ssl.OpenSsl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual io.netty.buffer.ByteBuf.isDirect:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.buffer.ByteBuf.hasMemoryAddress:()Z
ifeq 2
aload 0
invokevirtual io.netty.buffer.ByteBuf.memoryAddress:()J
goto 3
StackMap locals:
StackMap stack:
2: aload 0
invokevirtual io.netty.buffer.ByteBuf.nioBuffer:()Ljava/nio/ByteBuffer;
invokestatic io.netty.internal.tcnative.Buffer.address:(Ljava/nio/ByteBuffer;)J
StackMap locals:
StackMap stack: long
3: lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 buf Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
buf
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/ssl/OpenSsl;
private static void loadTcNative();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=0
0: invokestatic io.netty.util.internal.PlatformDependent.normalizedOs:()Ljava/lang/String;
astore 0
start local 0 1: invokestatic io.netty.util.internal.PlatformDependent.normalizedArch:()Ljava/lang/String;
astore 1
start local 1 2: new java.util.LinkedHashSet
dup
iconst_4
invokespecial java.util.LinkedHashSet.<init>:(I)V
astore 2
start local 2 3: ldc "netty_tcnative"
astore 3
start local 3 4: aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 95
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: ldc "linux"
aload 0
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 7
6: aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 95
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "_fedora"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals: java.lang.String java.lang.String java.util.Set java.lang.String
StackMap stack:
aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
8: aload 2
aload 3
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
9: ldc Lio/netty/internal/tcnative/SSL;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
10: aload 2
aload 2
invokeinterface java.util.Set.size:()I
anewarray java.lang.String
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
11: invokestatic io.netty.util.internal.NativeLibraryLoader.loadFirstAvailable:(Ljava/lang/ClassLoader;[Ljava/lang/String;)V
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 13 0 os Ljava/lang/String;
2 13 1 arch Ljava/lang/String;
3 13 2 libNames Ljava/util/Set<Ljava/lang/String;>;
4 13 3 staticLibName Ljava/lang/String;
Exceptions:
throws java.lang.Exception
private static boolean initializeTcNative();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic io.netty.internal.tcnative.Library.initialize:()Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
static void releaseIfNeeded(io.netty.util.ReferenceCounted);
descriptor: (Lio/netty/util/ReferenceCounted;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface io.netty.util.ReferenceCounted.refCnt:()I
ifle 2
1: aload 0
invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 counted Lio/netty/util/ReferenceCounted;
MethodParameters:
Name Flags
counted
}
SourceFile: "OpenSsl.java"
NestMembers:
io.netty.handler.ssl.OpenSsl$1
InnerClasses:
io.netty.handler.ssl.OpenSsl$1