public final class org.xnio.ssl.JsseSslUtils
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.xnio.ssl.JsseSslUtils
super_class: java.lang.Object
{
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
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/ssl/JsseSslUtils;
public static javax.net.ssl.SSLContext createSSLContext(org.xnio.OptionMap);
descriptor: (Lorg/xnio/OptionMap;)Ljavax/net/ssl/SSLContext;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aconst_null
aconst_null
aconst_null
aload 0
invokestatic org.xnio.ssl.JsseSslUtils.createSSLContext:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;Lorg/xnio/OptionMap;)Ljavax/net/ssl/SSLContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 optionMap Lorg/xnio/OptionMap;
Exceptions:
throws java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException, java.security.KeyManagementException
MethodParameters:
Name Flags
optionMap
public static javax.net.ssl.SSLContext createSSLContext(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom, org.xnio.OptionMap);
descriptor: ([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;Lorg/xnio/OptionMap;)Ljavax/net/ssl/SSLContext;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
getstatic org.xnio.Options.SSL_PROVIDER:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;)Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 1: aload 3
getstatic org.xnio.Options.SSL_PROTOCOL:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;)Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 2: aload 5
ifnonnull 4
3: invokestatic javax.net.ssl.SSLContext.getDefault:()Ljavax/net/ssl/SSLContext;
areturn
4: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 4
ifnonnull 7
5: aload 5
invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
astore 6
start local 6 6: goto 8
end local 6 7: StackMap locals:
StackMap stack:
aload 5
aload 4
invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
astore 6
start local 6 8: StackMap locals: javax.net.ssl.SSLContext
StackMap stack:
aload 0
ifnonnull 18
9: aload 3
getstatic org.xnio.Options.SSL_JSSE_KEY_MANAGER_CLASSES:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;)Ljava/lang/Object;
checkcast org.xnio.Sequence
astore 7
start local 7 10: aload 7
ifnull 18
11: aload 7
invokevirtual org.xnio.Sequence.size:()I
istore 8
start local 8 12: iload 8
anewarray javax.net.ssl.KeyManager
astore 0
13: iconst_0
istore 9
start local 9 14: goto 17
15: StackMap locals: org.xnio.Sequence int int
StackMap stack:
aload 0
iload 9
aload 7
iload 9
invokevirtual org.xnio.Sequence.get:(I)Ljava/lang/Object;
checkcast java.lang.Class
invokestatic org.xnio.ssl.JsseSslUtils.instantiate:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast javax.net.ssl.KeyManager
aastore
16: iinc 9 1
StackMap locals:
StackMap stack:
17: iload 9
iload 8
if_icmplt 15
end local 9 end local 8 end local 7 18: StackMap locals:
StackMap stack:
aload 1
ifnonnull 28
19: aload 3
getstatic org.xnio.Options.SSL_JSSE_TRUST_MANAGER_CLASSES:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;)Ljava/lang/Object;
checkcast org.xnio.Sequence
astore 7
start local 7 20: aload 7
ifnull 28
21: aload 7
invokevirtual org.xnio.Sequence.size:()I
istore 8
start local 8 22: iload 8
anewarray javax.net.ssl.TrustManager
astore 1
23: iconst_0
istore 9
start local 9 24: goto 27
25: StackMap locals: org.xnio.Sequence int int
StackMap stack:
aload 1
iload 9
aload 7
iload 9
invokevirtual org.xnio.Sequence.get:(I)Ljava/lang/Object;
checkcast java.lang.Class
invokestatic org.xnio.ssl.JsseSslUtils.instantiate:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast javax.net.ssl.TrustManager
aastore
26: iinc 9 1
StackMap locals:
StackMap stack:
27: iload 9
iload 8
if_icmplt 25
end local 9 end local 8 end local 7 28: StackMap locals:
StackMap stack:
aload 6
aload 0
aload 1
aload 2
invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
29: aload 6
invokevirtual javax.net.ssl.SSLContext.getClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
aload 3
getstatic org.xnio.Options.SSL_CLIENT_SESSION_CACHE_SIZE:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokeinterface javax.net.ssl.SSLSessionContext.setSessionCacheSize:(I)V
30: aload 6
invokevirtual javax.net.ssl.SSLContext.getClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
aload 3
getstatic org.xnio.Options.SSL_CLIENT_SESSION_TIMEOUT:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokeinterface javax.net.ssl.SSLSessionContext.setSessionTimeout:(I)V
31: aload 6
invokevirtual javax.net.ssl.SSLContext.getServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
aload 3
getstatic org.xnio.Options.SSL_SERVER_SESSION_CACHE_SIZE:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokeinterface javax.net.ssl.SSLSessionContext.setSessionCacheSize:(I)V
32: aload 6
invokevirtual javax.net.ssl.SSLContext.getServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
aload 3
getstatic org.xnio.Options.SSL_SERVER_SESSION_TIMEOUT:Lorg/xnio/Option;
iconst_0
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
invokeinterface javax.net.ssl.SSLSessionContext.setSessionTimeout:(I)V
33: aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 keyManagers [Ljavax/net/ssl/KeyManager;
0 34 1 trustManagers [Ljavax/net/ssl/TrustManager;
0 34 2 secureRandom Ljava/security/SecureRandom;
0 34 3 optionMap Lorg/xnio/OptionMap;
1 34 4 provider Ljava/lang/String;
2 34 5 protocol Ljava/lang/String;
6 7 6 sslContext Ljavax/net/ssl/SSLContext;
8 34 6 sslContext Ljavax/net/ssl/SSLContext;
10 18 7 keyManagerClasses Lorg/xnio/Sequence<Ljava/lang/Class<+Ljavax/net/ssl/KeyManager;>;>;
12 18 8 size I
14 18 9 i I
20 28 7 trustManagerClasses Lorg/xnio/Sequence<Ljava/lang/Class<+Ljavax/net/ssl/TrustManager;>;>;
22 28 8 size I
24 28 9 i I
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.KeyManagementException
MethodParameters:
Name Flags
keyManagers
trustManagers
secureRandom
optionMap
private static <T> T instantiate(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.InstantiationException
astore 1
start local 1 3: getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
aload 0
aload 1
invokeinterface org.xnio._private.Messages.cantInstantiate:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/IllegalArgumentException;
athrow
end local 1 4: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 1
start local 1 5: getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
aload 0
aload 1
invokeinterface org.xnio._private.Messages.cantInstantiate:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/IllegalArgumentException;
athrow
end local 1 6: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
astore 1
start local 1 7: getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
aload 0
aload 1
invokeinterface org.xnio._private.Messages.cantInstantiate:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/IllegalArgumentException;
athrow
end local 1 8: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 1
start local 1 9: getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
aload 0
aload 1
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
invokeinterface org.xnio._private.Messages.cantInstantiate:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/IllegalArgumentException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 clazz Ljava/lang/Class<TT;>;
3 4 1 e Ljava/lang/InstantiationException;
5 6 1 e Ljava/lang/IllegalAccessException;
7 8 1 e Ljava/lang/NoSuchMethodException;
9 10 1 e Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
0 1 2 Class java.lang.InstantiationException
0 1 4 Class java.lang.IllegalAccessException
0 1 6 Class java.lang.NoSuchMethodException
0 1 8 Class java.lang.reflect.InvocationTargetException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
clazz
public static javax.net.ssl.SSLEngine createSSLEngine(javax.net.ssl.SSLContext, org.xnio.OptionMap, java.net.InetSocketAddress);
descriptor: (Ljavax/net/ssl/SSLContext;Lorg/xnio/OptionMap;Ljava/net/InetSocketAddress;)Ljavax/net/ssl/SSLEngine;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
1: aload 1
getstatic org.xnio.Options.SSL_PEER_HOST_NAME:Lorg/xnio/Option;
aload 2
invokevirtual java.net.InetSocketAddress.getHostString:()Ljava/lang/String;
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
2: aload 1
getstatic org.xnio.Options.SSL_PEER_PORT:Lorg/xnio/Option;
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
3: invokevirtual javax.net.ssl.SSLContext.createSSLEngine:(Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;
astore 3
start local 3 4: aload 3
iconst_1
invokevirtual javax.net.ssl.SSLEngine.setUseClientMode:(Z)V
5: aload 3
aload 1
getstatic org.xnio.Options.SSL_ENABLE_SESSION_CREATION:Lorg/xnio/Option;
iconst_1
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
invokevirtual javax.net.ssl.SSLEngine.setEnableSessionCreation:(Z)V
6: aload 1
getstatic org.xnio.Options.SSL_ENABLED_CIPHER_SUITES:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;)Ljava/lang/Object;
checkcast org.xnio.Sequence
astore 4
start local 4 7: aload 4
ifnull 16
8: new java.util.HashSet
dup
aload 3
invokevirtual javax.net.ssl.SSLEngine.getSupportedCipherSuites:()[Ljava/lang/String;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 5
start local 5 9: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 10: aload 4
invokevirtual org.xnio.Sequence.iterator:()Ljava/util/Iterator;
astore 8
goto 14
StackMap locals: javax.net.ssl.SSLContext org.xnio.OptionMap java.net.InetSocketAddress javax.net.ssl.SSLEngine org.xnio.Sequence java.util.Set java.util.List top java.util.Iterator
StackMap stack:
11: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 12: aload 5
aload 7
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 14
13: aload 6
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 14: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
15: aload 3
aload 6
aload 6
invokeinterface java.util.List.size:()I
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
invokevirtual javax.net.ssl.SSLEngine.setEnabledCipherSuites:([Ljava/lang/String;)V
end local 6 end local 5 16: StackMap locals: javax.net.ssl.SSLContext org.xnio.OptionMap java.net.InetSocketAddress javax.net.ssl.SSLEngine org.xnio.Sequence
StackMap stack:
aload 1
getstatic org.xnio.Options.SSL_ENABLED_PROTOCOLS:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;)Ljava/lang/Object;
checkcast org.xnio.Sequence
astore 5
start local 5 17: aload 5
ifnull 26
18: new java.util.HashSet
dup
aload 3
invokevirtual javax.net.ssl.SSLEngine.getSupportedProtocols:()[Ljava/lang/String;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 6
start local 6 19: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 20: aload 5
invokevirtual org.xnio.Sequence.iterator:()Ljava/util/Iterator;
astore 9
goto 24
StackMap locals: javax.net.ssl.SSLContext org.xnio.OptionMap java.net.InetSocketAddress javax.net.ssl.SSLEngine org.xnio.Sequence org.xnio.Sequence java.util.Set java.util.List top java.util.Iterator
StackMap stack:
21: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 22: aload 6
aload 8
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 24
23: aload 7
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 24: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
25: aload 3
aload 7
aload 7
invokeinterface java.util.List.size:()I
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
invokevirtual javax.net.ssl.SSLEngine.setEnabledProtocols:([Ljava/lang/String;)V
end local 7 end local 6 26: StackMap locals: javax.net.ssl.SSLContext org.xnio.OptionMap java.net.InetSocketAddress javax.net.ssl.SSLEngine org.xnio.Sequence org.xnio.Sequence
StackMap stack:
aload 3
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 sslContext Ljavax/net/ssl/SSLContext;
0 27 1 optionMap Lorg/xnio/OptionMap;
0 27 2 peerAddress Ljava/net/InetSocketAddress;
4 27 3 engine Ljavax/net/ssl/SSLEngine;
7 27 4 cipherSuites Lorg/xnio/Sequence<Ljava/lang/String;>;
9 16 5 supported Ljava/util/Set<Ljava/lang/String;>;
10 16 6 finalList Ljava/util/List<Ljava/lang/String;>;
12 14 7 name Ljava/lang/String;
17 27 5 protocols Lorg/xnio/Sequence<Ljava/lang/String;>;
19 26 6 supported Ljava/util/Set<Ljava/lang/String;>;
20 26 7 finalList Ljava/util/List<Ljava/lang/String;>;
22 24 8 name Ljava/lang/String;
MethodParameters:
Name Flags
sslContext
optionMap
peerAddress
}
SourceFile: "JsseSslUtils.java"