public class org.apache.tomcat.util.net.jsse.JSSEUtil extends org.apache.tomcat.util.net.SSLUtilBase
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.tomcat.util.net.jsse.JSSEUtil
super_class: org.apache.tomcat.util.net.SSLUtilBase
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile boolean initialized;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.util.Set<java.lang.String> implementedProtocols;
descriptor: Ljava/util/Set;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Set<Ljava/lang/String;>;
private volatile java.util.Set<java.lang.String> implementedCiphers;
descriptor: Ljava/util/Set;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Set<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.tomcat.util.net.jsse.JSSEUtil.log:Lorg/apache/juli/logging/Log;
1: ldc Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
putstatic org.apache.tomcat.util.net.jsse.JSSEUtil.sm:Lorg/apache/tomcat/util/res/StringManager;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.apache.tomcat.util.net.SSLHostConfigCertificate);
descriptor: (Lorg/apache/tomcat/util/net/SSLHostConfigCertificate;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokespecial org.apache.tomcat.util.net.jsse.JSSEUtil.<init>:(Lorg/apache/tomcat/util/net/SSLHostConfigCertificate;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
0 2 1 certificate Lorg/apache/tomcat/util/net/SSLHostConfigCertificate;
MethodParameters:
Name Flags
certificate
public void <init>(org.apache.tomcat.util.net.SSLHostConfigCertificate, boolean);
descriptor: (Lorg/apache/tomcat/util/net/SSLHostConfigCertificate;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokespecial org.apache.tomcat.util.net.SSLUtilBase.<init>:(Lorg/apache/tomcat/util/net/SSLHostConfigCertificate;Z)V
1: aload 0
iconst_0
putfield org.apache.tomcat.util.net.jsse.JSSEUtil.initialized:Z
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
0 3 1 certificate Lorg/apache/tomcat/util/net/SSLHostConfigCertificate;
0 3 2 warnOnSkip Z
MethodParameters:
Name Flags
certificate
warnOnSkip
protected org.apache.juli.logging.Log getLog();
descriptor: ()Lorg/apache/juli/logging/Log;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.net.jsse.JSSEUtil.log:Lorg/apache/juli/logging/Log;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
protected java.util.Set<java.lang.String> getImplementedProtocols();
descriptor: ()Ljava/util/Set;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.tomcat.util.net.jsse.JSSEUtil.initialise:()V
1: aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedProtocols:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
protected java.util.Set<java.lang.String> getImplementedCiphers();
descriptor: ()Ljava/util/Set;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.tomcat.util.net.jsse.JSSEUtil.initialise:()V
1: aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedCiphers:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
protected boolean isTls13RenegAuthAvailable();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
public org.apache.tomcat.util.net.SSLContext createSSLContextInternal(java.util.List<java.lang.String>);
descriptor: (Ljava/util/List;)Lorg/apache/tomcat/util/net/SSLContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new org.apache.tomcat.util.net.jsse.JSSESSLContext
dup
aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.sslHostConfig:Lorg/apache/tomcat/util/net/SSLHostConfig;
invokevirtual org.apache.tomcat.util.net.SSLHostConfig.getSslProtocol:()Ljava/lang/String;
invokespecial org.apache.tomcat.util.net.jsse.JSSESSLContext.<init>:(Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
0 1 1 negotiableProtocols Ljava/util/List<Ljava/lang/String;>;
Exceptions:
throws java.security.NoSuchAlgorithmException
Signature: (Ljava/util/List<Ljava/lang/String;>;)Lorg/apache/tomcat/util/net/SSLContext;
MethodParameters:
Name Flags
negotiableProtocols
private void initialise();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.initialized:Z
ifne 39
1: aload 0
dup
astore 1
monitorenter
2: aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.initialized:Z
ifne 35
3: new org.apache.tomcat.util.net.jsse.JSSESSLContext
dup
aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.sslHostConfig:Lorg/apache/tomcat/util/net/SSLHostConfig;
invokevirtual org.apache.tomcat.util.net.SSLHostConfig.getSslProtocol:()Ljava/lang/String;
invokespecial org.apache.tomcat.util.net.jsse.JSSESSLContext.<init>:(Ljava/lang/String;)V
astore 2
start local 2 4: aload 2
aconst_null
aconst_null
aconst_null
invokeinterface org.apache.tomcat.util.net.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
5: goto 8
end local 2 StackMap locals: org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.jsse.JSSEUtil
StackMap stack: java.security.GeneralSecurityException
6: astore 3
start local 3 7: new java.lang.IllegalArgumentException
dup
aload 3
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 start local 2 8: StackMap locals: org.apache.tomcat.util.net.SSLContext
StackMap stack:
aload 2
invokeinterface org.apache.tomcat.util.net.SSLContext.getSupportedSSLParameters:()Ljavax/net/ssl/SSLParameters;
invokevirtual javax.net.ssl.SSLParameters.getProtocols:()[Ljava/lang/String;
astore 3
start local 3 9: aload 0
new java.util.HashSet
dup
aload 3
arraylength
invokespecial java.util.HashSet.<init>:(I)V
putfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedProtocols:Ljava/util/Set;
10: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 19
StackMap locals: org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.SSLContext java.lang.String[] top int int java.lang.String[]
StackMap stack:
11: aload 7
iload 5
aaload
astore 4
start local 4 12: aload 4
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 8
start local 8 13: ldc "SSLV2HELLO"
aload 8
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
ldc "SSLV3"
aload 8
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
14: aload 8
ldc "SSL"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 17
15: getstatic org.apache.tomcat.util.net.jsse.JSSEUtil.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.net.jsse.JSSEUtil.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jsseUtil.excludeProtocol"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
16: goto 18
17: StackMap locals: org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.SSLContext java.lang.String[] java.lang.String int int java.lang.String[] java.lang.String
StackMap stack:
aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedProtocols:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 4 18: StackMap locals: org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.SSLContext java.lang.String[] top int int java.lang.String[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
19: iload 5
iload 6
if_icmplt 11
20: aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedProtocols:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
ifne 22
21: getstatic org.apache.tomcat.util.net.jsse.JSSEUtil.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.net.jsse.JSSEUtil.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jsseUtil.noDefaultProtocols"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
22: StackMap locals: org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.SSLContext java.lang.String[]
StackMap stack:
aload 2
invokeinterface org.apache.tomcat.util.net.SSLContext.getSupportedSSLParameters:()Ljavax/net/ssl/SSLParameters;
invokevirtual javax.net.ssl.SSLParameters.getCipherSuites:()[Ljava/lang/String;
astore 4
start local 4 23: getstatic org.apache.tomcat.util.compat.JreVendor.IS_IBM_JVM:Z
ifeq 33
24: aload 0
new java.util.HashSet
dup
aload 4
arraylength
iconst_2
imul
invokespecial java.util.HashSet.<init>:(I)V
putfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedCiphers:Ljava/util/Set;
25: aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 31
StackMap locals: org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.SSLContext java.lang.String[] java.lang.String[] top int int java.lang.String[]
StackMap stack:
26: aload 8
iload 6
aaload
astore 5
start local 5 27: aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedCiphers:Ljava/util/Set;
aload 5
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
28: aload 5
ldc "SSL"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 30
29: aload 0
getfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedCiphers:Ljava/util/Set;
new java.lang.StringBuilder
dup
ldc "TLS"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
iconst_3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
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
end local 5 30: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
31: iload 6
iload 7
if_icmplt 26
32: goto 34
33: StackMap locals: org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.jsse.JSSEUtil org.apache.tomcat.util.net.SSLContext java.lang.String[] java.lang.String[]
StackMap stack:
aload 0
new java.util.HashSet
dup
aload 4
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putfield org.apache.tomcat.util.net.jsse.JSSEUtil.implementedCiphers:Ljava/util/Set;
34: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.tomcat.util.net.jsse.JSSEUtil.initialized:Z
end local 4 end local 3 end local 2 35: StackMap locals:
StackMap stack:
aload 1
monitorexit
36: goto 39
StackMap locals:
StackMap stack: java.lang.Throwable
37: aload 1
monitorexit
38: athrow
39: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/apache/tomcat/util/net/jsse/JSSEUtil;
4 6 2 context Lorg/apache/tomcat/util/net/SSLContext;
8 35 2 context Lorg/apache/tomcat/util/net/SSLContext;
7 8 3 e Ljava/security/GeneralSecurityException;
9 35 3 implementedProtocolsArray [Ljava/lang/String;
12 18 4 protocol Ljava/lang/String;
13 18 8 protocolUpper Ljava/lang/String;
23 35 4 implementedCipherSuiteArray [Ljava/lang/String;
27 30 5 name Ljava/lang/String;
Exception table:
from to target type
3 5 6 Class java.security.NoSuchAlgorithmException
3 5 6 Class java.security.KeyManagementException
2 36 37 any
37 38 37 any
}
SourceFile: "JSSEUtil.java"