public class io.vertx.core.net.impl.KeyStoreHelper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.core.net.impl.KeyStoreHelper
super_class: java.lang.Object
{
public static final java.lang.String DUMMY_PASSWORD;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "dummy"
private static final java.lang.String DUMMY_CERT_ALIAS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "cert-"
private static final java.util.regex.Pattern BEGIN_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern END_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.String password;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.KeyStore store;
descriptor: Ljava/security/KeyStore;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.String, javax.net.ssl.X509KeyManager> wildcardMgrMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljavax/net/ssl/X509KeyManager;>;
private final java.util.Map<java.lang.String, javax.net.ssl.X509KeyManager> mgrMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljavax/net/ssl/X509KeyManager;>;
private final java.util.Map<java.lang.String, javax.net.ssl.TrustManagerFactory> trustMgrMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljavax/net/ssl/TrustManagerFactory;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "-----BEGIN ([A-Z ]+)-----"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic io.vertx.core.net.impl.KeyStoreHelper.BEGIN_PATTERN:Ljava/util/regex/Pattern;
1: ldc "-----END ([A-Z ]+)-----"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic io.vertx.core.net.impl.KeyStoreHelper.END_PATTERN:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.security.KeyStore, java.lang.String);
descriptor: (Ljava/security/KeyStore;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield io.vertx.core.net.impl.KeyStoreHelper.wildcardMgrMap:Ljava/util/Map;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield io.vertx.core.net.impl.KeyStoreHelper.mgrMap:Ljava/util/Map;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield io.vertx.core.net.impl.KeyStoreHelper.trustMgrMap:Ljava/util/Map;
4: aload 1
invokevirtual java.security.KeyStore.aliases:()Ljava/util/Enumeration;
astore 3
start local 3 5: goto 47
6: StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 7: aload 1
aload 4
invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
astore 5
start local 5 8: aload 1
aload 4
invokevirtual java.security.KeyStore.isCertificateEntry:(Ljava/lang/String;)Z
ifeq 14
aload 4
ldc "cert-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 14
9: invokestatic io.vertx.core.net.impl.KeyStoreHelper.createEmptyKeyStore:()Ljava/security/KeyStore;
astore 6
start local 6 10: aload 6
ldc "cert-1"
aload 5
invokevirtual java.security.KeyStore.setCertificateEntry:(Ljava/lang/String;Ljava/security/cert/Certificate;)V
11: invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
astore 7
start local 7 12: aload 7
aload 6
invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
13: aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.trustMgrMap:Ljava/util/Map;
aload 4
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 14: StackMap locals: java.lang.String java.security.cert.Certificate
StackMap stack:
aload 1
aload 4
invokevirtual java.security.KeyStore.isKeyEntry:(Ljava/lang/String;)Z
ifeq 47
aload 5
instanceof java.security.cert.X509Certificate
ifeq 47
15: aload 5
checkcast java.security.cert.X509Certificate
astore 6
start local 6 16: aload 6
invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
astore 7
start local 7 17: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 8
start local 8 18: aload 7
ifnull 25
19: aload 7
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 10
goto 24
StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration java.lang.String java.security.cert.Certificate java.security.cert.X509Certificate java.util.Collection java.util.List top java.util.Iterator
StackMap stack:
20: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 9
start local 9 21: aload 9
invokeinterface java.util.List.size:()I
iconst_2
if_icmpne 24
aload 9
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
instanceof java.lang.Number
ifeq 24
aload 9
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Number
invokevirtual java.lang.Number.intValue:()I
iconst_2
if_icmpne 24
22: aload 9
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 11
start local 11 23: aload 8
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 9 24: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
25: StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration java.lang.String java.security.cert.Certificate java.security.cert.X509Certificate java.util.Collection java.util.List
StackMap stack:
aload 6
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
astore 9
start local 9 26: aload 8
aload 9
invokestatic io.vertx.core.net.impl.KeyStoreHelper.getX509CertificateCommonNames:(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
27: aload 8
invokeinterface java.util.List.isEmpty:()Z
ifne 47
28: aload 1
aload 4
aload 2
ifnull 29
aload 2
invokevirtual java.lang.String.toCharArray:()[C
goto 30
StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration java.lang.String java.security.cert.Certificate java.security.cert.X509Certificate java.util.Collection java.util.List java.lang.String
StackMap stack: java.security.KeyStore java.lang.String
29: aconst_null
StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration java.lang.String java.security.cert.Certificate java.security.cert.X509Certificate java.util.Collection java.util.List java.lang.String
StackMap stack: java.security.KeyStore java.lang.String char[]
30: invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
checkcast java.security.PrivateKey
astore 10
start local 10 31: aload 1
aload 4
invokevirtual java.security.KeyStore.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/Certificate;
astore 11
start local 11 32: aload 11
ifnonnull 34
33: goto 47
34: StackMap locals: java.security.PrivateKey java.security.cert.Certificate[]
StackMap stack:
aload 11
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
35: invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
36: 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;
io/vertx/core/net/impl/KeyStoreHelper.lambda$0(Ljava/security/cert/Certificate;)Ljava/security/cert/X509Certificate; (6)
(Ljava/security/cert/Certificate;)Ljava/security/cert/X509Certificate;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
37: 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.List
38: astore 12
start local 12 39: new io.vertx.core.net.impl.KeyStoreHelper$1
dup
aload 0
aload 12
aload 10
invokespecial io.vertx.core.net.impl.KeyStoreHelper$1.<init>:(Lio/vertx/core/net/impl/KeyStoreHelper;Ljava/util/List;Ljava/security/PrivateKey;)V
astore 13
start local 13 40: aload 8
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 15
goto 46
StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration java.lang.String java.security.cert.Certificate java.security.cert.X509Certificate java.util.Collection java.util.List java.lang.String java.security.PrivateKey java.security.cert.Certificate[] java.util.List javax.net.ssl.X509KeyManager top java.util.Iterator
StackMap stack:
41: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 14
start local 14 42: aload 14
ldc "*."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 45
43: aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.wildcardMgrMap:Ljava/util/Map;
aload 14
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
aload 13
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
44: goto 46
45: StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration java.lang.String java.security.cert.Certificate java.security.cert.X509Certificate java.util.Collection java.util.List java.lang.String java.security.PrivateKey java.security.cert.Certificate[] java.util.List javax.net.ssl.X509KeyManager java.lang.String java.util.Iterator
StackMap stack:
aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.mgrMap:Ljava/util/Map;
aload 14
aload 13
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 14 46: StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration java.lang.String java.security.cert.Certificate java.security.cert.X509Certificate java.util.Collection java.util.List java.lang.String java.security.PrivateKey java.security.cert.Certificate[] java.util.List javax.net.ssl.X509KeyManager top java.util.Iterator
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 41
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 47: StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 6
48: aload 0
aload 1
putfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
49: aload 0
aload 2
putfield io.vertx.core.net.impl.KeyStoreHelper.password:Ljava/lang/String;
50: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lio/vertx/core/net/impl/KeyStoreHelper;
0 51 1 ks Ljava/security/KeyStore;
0 51 2 password Ljava/lang/String;
5 51 3 en Ljava/util/Enumeration<Ljava/lang/String;>;
7 47 4 alias Ljava/lang/String;
8 47 5 cert Ljava/security/cert/Certificate;
10 14 6 keyStore Ljava/security/KeyStore;
12 14 7 fact Ljavax/net/ssl/TrustManagerFactory;
16 47 6 x509Cert Ljava/security/cert/X509Certificate;
17 47 7 ans Ljava/util/Collection<Ljava/util/List<*>;>;
18 47 8 domains Ljava/util/List<Ljava/lang/String;>;
21 24 9 l Ljava/util/List<*>;
23 24 11 dns Ljava/lang/String;
26 47 9 dn Ljava/lang/String;
31 47 10 key Ljava/security/PrivateKey;
32 47 11 tmp [Ljava/security/cert/Certificate;
39 47 12 chain Ljava/util/List<Ljava/security/cert/X509Certificate;>;
40 47 13 mgr Ljavax/net/ssl/X509KeyManager;
42 46 14 domain Ljava/lang/String;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ks
password
public javax.net.ssl.KeyManagerFactory getKeyMgrFactory();
descriptor: ()Ljavax/net/ssl/KeyManagerFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
invokestatic javax.net.ssl.KeyManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;
astore 1
start local 1 1: aload 1
aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.password:Ljava/lang/String;
ifnull 2
aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.password:Ljava/lang/String;
invokevirtual java.lang.String.toCharArray:()[C
goto 3
StackMap locals: io.vertx.core.net.impl.KeyStoreHelper javax.net.ssl.KeyManagerFactory
StackMap stack: javax.net.ssl.KeyManagerFactory java.security.KeyStore
2: aconst_null
StackMap locals: io.vertx.core.net.impl.KeyStoreHelper javax.net.ssl.KeyManagerFactory
StackMap stack: javax.net.ssl.KeyManagerFactory java.security.KeyStore char[]
3: invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/core/net/impl/KeyStoreHelper;
1 5 1 fact Ljavax/net/ssl/KeyManagerFactory;
Exceptions:
throws java.lang.Exception
public javax.net.ssl.X509KeyManager getKeyMgr(java.lang.String);
descriptor: (Ljava/lang/String;)Ljavax/net/ssl/X509KeyManager;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.mgrMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.net.ssl.X509KeyManager
astore 2
start local 2 1: aload 2
ifnonnull 6
aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.wildcardMgrMap:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 6
2: aload 1
bipush 46
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
istore 3
start local 3 3: iload 3
ifle 6
4: aload 1
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
start local 4 5: aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.wildcardMgrMap:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.net.ssl.X509KeyManager
astore 2
end local 4 end local 3 6: StackMap locals: javax.net.ssl.X509KeyManager
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/vertx/core/net/impl/KeyStoreHelper;
0 7 1 serverName Ljava/lang/String;
1 7 2 mgr Ljavax/net/ssl/X509KeyManager;
3 6 3 index I
5 6 4 s Ljava/lang/String;
MethodParameters:
Name Flags
serverName
public javax.net.ssl.KeyManager[] getKeyMgr();
descriptor: ()[Ljavax/net/ssl/KeyManager;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.vertx.core.net.impl.KeyStoreHelper.getKeyMgrFactory:()Ljavax/net/ssl/KeyManagerFactory;
invokevirtual javax.net.ssl.KeyManagerFactory.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/net/impl/KeyStoreHelper;
Exceptions:
throws java.lang.Exception
public javax.net.ssl.TrustManager[] getTrustMgr(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljavax/net/ssl/TrustManager;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.trustMgrMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.net.ssl.TrustManagerFactory
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
goto 3
StackMap locals: javax.net.ssl.TrustManagerFactory
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: javax.net.ssl.TrustManager[]
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/core/net/impl/KeyStoreHelper;
0 4 1 serverName Ljava/lang/String;
1 4 2 fact Ljavax/net/ssl/TrustManagerFactory;
MethodParameters:
Name Flags
serverName
public javax.net.ssl.TrustManagerFactory getTrustMgrFactory(io.vertx.core.impl.VertxInternal);
descriptor: (Lio/vertx/core/impl/VertxInternal;)Ljavax/net/ssl/TrustManagerFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
astore 2
start local 2 1: aload 2
aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/core/net/impl/KeyStoreHelper;
0 3 1 vertx Lio/vertx/core/impl/VertxInternal;
1 3 2 fact Ljavax/net/ssl/TrustManagerFactory;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
vertx
public javax.net.ssl.TrustManager[] getTrustMgrs(io.vertx.core.impl.VertxInternal);
descriptor: (Lio/vertx/core/impl/VertxInternal;)[Ljavax/net/ssl/TrustManager;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.vertx.core.net.impl.KeyStoreHelper.getTrustMgrFactory:(Lio/vertx/core/impl/VertxInternal;)Ljavax/net/ssl/TrustManagerFactory;
invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/net/impl/KeyStoreHelper;
0 1 1 vertx Lio/vertx/core/impl/VertxInternal;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
vertx
public java.security.KeyStore store();
descriptor: ()Ljava/security/KeyStore;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/net/impl/KeyStoreHelper;
public static java.util.List<java.lang.String> getX509CertificateCommonNames(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=8, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: invokestatic io.netty.util.internal.PlatformDependent.isAndroid:()Z
ifne 10
2: new javax.naming.ldap.LdapName
dup
aload 0
invokespecial javax.naming.ldap.LdapName.<init>:(Ljava/lang/String;)V
astore 2
start local 2 3: aload 2
invokevirtual javax.naming.ldap.LdapName.getRdns:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: java.lang.String java.util.List javax.naming.ldap.LdapName top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.naming.ldap.Rdn
astore 3
start local 3 5: aload 3
invokevirtual javax.naming.ldap.Rdn.getType:()Ljava/lang/String;
ldc "cn"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 8
6: aload 3
invokevirtual javax.naming.ldap.Rdn.getValue:()Ljava/lang/Object;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 5
start local 5 7: aload 1
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 2 9: goto 18
10: StackMap locals: java.lang.String java.util.List
StackMap stack:
aload 0
invokevirtual java.lang.String.trim:()Ljava/lang/String;
ldc "[,;]"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 11: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 17
StackMap locals: java.lang.String java.util.List java.lang.String[] top int int java.lang.String[]
StackMap stack:
12: aload 6
iload 4
aaload
astore 3
start local 3 13: aload 3
invokevirtual java.lang.String.trim:()Ljava/lang/String;
ldc "="
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 7
start local 7 14: aload 7
arraylength
iconst_2
if_icmpne 16
ldc "cn"
aload 7
iconst_0
aaload
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 16
15: aload 1
aload 7
iconst_1
aaload
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 end local 3 16: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
iload 5
if_icmplt 12
end local 2 18: StackMap locals: java.lang.String java.util.List
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 dn Ljava/lang/String;
1 19 1 names Ljava/util/List<Ljava/lang/String;>;
3 9 2 ldapDN Ljavax/naming/ldap/LdapName;
5 8 3 rdn Ljavax/naming/ldap/Rdn;
7 8 5 name Ljava/lang/String;
11 18 2 rdns [Ljava/lang/String;
13 16 3 rdn Ljava/lang/String;
14 16 7 nvp [Ljava/lang/String;
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
dn
public static java.security.KeyStore loadKeyStoreOptions(java.lang.String, java.lang.String, java.lang.String, java.util.function.Supplier<io.vertx.core.buffer.Buffer>);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/security/KeyStore;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
ifnonnull 2
aload 0
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
goto 3
StackMap locals:
StackMap stack:
2: aload 0
aload 1
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
StackMap locals:
StackMap stack: java.security.KeyStore
3: astore 4
start local 4 4: aconst_null
astore 5
aconst_null
astore 6
5: new java.io.ByteArrayInputStream
dup
aload 3
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast io.vertx.core.buffer.Buffer
invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 7
start local 7 6: aload 4
aload 7
aload 2
ifnull 7
aload 2
invokevirtual java.lang.String.toCharArray:()[C
goto 8
StackMap locals: java.lang.String java.lang.String java.lang.String java.util.function.Supplier java.security.KeyStore java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.security.KeyStore java.io.InputStream
7: aconst_null
StackMap locals: java.lang.String java.lang.String java.lang.String java.util.function.Supplier java.security.KeyStore java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.security.KeyStore java.io.InputStream char[]
8: invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
9: aload 7
ifnull 15
aload 7
invokevirtual java.io.InputStream.close:()V
goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 5
aload 7
ifnull 11
aload 7
invokevirtual java.io.InputStream.close:()V
end local 7 StackMap locals:
StackMap stack:
11: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 6
aload 5
ifnonnull 13
aload 6
astore 5
goto 14
StackMap locals:
StackMap stack:
13: aload 5
aload 6
if_acmpeq 14
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 5
athrow
15: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 type Ljava/lang/String;
0 16 1 provider Ljava/lang/String;
0 16 2 password Ljava/lang/String;
0 16 3 value Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;
4 16 4 ks Ljava/security/KeyStore;
6 11 7 in Ljava/io/InputStream;
Exception table:
from to target type
6 9 10 any
5 12 12 any
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;)Ljava/security/KeyStore;
MethodParameters:
Name Flags
type
provider
password
value
public static java.security.KeyStore loadKeyCert(java.util.List<io.vertx.core.buffer.Buffer>, java.util.List<io.vertx.core.buffer.Buffer>);
descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/security/KeyStore;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.List.size:()I
aload 1
invokeinterface java.util.List.size:()I
if_icmpge 2
1: new io.vertx.core.VertxException
dup
ldc "Missing private key"
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.List.size:()I
aload 1
invokeinterface java.util.List.size:()I
if_icmple 4
3: new io.vertx.core.VertxException
dup
ldc "Missing X.509 certificate"
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
invokestatic io.vertx.core.net.impl.KeyStoreHelper.createEmptyKeyStore:()Ljava/security/KeyStore;
astore 2
start local 2 5: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
start local 3 6: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 7: iconst_0
istore 5
start local 5 8: goto 12
9: StackMap locals: java.util.List java.util.List java.security.KeyStore java.util.Iterator java.util.Iterator int
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.core.buffer.Buffer
invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadPrivateKey:(Lio/vertx/core/buffer/Buffer;)Ljava/security/PrivateKey;
astore 6
start local 6 10: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.core.buffer.Buffer
invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadCerts:(Lio/vertx/core/buffer/Buffer;)[Ljava/security/cert/X509Certificate;
astore 7
start local 7 11: aload 2
new java.lang.StringBuilder
dup
ldc "dummy-entry-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
iinc 5 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
new java.security.KeyStore$PrivateKeyEntry
dup
aload 6
aload 7
invokespecial java.security.KeyStore$PrivateKeyEntry.<init>:(Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;)V
new java.security.KeyStore$PasswordProtection
dup
ldc "dummy"
invokevirtual java.lang.String.toCharArray:()[C
invokespecial java.security.KeyStore$PasswordProtection.<init>:([C)V
invokevirtual java.security.KeyStore.setEntry:(Ljava/lang/String;Ljava/security/KeyStore$Entry;Ljava/security/KeyStore$ProtectionParameter;)V
end local 7 end local 6 12: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 13
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
13: StackMap locals:
StackMap stack:
aload 2
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 keyValue Ljava/util/List<Lio/vertx/core/buffer/Buffer;>;
0 14 1 certValue Ljava/util/List<Lio/vertx/core/buffer/Buffer;>;
5 14 2 keyStore Ljava/security/KeyStore;
6 14 3 keyValueIt Ljava/util/Iterator<Lio/vertx/core/buffer/Buffer;>;
7 14 4 certValueIt Ljava/util/Iterator<Lio/vertx/core/buffer/Buffer;>;
8 14 5 index I
10 12 6 key Ljava/security/PrivateKey;
11 12 7 chain [Ljava/security/cert/Certificate;
Exceptions:
throws java.lang.Exception
Signature: (Ljava/util/List<Lio/vertx/core/buffer/Buffer;>;Ljava/util/List<Lio/vertx/core/buffer/Buffer;>;)Ljava/security/KeyStore;
MethodParameters:
Name Flags
keyValue
certValue
private static java.security.PrivateKey loadPrivateKey(io.vertx.core.buffer.Buffer);
descriptor: (Lio/vertx/core/buffer/Buffer;)Ljava/security/PrivateKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.RuntimeException
dup
ldc "Missing private key path"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
ldc "RSA"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 1
start local 1 3: invokestatic io.vertx.core.net.impl.KeyStoreHelper.getECKeyFactory:()Ljava/security/KeyFactory;
astore 2
start local 2 4: aload 0
aload 1
aload 2
invokedynamic apply(Ljava/security/KeyFactory;Ljava/security/KeyFactory;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
io/vertx/core/net/impl/KeyStoreHelper.lambda$1(Ljava/security/KeyFactory;Ljava/security/KeyFactory;Ljava/lang/String;[B)Ljava/util/Collection; (6)
(Ljava/lang/String;[B)Ljava/util/Collection;
invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadPems:(Lio/vertx/core/buffer/Buffer;Ljava/util/function/BiFunction;)Ljava/util/List;
astore 3
start local 3 5: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 7
6: new java.lang.RuntimeException
dup
ldc "Missing -----BEGIN PRIVATE KEY----- or -----BEGIN RSA PRIVATE KEY----- delimiter"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: java.security.KeyFactory java.security.KeyFactory java.util.List
StackMap stack:
aload 3
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.PrivateKey
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 keyValue Lio/vertx/core/buffer/Buffer;
3 8 1 rsaKeyFactory Ljava/security/KeyFactory;
4 8 2 ecKeyFactory Ljava/security/KeyFactory;
5 8 3 pems Ljava/util/List<Ljava/security/PrivateKey;>;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
keyValue
private static java.security.KeyFactory getECKeyFactory();
descriptor: ()Ljava/security/KeyFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "EC"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
1: areturn
2: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
pop
3: aconst_null
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
0 1 2 Class java.security.NoSuchAlgorithmException
public static java.security.KeyStore loadCA(java.util.stream.Stream<io.vertx.core.buffer.Buffer>);
descriptor: (Ljava/util/stream/Stream;)Ljava/security/KeyStore;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=11, args_size=1
start local 0 0: invokestatic io.vertx.core.net.impl.KeyStoreHelper.createEmptyKeyStore:()Ljava/security/KeyStore;
astore 1
start local 1 1: aload 1
aconst_null
aconst_null
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
2: iconst_0
istore 2
start local 2 3: aload 0
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic iterator(Ljava/util/stream/Stream;)Ljava/lang/Iterable;
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/util/Iterator;
java/util/stream/BaseStream.iterator()Ljava/util/Iterator; (9 itf)
()Ljava/util/Iterator;
astore 3
start local 3 4: aload 3
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6
goto 11
StackMap locals: java.util.stream.Stream java.security.KeyStore int java.lang.Iterable top top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.core.buffer.Buffer
astore 5
start local 5 6: aload 5
invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadCerts:(Lio/vertx/core/buffer/Buffer;)[Ljava/security/cert/X509Certificate;
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 10
StackMap locals: java.util.stream.Stream java.security.KeyStore int java.lang.Iterable top io.vertx.core.buffer.Buffer java.util.Iterator top int int java.security.cert.Certificate[]
StackMap stack:
7: aload 10
iload 8
aaload
astore 7
start local 7 8: aload 1
new java.lang.StringBuilder
dup
ldc "cert-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
iinc 2 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 7
invokevirtual java.security.KeyStore.setCertificateEntry:(Ljava/lang/String;Ljava/security/cert/Certificate;)V
end local 7 9: iinc 8 1
StackMap locals:
StackMap stack:
10: iload 8
iload 9
if_icmplt 7
end local 5 11: StackMap locals: java.util.stream.Stream java.security.KeyStore int java.lang.Iterable top top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
12: aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 certValues Ljava/util/stream/Stream<Lio/vertx/core/buffer/Buffer;>;
1 13 1 keyStore Ljava/security/KeyStore;
3 13 2 count I
4 13 3 iterable Ljava/lang/Iterable<Lio/vertx/core/buffer/Buffer;>;
6 11 5 certValue Lio/vertx/core/buffer/Buffer;
8 9 7 cert Ljava/security/cert/Certificate;
Exceptions:
throws java.lang.Exception
Signature: (Ljava/util/stream/Stream<Lio/vertx/core/buffer/Buffer;>;)Ljava/security/KeyStore;
MethodParameters:
Name Flags
certValues
private static <P> java.util.List<P> loadPems(io.vertx.core.buffer.Buffer, java.util.function.BiFunction<java.lang.String, byte[], java.util.Collection<P>>);
descriptor: (Lio/vertx/core/buffer/Buffer;Ljava/util/function/BiFunction;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=12, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface io.vertx.core.buffer.Buffer.toString:()Ljava/lang/String;
astore 2
start local 2 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 2: getstatic io.vertx.core.net.impl.KeyStoreHelper.BEGIN_PATTERN:Ljava/util/regex/Pattern;
aload 2
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 4
start local 4 3: getstatic io.vertx.core.net.impl.KeyStoreHelper.END_PATTERN:Ljava/util/regex/Pattern;
aload 2
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 5
start local 5 4: StackMap locals: io.vertx.core.buffer.Buffer java.util.function.BiFunction java.lang.String java.util.List java.util.regex.Matcher java.util.regex.Matcher
StackMap stack:
aload 4
invokevirtual java.util.regex.Matcher.find:()Z
istore 6
start local 6 5: iload 6
ifne 7
6: goto 21
7: StackMap locals: int
StackMap stack:
aload 4
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 7
start local 7 8: aload 5
invokevirtual java.util.regex.Matcher.find:()Z
istore 8
start local 8 9: iload 8
ifne 11
10: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Missing -----END "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "----- delimiter"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.lang.String int
StackMap stack:
aload 5
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 9
start local 9 12: aload 7
aload 9
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
13: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Missing -----END "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "----- delimiter"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: java.lang.String
StackMap stack:
aload 2
aload 4
invokevirtual java.util.regex.Matcher.end:()I
aload 5
invokevirtual java.util.regex.Matcher.start:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 10
start local 10 15: aload 10
ldc "\\s"
ldc ""
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 10
16: aload 10
invokevirtual java.lang.String.length:()I
ifne 18
17: new java.lang.RuntimeException
dup
ldc "Empty pem file"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 9
invokestatic java.util.Base64.getDecoder:()Ljava/util/Base64$Decoder;
aload 10
invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Collection
astore 11
start local 11 19: aload 3
aload 11
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 20: goto 4
21: StackMap locals: io.vertx.core.buffer.Buffer java.util.function.BiFunction java.lang.String java.util.List java.util.regex.Matcher java.util.regex.Matcher
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 22 0 data Lio/vertx/core/buffer/Buffer;
0 22 1 pemFact Ljava/util/function/BiFunction<Ljava/lang/String;[BLjava/util/Collection<TP;>;>;
1 22 2 pem Ljava/lang/String;
2 22 3 pems Ljava/util/List<TP;>;
3 22 4 beginMatcher Ljava/util/regex/Matcher;
4 22 5 endMatcher Ljava/util/regex/Matcher;
5 20 6 begin Z
8 20 7 beginDelimiter Ljava/lang/String;
9 20 8 end Z
12 20 9 endDelimiter Ljava/lang/String;
15 20 10 content Ljava/lang/String;
19 20 11 pemItems Ljava/util/Collection<TP;>;
Exceptions:
throws java.io.IOException
Signature: <P:Ljava/lang/Object;>(Lio/vertx/core/buffer/Buffer;Ljava/util/function/BiFunction<Ljava/lang/String;[BLjava/util/Collection<TP;>;>;)Ljava/util/List<TP;>;
MethodParameters:
Name Flags
data
pemFact
private static java.security.cert.X509Certificate[] loadCerts(io.vertx.core.buffer.Buffer);
descriptor: (Lio/vertx/core/buffer/Buffer;)[Ljava/security/cert/X509Certificate;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.RuntimeException
dup
ldc "Missing X.509 certificate path"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 1
start local 1 3: aload 0
aload 1
invokedynamic apply(Ljava/security/cert/CertificateFactory;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
io/vertx/core/net/impl/KeyStoreHelper.lambda$3(Ljava/security/cert/CertificateFactory;Ljava/lang/String;[B)Ljava/util/Collection; (6)
(Ljava/lang/String;[B)Ljava/util/Collection;
invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadPems:(Lio/vertx/core/buffer/Buffer;Ljava/util/function/BiFunction;)Ljava/util/List;
astore 2
start local 2 4: aload 2
invokeinterface java.util.List.isEmpty:()Z
ifeq 6
5: new java.lang.RuntimeException
dup
ldc "Missing -----BEGIN CERTIFICATE----- delimiter"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: java.security.cert.CertificateFactory java.util.List
StackMap stack:
aload 2
iconst_0
anewarray java.security.cert.X509Certificate
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 buffer Lio/vertx/core/buffer/Buffer;
3 7 1 certFactory Ljava/security/cert/CertificateFactory;
4 7 2 certs Ljava/util/List<Ljava/security/cert/X509Certificate;>;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
buffer
private static java.security.KeyStore createEmptyKeyStore();
descriptor: ()Ljava/security/KeyStore;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=0
0: ldc "PKCS12"
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
astore 0
start local 0 1: aload 0
aconst_null
aconst_null
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
2: goto 5
StackMap locals: java.security.KeyStore
StackMap stack: java.lang.Exception
3: astore 1
start local 1 4: new java.security.KeyStoreException
dup
ldc "Failed to initialize the keystore"
aload 1
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 5: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 6 0 keyStore Ljava/security/KeyStore;
4 5 1 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.security.cert.CertificateException
1 2 3 Class java.security.NoSuchAlgorithmException
1 2 3 Class java.io.IOException
Exceptions:
throws java.security.KeyStoreException
private static java.security.cert.X509Certificate lambda$0(java.security.cert.Certificate);
descriptor: (Ljava/security/cert/Certificate;)Ljava/security/cert/X509Certificate;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
checkcast java.security.cert.X509Certificate
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 c Ljava/security/cert/Certificate;
private static java.util.Collection lambda$1(java.security.KeyFactory, java.security.KeyFactory, java.lang.String, byte[]);
descriptor: (Ljava/security/KeyFactory;Ljava/security/KeyFactory;Ljava/lang/String;[B)Ljava/util/Collection;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=6, args_size=4
start local 2 start local 3 0: aload 2
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
-170985982: 1
2121838594: 2
default: 13
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 4
ldc "PRIVATE KEY"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
goto 13
StackMap locals:
StackMap stack:
2: aload 4
ldc "RSA PRIVATE KEY"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
goto 13
3: StackMap locals:
StackMap stack:
aload 0
aload 3
invokestatic io.vertx.core.net.impl.pkcs1.PrivateKeyParser.getRSAKeySpec:([B)Ljava/security/spec/RSAPrivateCrtKeySpec;
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
4: areturn
5: StackMap locals:
StackMap stack:
aload 3
invokestatic io.vertx.core.net.impl.pkcs1.PrivateKeyParser.getPKCS8EncodedKeyAlgorithm:([B)Ljava/lang/String;
astore 5
start local 5 6: aload 0
invokevirtual java.security.KeyFactory.getAlgorithm:()Ljava/lang/String;
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
7: aload 0
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 3
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
8: areturn
9: StackMap locals: java.lang.String
StackMap stack:
aload 1
ifnull 13
10: aload 1
invokevirtual java.security.KeyFactory.getAlgorithm:()Ljava/lang/String;
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
11: aload 1
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 3
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
12: areturn
end local 5 13: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
14: areturn
15: StackMap locals: java.security.KeyFactory java.security.KeyFactory java.lang.String byte[]
StackMap stack: java.security.spec.InvalidKeySpecException
astore 4
start local 4 16: new io.vertx.core.VertxException
dup
aload 4
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 17 2 delimiter Ljava/lang/String;
0 17 3 content [B
6 13 5 algorithm Ljava/lang/String;
16 17 4 e Ljava/security/spec/InvalidKeySpecException;
Exception table:
from to target type
0 4 15 Class java.security.spec.InvalidKeySpecException
5 8 15 Class java.security.spec.InvalidKeySpecException
9 12 15 Class java.security.spec.InvalidKeySpecException
13 14 15 Class java.security.spec.InvalidKeySpecException
private static java.util.Collection lambda$3(java.security.cert.CertificateFactory, java.lang.String, byte[]);
descriptor: (Ljava/security/cert/CertificateFactory;Ljava/lang/String;[B)Ljava/util/Collection;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=3
start local 1 start local 2 0: aload 1
dup
astore 3
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 1
-189606537: 1
default: 4
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 3
ldc "CERTIFICATE"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 2
goto 4
2: StackMap locals:
StackMap stack:
aload 0
new java.io.ByteArrayInputStream
dup
aload 2
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokevirtual java.security.cert.CertificateFactory.generateCertificates:(Ljava/io/InputStream;)Ljava/util/Collection;
3: areturn
4: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
5: areturn
6: StackMap locals: java.security.cert.CertificateFactory java.lang.String byte[]
StackMap stack: java.security.cert.CertificateException
astore 3
start local 3 7: new io.vertx.core.VertxException
dup
aload 3
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 8 1 delimiter Ljava/lang/String;
0 8 2 content [B
7 8 3 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
0 3 6 Class java.security.cert.CertificateException
4 5 6 Class java.security.cert.CertificateException
}
SourceFile: "KeyStoreHelper.java"
NestMembers:
io.vertx.core.net.impl.KeyStoreHelper$1
InnerClasses:
io.vertx.core.net.impl.KeyStoreHelper$1
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.security.KeyStore$Entry of java.security.KeyStore
public PasswordProtection = java.security.KeyStore$PasswordProtection of java.security.KeyStore
public final PrivateKeyEntry = java.security.KeyStore$PrivateKeyEntry of java.security.KeyStore
public abstract ProtectionParameter = java.security.KeyStore$ProtectionParameter of java.security.KeyStore
public Decoder = java.util.Base64$Decoder of java.util.Base64