public class org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager extends javax.net.ssl.X509ExtendedKeyManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager
super_class: javax.net.ssl.X509ExtendedKeyManager
{
private static final org.slf4j.Logger LOG;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final javax.net.ssl.X509ExtendedKeyManager _delegate;
descriptor: Ljavax/net/ssl/X509ExtendedKeyManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.eclipse.jetty.util.ssl.SslContextFactory$Server _sslContextFactory;
descriptor: Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.function.UnaryOperator<java.lang.String> _aliasMapper;
descriptor: Ljava/util/function/UnaryOperator;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/function/UnaryOperator<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(javax.net.ssl.X509ExtendedKeyManager, org.eclipse.jetty.util.ssl.SslContextFactory$Server);
descriptor: (Ljavax/net/ssl/X509ExtendedKeyManager;Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;)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
invokespecial javax.net.ssl.X509ExtendedKeyManager.<init>:()V
1: aload 0
invokestatic java.util.function.UnaryOperator.identity:()Ljava/util/function/UnaryOperator;
putfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._aliasMapper:Ljava/util/function/UnaryOperator;
2: aload 0
aload 1
putfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
3: aload 0
aload 2
ldc "SslContextFactory.Server must be provided"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast org.eclipse.jetty.util.ssl.SslContextFactory$Server
putfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._sslContextFactory:Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 5 1 keyManager Ljavax/net/ssl/X509ExtendedKeyManager;
0 5 2 sslContextFactory Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;
MethodParameters:
Name Flags
keyManager
sslContextFactory
public java.util.function.UnaryOperator<java.lang.String> getAliasMapper();
descriptor: ()Ljava/util/function/UnaryOperator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._aliasMapper:Ljava/util/function/UnaryOperator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
Signature: ()Ljava/util/function/UnaryOperator<Ljava/lang/String;>;
public void setAliasMapper(java.util.function.UnaryOperator<java.lang.String>);
descriptor: (Ljava/util/function/UnaryOperator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.function.UnaryOperator
putfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._aliasMapper:Ljava/util/function/UnaryOperator;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 2 1 aliasMapper Ljava/util/function/UnaryOperator<Ljava/lang/String;>;
Signature: (Ljava/util/function/UnaryOperator<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
aliasMapper
public java.lang.String chooseClientAlias(java.lang.String[], java.security.Principal[], java.net.Socket);
descriptor: ([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
aload 2
aload 3
invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 1 1 keyType [Ljava/lang/String;
0 1 2 issuers [Ljava/security/Principal;
0 1 3 socket Ljava/net/Socket;
MethodParameters:
Name Flags
keyType
issuers
socket
public java.lang.String chooseEngineClientAlias(java.lang.String[], java.security.Principal[], javax.net.ssl.SSLEngine);
descriptor: ([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
aload 2
aload 3
invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 1 1 keyType [Ljava/lang/String;
0 1 2 issuers [Ljava/security/Principal;
0 1 3 engine Ljavax/net/ssl/SSLEngine;
MethodParameters:
Name Flags
keyType
issuers
engine
protected java.lang.String chooseServerAlias(java.lang.String, java.security.Principal[], java.util.Collection<javax.net.ssl.SNIMatcher>, javax.net.ssl.SSLSession);
descriptor: (Ljava/lang/String;[Ljava/security/Principal;Ljava/util/Collection;Ljavax/net/ssl/SSLSession;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=18, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
aload 2
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getServerAliases:(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;
astore 5
start local 5 1: aload 5
ifnull 2
aload 5
arraylength
ifne 3
2: StackMap locals: java.lang.String[]
StackMap stack:
aconst_null
areturn
3: StackMap locals:
StackMap stack:
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 6
start local 6 4: aload 5
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
5: aload 0
aload 6
invokedynamic accept(Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;Ljava/util/Map;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
org/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager.lambda$0(Ljava/util/Map;Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
6: aconst_null
astore 7
start local 7 7: aload 4
instanceof javax.net.ssl.ExtendedSSLSession
ifeq 15
8: aload 4
checkcast javax.net.ssl.ExtendedSSLSession
invokevirtual javax.net.ssl.ExtendedSSLSession.getRequestedServerNames:()Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
9: invokeinterface java.util.stream.Stream.findAny:()Ljava/util/Optional;
10: ldc Ljavax/net/ssl/SNIHostName;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/lang/Class.isInstance(Ljava/lang/Object;)Z (5)
(Ljavax/net/ssl/SNIServerName;)Z
invokevirtual java.util.Optional.filter:(Ljava/util/function/Predicate;)Ljava/util/Optional;
11: ldc Ljavax/net/ssl/SNIHostName;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Ljava/lang/Class;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/Class.cast(Ljava/lang/Object;)Ljava/lang/Object; (5)
(Ljavax/net/ssl/SNIServerName;)Ljavax/net/ssl/SNIHostName;
invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
12: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
javax/net/ssl/SNIHostName.getAsciiName()Ljava/lang/String; (5)
(Ljavax/net/ssl/SNIHostName;)Ljava/lang/String;
invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
13: aconst_null
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
14: astore 7
15: StackMap locals: java.util.Map java.lang.String
StackMap stack:
aload 7
ifnonnull 24
16: aload 3
ifnonnull 17
aconst_null
goto 23
StackMap locals:
StackMap stack:
17: aload 3
invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
18: ldc Lorg/eclipse/jetty/util/ssl/SslContextFactory$AliasSNIMatcher;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/lang/Class.isInstance(Ljava/lang/Object;)Z (5)
(Ljavax/net/ssl/SNIMatcher;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
19: ldc Lorg/eclipse/jetty/util/ssl/SslContextFactory$AliasSNIMatcher;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Ljava/lang/Class;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/Class.cast(Ljava/lang/Object;)Ljava/lang/Object; (5)
(Ljavax/net/ssl/SNIMatcher;)Lorg/eclipse/jetty/util/ssl/SslContextFactory$AliasSNIMatcher;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
20: invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
21: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/eclipse/jetty/util/ssl/SslContextFactory$AliasSNIMatcher.getHost()Ljava/lang/String; (5)
(Lorg/eclipse/jetty/util/ssl/SslContextFactory$AliasSNIMatcher;)Ljava/lang/String;
invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
22: aconst_null
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
23: StackMap locals:
StackMap stack: java.lang.String
astore 7
24: StackMap locals:
StackMap stack:
aload 4
ifnull 26
aload 7
ifnull 26
25: aload 4
ldc "org.eclipse.jetty.util.ssl.sniHost"
aload 7
invokeinterface javax.net.ssl.SSLSession.putValue:(Ljava/lang/String;Ljava/lang/Object;)V
26: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
27: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._sslContextFactory:Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/eclipse/jetty/util/ssl/SslContextFactory.getX509(Ljava/lang/String;)Lorg/eclipse/jetty/util/ssl/X509; (5)
(Ljava/lang/String;)Lorg/eclipse/jetty/util/ssl/X509;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
28: invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Lorg/eclipse/jetty/util/ssl/X509;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
29: invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Collection
30: astore 12
start local 12 31: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._sslContextFactory:Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;
invokevirtual org.eclipse.jetty.util.ssl.SslContextFactory$Server.getSNISelector:()Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager$SniSelector;
astore 14
start local 14 32: aload 14
ifnonnull 34
33: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._sslContextFactory:Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;
astore 14
34: StackMap locals: org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager java.lang.String java.security.Principal[] java.util.Collection javax.net.ssl.SSLSession java.lang.String[] java.util.Map java.lang.String top top top top java.util.Collection top org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager$SniSelector
StackMap stack:
aload 14
aload 1
aload 2
aload 4
aload 7
aload 12
invokeinterface org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager$SniSelector.sniSelect:(Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLSession;Ljava/lang/String;Ljava/util/Collection;)Ljava/lang/String;
astore 15
start local 15 35: aload 15
ifnull 36
aload 15
ldc "delegate_no_sni_match"
if_acmpne 38
36: StackMap locals: java.lang.String
StackMap stack:
aload 15
37: areturn
38: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._sslContextFactory:Lorg/eclipse/jetty/util/ssl/SslContextFactory$Server;
aload 15
invokevirtual org.eclipse.jetty.util.ssl.SslContextFactory$Server.getX509:(Ljava/lang/String;)Lorg/eclipse/jetty/util/ssl/X509;
astore 16
start local 16 39: aload 6
aload 15
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 40
aload 16
ifnonnull 43
40: StackMap locals: org.eclipse.jetty.util.ssl.X509
StackMap stack:
getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 42
41: getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
ldc "Invalid X509 match for SNI {}: {}"
aload 7
aload 15
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
42: StackMap locals:
StackMap stack:
aconst_null
areturn
43: StackMap locals:
StackMap stack:
aload 6
aload 15
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 17
start local 17 44: getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 46
45: getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
ldc "Matched SNI {} with alias {}, certificate {} from aliases {}"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 7
aastore
dup
iconst_1
aload 17
aastore
dup
iconst_2
aload 16
aastore
dup
iconst_3
aload 6
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aastore
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
46: StackMap locals: java.lang.String
StackMap stack:
aload 17
47: areturn
end local 17 end local 16 end local 15 end local 14 end local 12 48: StackMap locals: org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager java.lang.String java.security.Principal[] java.util.Collection javax.net.ssl.SSLSession java.lang.String[] java.util.Map java.lang.String
StackMap stack: java.lang.Throwable
astore 12
start local 12 49: getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 51
50: getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
ldc "Failure matching X509 for SNI {}"
aload 7
aload 12
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
51: StackMap locals: org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager java.lang.String java.security.Principal[] java.util.Collection javax.net.ssl.SSLSession java.lang.String[] java.util.Map java.lang.String top top top top java.lang.Throwable
StackMap stack:
aconst_null
areturn
end local 12 end local 7 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 52 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 52 1 keyType Ljava/lang/String;
0 52 2 issuers [Ljava/security/Principal;
0 52 3 matchers Ljava/util/Collection<Ljavax/net/ssl/SNIMatcher;>;
0 52 4 session Ljavax/net/ssl/SSLSession;
1 52 5 mangledAliases [Ljava/lang/String;
4 52 6 aliasMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
7 52 7 host Ljava/lang/String;
31 48 12 certificates Ljava/util/Collection<Lorg/eclipse/jetty/util/ssl/X509;>;
32 48 14 sniSelector Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager$SniSelector;
35 48 15 alias Ljava/lang/String;
39 48 16 x509 Lorg/eclipse/jetty/util/ssl/X509;
44 48 17 mangledAlias Ljava/lang/String;
49 52 12 x Ljava/lang/Throwable;
Exception table:
from to target type
26 37 48 Class java.lang.Throwable
38 42 48 Class java.lang.Throwable
43 47 48 Class java.lang.Throwable
Signature: (Ljava/lang/String;[Ljava/security/Principal;Ljava/util/Collection<Ljavax/net/ssl/SNIMatcher;>;Ljavax/net/ssl/SSLSession;)Ljava/lang/String;
MethodParameters:
Name Flags
keyType
issuers
matchers
session
public java.lang.String chooseServerAlias(java.lang.String, java.security.Principal[], java.net.Socket);
descriptor: (Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
checkcast javax.net.ssl.SSLSocket
astore 4
start local 4 1: aload 3
ifnonnull 3
2: aload 0
aload 1
aload 2
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
aconst_null
invokevirtual org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.chooseServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljava/util/Collection;Ljavax/net/ssl/SSLSession;)Ljava/lang/String;
goto 4
3: StackMap locals: javax.net.ssl.SSLSocket
StackMap stack:
aload 0
aload 1
aload 2
aload 4
invokevirtual javax.net.ssl.SSLSocket.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
invokevirtual javax.net.ssl.SSLParameters.getSNIMatchers:()Ljava/util/Collection;
aload 4
invokevirtual javax.net.ssl.SSLSocket.getHandshakeSession:()Ljavax/net/ssl/SSLSession;
invokevirtual org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.chooseServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljava/util/Collection;Ljavax/net/ssl/SSLSession;)Ljava/lang/String;
4: StackMap locals:
StackMap stack: java.lang.String
astore 5
start local 5 5: aload 5
ldc "delegate_no_sni_match"
if_acmpne 6
iconst_1
goto 7
StackMap locals: java.lang.String
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: istore 6
start local 6 8: iload 6
ifeq 10
9: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
aload 2
aload 3
invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
astore 5
10: StackMap locals: int
StackMap stack:
getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 14
11: getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
ldc "Chose {} alias {}/{} on {}"
iconst_4
anewarray java.lang.Object
dup
iconst_0
iload 6
ifeq 12
ldc "delegate"
goto 13
StackMap locals: org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager java.lang.String java.security.Principal[] java.net.Socket javax.net.ssl.SSLSocket java.lang.String int
StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int
12: ldc "explicit"
StackMap locals: org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager java.lang.String java.security.Principal[] java.net.Socket javax.net.ssl.SSLSocket java.lang.String int
StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
13: aastore
dup
iconst_1
aload 5
aastore
dup
iconst_2
aload 1
aastore
dup
iconst_3
aload 3
aastore
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aload 5
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 15 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 15 1 keyType Ljava/lang/String;
0 15 2 issuers [Ljava/security/Principal;
0 15 3 socket Ljava/net/Socket;
1 15 4 sslSocket Ljavax/net/ssl/SSLSocket;
5 15 5 alias Ljava/lang/String;
8 15 6 delegate Z
MethodParameters:
Name Flags
keyType
issuers
socket
public java.lang.String chooseEngineServerAlias(java.lang.String, java.security.Principal[], javax.net.ssl.SSLEngine);
descriptor: (Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 2
1: aload 0
aload 1
aload 2
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
aconst_null
invokevirtual org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.chooseServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljava/util/Collection;Ljavax/net/ssl/SSLSession;)Ljava/lang/String;
goto 3
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
invokevirtual javax.net.ssl.SSLParameters.getSNIMatchers:()Ljava/util/Collection;
aload 3
invokevirtual javax.net.ssl.SSLEngine.getHandshakeSession:()Ljavax/net/ssl/SSLSession;
invokevirtual org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.chooseServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljava/util/Collection;Ljavax/net/ssl/SSLSession;)Ljava/lang/String;
3: StackMap locals:
StackMap stack: java.lang.String
astore 4
start local 4 4: aload 4
ldc "delegate_no_sni_match"
if_acmpne 5
iconst_1
goto 6
StackMap locals: java.lang.String
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: iload 5
ifeq 9
8: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
aload 2
aload 3
invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
astore 4
9: StackMap locals: int
StackMap stack:
getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 13
10: getstatic org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.LOG:Lorg/slf4j/Logger;
ldc "Chose {} alias {}/{} on {}"
iconst_4
anewarray java.lang.Object
dup
iconst_0
iload 5
ifeq 11
ldc "delegate"
goto 12
StackMap locals: org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager java.lang.String java.security.Principal[] javax.net.ssl.SSLEngine java.lang.String int
StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int
11: ldc "explicit"
StackMap locals: org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager java.lang.String java.security.Principal[] javax.net.ssl.SSLEngine java.lang.String int
StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
12: aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 1
aastore
dup
iconst_3
aload 3
aastore
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals:
StackMap stack:
aload 4
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 14 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 14 1 keyType Ljava/lang/String;
0 14 2 issuers [Ljava/security/Principal;
0 14 3 engine Ljavax/net/ssl/SSLEngine;
4 14 4 alias Ljava/lang/String;
7 14 5 delegate Z
MethodParameters:
Name Flags
keyType
issuers
engine
public java.security.cert.X509Certificate[] getCertificateChain(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 1 1 alias Ljava/lang/String;
MethodParameters:
Name Flags
alias
public java.lang.String[] getClientAliases(java.lang.String, java.security.Principal[]);
descriptor: (Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
aload 2
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getClientAliases:(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 1 1 keyType Ljava/lang/String;
0 1 2 issuers [Ljava/security/Principal;
MethodParameters:
Name Flags
keyType
issuers
public java.security.PrivateKey getPrivateKey(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/PrivateKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 1 1 alias Ljava/lang/String;
MethodParameters:
Name Flags
alias
public java.lang.String[] getServerAliases(java.lang.String, java.security.Principal[]);
descriptor: (Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager._delegate:Ljavax/net/ssl/X509ExtendedKeyManager;
aload 1
aload 2
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getServerAliases:(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 1 1 keyType Ljava/lang/String;
0 1 2 issuers [Ljava/security/Principal;
MethodParameters:
Name Flags
keyType
issuers
private void lambda$0(java.util.Map, java.lang.String);
descriptor: (Ljava/util/Map;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 1
aload 0
invokevirtual org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager.getAliasMapper:()Ljava/util/function/UnaryOperator;
aload 2
invokeinterface java.util.function.UnaryOperator.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/ssl/SniX509ExtendedKeyManager;
0 1 2 alias Ljava/lang/String;
}
SourceFile: "SniX509ExtendedKeyManager.java"
NestMembers:
org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager$SniSelector
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract SniSelector = org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager$SniSelector of org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager
AliasSNIMatcher = org.eclipse.jetty.util.ssl.SslContextFactory$AliasSNIMatcher of org.eclipse.jetty.util.ssl.SslContextFactory
public Server = org.eclipse.jetty.util.ssl.SslContextFactory$Server of org.eclipse.jetty.util.ssl.SslContextFactory