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: .line 65
            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: .line 66
            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 // io.vertx.core.net.impl.KeyStoreHelper this
        start local 1 // java.security.KeyStore ks
        start local 2 // java.lang.String password
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 70
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.core.net.impl.KeyStoreHelper.wildcardMgrMap:Ljava/util/Map;
         2: .line 71
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.core.net.impl.KeyStoreHelper.mgrMap:Ljava/util/Map;
         3: .line 72
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.core.net.impl.KeyStoreHelper.trustMgrMap:Ljava/util/Map;
         4: .line 75
            aload 1 /* ks */
            invokevirtual java.security.KeyStore.aliases:()Ljava/util/Enumeration;
            astore 3 /* en */
        start local 3 // java.util.Enumeration en
         5: .line 76
            goto 47
         6: .line 77
      StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration
      StackMap stack:
            aload 3 /* en */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* alias */
        start local 4 // java.lang.String alias
         7: .line 78
            aload 1 /* ks */
            aload 4 /* alias */
            invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            astore 5 /* cert */
        start local 5 // java.security.cert.Certificate cert
         8: .line 79
            aload 1 /* ks */
            aload 4 /* alias */
            invokevirtual java.security.KeyStore.isCertificateEntry:(Ljava/lang/String;)Z
            ifeq 14
            aload 4 /* alias */
            ldc "cert-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 14
         9: .line 80
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.createEmptyKeyStore:()Ljava/security/KeyStore;
            astore 6 /* keyStore */
        start local 6 // java.security.KeyStore keyStore
        10: .line 81
            aload 6 /* keyStore */
            ldc "cert-1"
            aload 5 /* cert */
            invokevirtual java.security.KeyStore.setCertificateEntry:(Ljava/lang/String;Ljava/security/cert/Certificate;)V
        11: .line 82
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
            astore 7 /* fact */
        start local 7 // javax.net.ssl.TrustManagerFactory fact
        12: .line 83
            aload 7 /* fact */
            aload 6 /* keyStore */
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
        13: .line 84
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.trustMgrMap:Ljava/util/Map;
            aload 4 /* alias */
            aload 7 /* fact */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // javax.net.ssl.TrustManagerFactory fact
        end local 6 // java.security.KeyStore keyStore
        14: .line 86
      StackMap locals: java.lang.String java.security.cert.Certificate
      StackMap stack:
            aload 1 /* ks */
            aload 4 /* alias */
            invokevirtual java.security.KeyStore.isKeyEntry:(Ljava/lang/String;)Z
            ifeq 47
            aload 5 /* cert */
            instanceof java.security.cert.X509Certificate
            ifeq 47
        15: .line 87
            aload 5 /* cert */
            checkcast java.security.cert.X509Certificate
            astore 6 /* x509Cert */
        start local 6 // java.security.cert.X509Certificate x509Cert
        16: .line 88
            aload 6 /* x509Cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
            astore 7 /* ans */
        start local 7 // java.util.Collection ans
        17: .line 89
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* domains */
        start local 8 // java.util.List domains
        18: .line 90
            aload 7 /* ans */
            ifnull 25
        19: .line 91
            aload 7 /* ans */
            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 /* l */
        start local 9 // java.util.List l
        21: .line 92
            aload 9 /* l */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpne 24
            aload 9 /* l */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            instanceof java.lang.Number
            ifeq 24
            aload 9 /* l */
            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: .line 93
            aload 9 /* l */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 11 /* dns */
        start local 11 // java.lang.String dns
        23: .line 94
            aload 8 /* domains */
            aload 11 /* dns */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.String dns
        end local 9 // java.util.List l
        24: .line 91
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        25: .line 98
      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 /* x509Cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
            astore 9 /* dn */
        start local 9 // java.lang.String dn
        26: .line 99
            aload 8 /* domains */
            aload 9 /* dn */
            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: .line 100
            aload 8 /* domains */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 47
        28: .line 101
            aload 1 /* ks */
            aload 4 /* alias */
            aload 2 /* password */
            ifnull 29
            aload 2 /* password */
            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 /* key */
        start local 10 // java.security.PrivateKey key
        31: .line 102
            aload 1 /* ks */
            aload 4 /* alias */
            invokevirtual java.security.KeyStore.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/Certificate;
            astore 11 /* tmp */
        start local 11 // java.security.cert.Certificate[] tmp
        32: .line 103
            aload 11 /* tmp */
            ifnonnull 34
        33: .line 105
            goto 47
        34: .line 107
      StackMap locals: java.security.PrivateKey java.security.cert.Certificate[]
      StackMap stack:
            aload 11 /* tmp */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
        35: .line 108
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        36: .line 109
            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: .line 110
            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: .line 107
            astore 12 /* chain */
        start local 12 // java.util.List chain
        39: .line 111
            new io.vertx.core.net.impl.KeyStoreHelper$1
            dup
            aload 0 /* this */
            aload 12 /* chain */
            aload 10 /* key */
            invokespecial io.vertx.core.net.impl.KeyStoreHelper$1.<init>:(Lio/vertx/core/net/impl/KeyStoreHelper;Ljava/util/List;Ljava/security/PrivateKey;)V
            astore 13 /* mgr */
        start local 13 // javax.net.ssl.X509KeyManager mgr
        40: .line 137
            aload 8 /* domains */
            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 /* domain */
        start local 14 // java.lang.String domain
        42: .line 138
            aload 14 /* domain */
            ldc "*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 45
        43: .line 139
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.wildcardMgrMap:Ljava/util/Map;
            aload 14 /* domain */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aload 13 /* mgr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        44: .line 140
            goto 46
        45: .line 141
      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 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.mgrMap:Ljava/util/Map;
            aload 14 /* domain */
            aload 13 /* mgr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 14 // java.lang.String domain
        46: .line 137
      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 // javax.net.ssl.X509KeyManager mgr
        end local 12 // java.util.List chain
        end local 11 // java.security.cert.Certificate[] tmp
        end local 10 // java.security.PrivateKey key
        end local 9 // java.lang.String dn
        end local 8 // java.util.List domains
        end local 7 // java.util.Collection ans
        end local 6 // java.security.cert.X509Certificate x509Cert
        end local 5 // java.security.cert.Certificate cert
        end local 4 // java.lang.String alias
        47: .line 76
      StackMap locals: io.vertx.core.net.impl.KeyStoreHelper java.security.KeyStore java.lang.String java.util.Enumeration
      StackMap stack:
            aload 3 /* en */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 6
        48: .line 147
            aload 0 /* this */
            aload 1 /* ks */
            putfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
        49: .line 148
            aload 0 /* this */
            aload 2 /* password */
            putfield io.vertx.core.net.impl.KeyStoreHelper.password:Ljava/lang/String;
        50: .line 149
            return
        end local 3 // java.util.Enumeration en
        end local 2 // java.lang.String password
        end local 1 // java.security.KeyStore ks
        end local 0 // io.vertx.core.net.impl.KeyStoreHelper this
      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 // io.vertx.core.net.impl.KeyStoreHelper this
         0: .line 152
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokestatic javax.net.ssl.KeyManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;
            astore 1 /* fact */
        start local 1 // javax.net.ssl.KeyManagerFactory fact
         1: .line 153
            aload 1 /* fact */
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.password:Ljava/lang/String;
            ifnull 2
            aload 0 /* this */
            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: .line 154
            aload 1 /* fact */
            areturn
        end local 1 // javax.net.ssl.KeyManagerFactory fact
        end local 0 // io.vertx.core.net.impl.KeyStoreHelper this
      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 // io.vertx.core.net.impl.KeyStoreHelper this
        start local 1 // java.lang.String serverName
         0: .line 158
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.mgrMap:Ljava/util/Map;
            aload 1 /* serverName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.net.ssl.X509KeyManager
            astore 2 /* mgr */
        start local 2 // javax.net.ssl.X509KeyManager mgr
         1: .line 159
            aload 2 /* mgr */
            ifnonnull 6
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.wildcardMgrMap:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 6
         2: .line 160
            aload 1 /* serverName */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            istore 3 /* index */
        start local 3 // int index
         3: .line 161
            iload 3 /* index */
            ifle 6
         4: .line 162
            aload 1 /* serverName */
            iload 3 /* index */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* s */
        start local 4 // java.lang.String s
         5: .line 163
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.wildcardMgrMap:Ljava/util/Map;
            aload 4 /* s */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.net.ssl.X509KeyManager
            astore 2 /* mgr */
        end local 4 // java.lang.String s
        end local 3 // int index
         6: .line 166
      StackMap locals: javax.net.ssl.X509KeyManager
      StackMap stack:
            aload 2 /* mgr */
            areturn
        end local 2 // javax.net.ssl.X509KeyManager mgr
        end local 1 // java.lang.String serverName
        end local 0 // io.vertx.core.net.impl.KeyStoreHelper this
      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 // io.vertx.core.net.impl.KeyStoreHelper this
         0: .line 170
            aload 0 /* this */
            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 // io.vertx.core.net.impl.KeyStoreHelper this
      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 // io.vertx.core.net.impl.KeyStoreHelper this
        start local 1 // java.lang.String serverName
         0: .line 174
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.trustMgrMap:Ljava/util/Map;
            aload 1 /* serverName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.net.ssl.TrustManagerFactory
            astore 2 /* fact */
        start local 2 // javax.net.ssl.TrustManagerFactory fact
         1: .line 175
            aload 2 /* fact */
            ifnull 2
            aload 2 /* fact */
            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 // javax.net.ssl.TrustManagerFactory fact
        end local 1 // java.lang.String serverName
        end local 0 // io.vertx.core.net.impl.KeyStoreHelper this
      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 // io.vertx.core.net.impl.KeyStoreHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
         0: .line 179
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
            astore 2 /* fact */
        start local 2 // javax.net.ssl.TrustManagerFactory fact
         1: .line 180
            aload 2 /* fact */
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
         2: .line 181
            aload 2 /* fact */
            areturn
        end local 2 // javax.net.ssl.TrustManagerFactory fact
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.KeyStoreHelper this
      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 // io.vertx.core.net.impl.KeyStoreHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
         0: .line 185
            aload 0 /* this */
            aload 1 /* vertx */
            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 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.KeyStoreHelper this
      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 // io.vertx.core.net.impl.KeyStoreHelper this
         0: .line 192
            aload 0 /* this */
            getfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
            areturn
        end local 0 // io.vertx.core.net.impl.KeyStoreHelper this
      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 // java.lang.String dn
         0: .line 196
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* names */
        start local 1 // java.util.List names
         1: .line 197
            invokestatic io.netty.util.internal.PlatformDependent.isAndroid:()Z
            ifne 10
         2: .line 198
            new javax.naming.ldap.LdapName
            dup
            aload 0 /* dn */
            invokespecial javax.naming.ldap.LdapName.<init>:(Ljava/lang/String;)V
            astore 2 /* ldapDN */
        start local 2 // javax.naming.ldap.LdapName ldapDN
         3: .line 199
            aload 2 /* ldapDN */
            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 /* rdn */
        start local 3 // javax.naming.ldap.Rdn rdn
         5: .line 200
            aload 3 /* rdn */
            invokevirtual javax.naming.ldap.Rdn.getType:()Ljava/lang/String;
            ldc "cn"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 201
            aload 3 /* rdn */
            invokevirtual javax.naming.ldap.Rdn.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         7: .line 202
            aload 1 /* names */
            aload 5 /* name */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.String name
        end local 3 // javax.naming.ldap.Rdn rdn
         8: .line 199
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // javax.naming.ldap.LdapName ldapDN
         9: .line 205
            goto 18
        10: .line 206
      StackMap locals: java.lang.String java.util.List
      StackMap stack:
            aload 0 /* dn */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc "[,;]"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* rdns */
        start local 2 // java.lang.String[] rdns
        11: .line 207
            aload 2 /* rdns */
            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 /* rdn */
        start local 3 // java.lang.String rdn
        13: .line 208
            aload 3 /* rdn */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc "="
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* nvp */
        start local 7 // java.lang.String[] nvp
        14: .line 209
            aload 7 /* nvp */
            arraylength
            iconst_2
            if_icmpne 16
            ldc "cn"
            aload 7 /* nvp */
            iconst_0
            aaload
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 16
        15: .line 210
            aload 1 /* names */
            aload 7 /* nvp */
            iconst_1
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String[] nvp
        end local 3 // java.lang.String rdn
        16: .line 207
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        17: iload 4
            iload 5
            if_icmplt 12
        end local 2 // java.lang.String[] rdns
        18: .line 215
      StackMap locals: java.lang.String java.util.List
      StackMap stack:
            aload 1 /* names */
            areturn
        end local 1 // java.util.List names
        end local 0 // java.lang.String dn
      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 // java.lang.String type
        start local 1 // java.lang.String provider
        start local 2 // java.lang.String password
        start local 3 // java.util.function.Supplier value
         0: .line 219
            aload 0 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 220
            aload 1 /* provider */
            ifnonnull 2
            aload 0 /* type */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* type */
            aload 1 /* provider */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
      StackMap locals:
      StackMap stack: java.security.KeyStore
         3: astore 4 /* ks */
        start local 4 // java.security.KeyStore ks
         4: .line 221
            aconst_null
            astore 5
            aconst_null
            astore 6
         5: new java.io.ByteArrayInputStream
            dup
            aload 3 /* value */
            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 /* in */
        start local 7 // java.io.InputStream in
         6: .line 222
            aload 4 /* ks */
            aload 7 /* in */
            aload 2 /* password */
            ifnull 7
            aload 2 /* password */
            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: .line 223
            aload 7 /* in */
            ifnull 15
            aload 7 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 5
            aload 7 /* in */
            ifnull 11
            aload 7 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 7 // java.io.InputStream in
      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: .line 224
      StackMap locals:
      StackMap stack:
            aload 4 /* ks */
            areturn
        end local 4 // java.security.KeyStore ks
        end local 3 // java.util.function.Supplier value
        end local 2 // java.lang.String password
        end local 1 // java.lang.String provider
        end local 0 // java.lang.String type
      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 // java.util.List keyValue
        start local 1 // java.util.List certValue
         0: .line 228
            aload 0 /* keyValue */
            invokeinterface java.util.List.size:()I
            aload 1 /* certValue */
            invokeinterface java.util.List.size:()I
            if_icmpge 2
         1: .line 229
            new io.vertx.core.VertxException
            dup
            ldc "Missing private key"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* keyValue */
            invokeinterface java.util.List.size:()I
            aload 1 /* certValue */
            invokeinterface java.util.List.size:()I
            if_icmple 4
         3: .line 231
            new io.vertx.core.VertxException
            dup
            ldc "Missing X.509 certificate"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 233
      StackMap locals:
      StackMap stack:
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.createEmptyKeyStore:()Ljava/security/KeyStore;
            astore 2 /* keyStore */
        start local 2 // java.security.KeyStore keyStore
         5: .line 234
            aload 0 /* keyValue */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* keyValueIt */
        start local 3 // java.util.Iterator keyValueIt
         6: .line 235
            aload 1 /* certValue */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* certValueIt */
        start local 4 // java.util.Iterator certValueIt
         7: .line 236
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         8: .line 237
            goto 12
         9: .line 238
      StackMap locals: java.util.List java.util.List java.security.KeyStore java.util.Iterator java.util.Iterator int
      StackMap stack:
            aload 3 /* keyValueIt */
            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 /* key */
        start local 6 // java.security.PrivateKey key
        10: .line 239
            aload 4 /* certValueIt */
            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 /* chain */
        start local 7 // java.security.cert.Certificate[] chain
        11: .line 240
            aload 2 /* keyStore */
            new java.lang.StringBuilder
            dup
            ldc "dummy-entry-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* index */
            iinc 5 /* index */ 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 /* key */
            aload 7 /* chain */
            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 // java.security.cert.Certificate[] chain
        end local 6 // java.security.PrivateKey key
        12: .line 237
      StackMap locals:
      StackMap stack:
            aload 3 /* keyValueIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 13
            aload 4 /* certValueIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 242
      StackMap locals:
      StackMap stack:
            aload 2 /* keyStore */
            areturn
        end local 5 // int index
        end local 4 // java.util.Iterator certValueIt
        end local 3 // java.util.Iterator keyValueIt
        end local 2 // java.security.KeyStore keyStore
        end local 1 // java.util.List certValue
        end local 0 // java.util.List keyValue
      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 // io.vertx.core.buffer.Buffer keyValue
         0: .line 246
            aload 0 /* keyValue */
            ifnonnull 2
         1: .line 247
            new java.lang.RuntimeException
            dup
            ldc "Missing private key path"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 249
      StackMap locals:
      StackMap stack:
            ldc "RSA"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 1 /* rsaKeyFactory */
        start local 1 // java.security.KeyFactory rsaKeyFactory
         3: .line 250
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.getECKeyFactory:()Ljava/security/KeyFactory;
            astore 2 /* ecKeyFactory */
        start local 2 // java.security.KeyFactory ecKeyFactory
         4: .line 251
            aload 0 /* keyValue */
            aload 1 /* rsaKeyFactory */
            aload 2 /* ecKeyFactory */
            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 /* pems */
        start local 3 // java.util.List pems
         5: .line 273
            aload 3 /* pems */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         6: .line 274
            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: .line 276
      StackMap locals: java.security.KeyFactory java.security.KeyFactory java.util.List
      StackMap stack:
            aload 3 /* pems */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.PrivateKey
            areturn
        end local 3 // java.util.List pems
        end local 2 // java.security.KeyFactory ecKeyFactory
        end local 1 // java.security.KeyFactory rsaKeyFactory
        end local 0 // io.vertx.core.buffer.Buffer keyValue
      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: .line 281
            ldc "EC"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
         1: areturn
         2: .line 282
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            pop
         3: .line 284
            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 // java.util.stream.Stream certValues
         0: .line 289
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.createEmptyKeyStore:()Ljava/security/KeyStore;
            astore 1 /* keyStore */
        start local 1 // java.security.KeyStore keyStore
         1: .line 290
            aload 1 /* keyStore */
            aconst_null
            aconst_null
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         2: .line 291
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         3: .line 292
            aload 0 /* certValues */
            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 /* iterable */
        start local 3 // java.lang.Iterable iterable
         4: .line 293
            aload 3 /* iterable */
            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 /* certValue */
        start local 5 // io.vertx.core.buffer.Buffer certValue
         6: .line 294
            aload 5 /* certValue */
            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 /* cert */
        start local 7 // java.security.cert.Certificate cert
         8: .line 295
            aload 1 /* keyStore */
            new java.lang.StringBuilder
            dup
            ldc "cert-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* count */
            iinc 2 /* count */ 1
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* cert */
            invokevirtual java.security.KeyStore.setCertificateEntry:(Ljava/lang/String;Ljava/security/cert/Certificate;)V
        end local 7 // java.security.cert.Certificate cert
         9: .line 294
            iinc 8 1
      StackMap locals:
      StackMap stack:
        10: iload 8
            iload 9
            if_icmplt 7
        end local 5 // io.vertx.core.buffer.Buffer certValue
        11: .line 293
      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: .line 298
            aload 1 /* keyStore */
            areturn
        end local 3 // java.lang.Iterable iterable
        end local 2 // int count
        end local 1 // java.security.KeyStore keyStore
        end local 0 // java.util.stream.Stream certValues
      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 // io.vertx.core.buffer.Buffer data
        start local 1 // java.util.function.BiFunction pemFact
         0: .line 302
            aload 0 /* data */
            invokeinterface io.vertx.core.buffer.Buffer.toString:()Ljava/lang/String;
            astore 2 /* pem */
        start local 2 // java.lang.String pem
         1: .line 303
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* pems */
        start local 3 // java.util.List pems
         2: .line 304
            getstatic io.vertx.core.net.impl.KeyStoreHelper.BEGIN_PATTERN:Ljava/util/regex/Pattern;
            aload 2 /* pem */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 4 /* beginMatcher */
        start local 4 // java.util.regex.Matcher beginMatcher
         3: .line 305
            getstatic io.vertx.core.net.impl.KeyStoreHelper.END_PATTERN:Ljava/util/regex/Pattern;
            aload 2 /* pem */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 5 /* endMatcher */
        start local 5 // java.util.regex.Matcher endMatcher
         4: .line 307
      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 /* beginMatcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            istore 6 /* begin */
        start local 6 // boolean begin
         5: .line 308
            iload 6 /* begin */
            ifne 7
         6: .line 309
            goto 21
         7: .line 311
      StackMap locals: int
      StackMap stack:
            aload 4 /* beginMatcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 7 /* beginDelimiter */
        start local 7 // java.lang.String beginDelimiter
         8: .line 312
            aload 5 /* endMatcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            istore 8 /* end */
        start local 8 // boolean end
         9: .line 313
            iload 8 /* end */
            ifne 11
        10: .line 314
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Missing -----END "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* beginDelimiter */
            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: .line 316
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 5 /* endMatcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 9 /* endDelimiter */
        start local 9 // java.lang.String endDelimiter
        12: .line 317
            aload 7 /* beginDelimiter */
            aload 9 /* endDelimiter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
        13: .line 318
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Missing -----END "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* beginDelimiter */
            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: .line 320
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* pem */
            aload 4 /* beginMatcher */
            invokevirtual java.util.regex.Matcher.end:()I
            aload 5 /* endMatcher */
            invokevirtual java.util.regex.Matcher.start:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 10 /* content */
        start local 10 // java.lang.String content
        15: .line 321
            aload 10 /* content */
            ldc "\\s"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* content */
        16: .line 322
            aload 10 /* content */
            invokevirtual java.lang.String.length:()I
            ifne 18
        17: .line 323
            new java.lang.RuntimeException
            dup
            ldc "Empty pem file"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 325
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* pemFact */
            aload 9 /* endDelimiter */
            invokestatic java.util.Base64.getDecoder:()Ljava/util/Base64$Decoder;
            aload 10 /* content */
            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 /* pemItems */
        start local 11 // java.util.Collection pemItems
        19: .line 326
            aload 3 /* pems */
            aload 11 /* pemItems */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 11 // java.util.Collection pemItems
        end local 10 // java.lang.String content
        end local 9 // java.lang.String endDelimiter
        end local 8 // boolean end
        end local 7 // java.lang.String beginDelimiter
        end local 6 // boolean begin
        20: .line 306
            goto 4
        21: .line 330
      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 /* pems */
            areturn
        end local 5 // java.util.regex.Matcher endMatcher
        end local 4 // java.util.regex.Matcher beginMatcher
        end local 3 // java.util.List pems
        end local 2 // java.lang.String pem
        end local 1 // java.util.function.BiFunction pemFact
        end local 0 // io.vertx.core.buffer.Buffer data
      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 // io.vertx.core.buffer.Buffer buffer
         0: .line 334
            aload 0 /* buffer */
            ifnonnull 2
         1: .line 335
            new java.lang.RuntimeException
            dup
            ldc "Missing X.509 certificate path"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 337
      StackMap locals:
      StackMap stack:
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 1 /* certFactory */
        start local 1 // java.security.cert.CertificateFactory certFactory
         3: .line 338
            aload 0 /* buffer */
            aload 1 /* certFactory */
            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 /* certs */
        start local 2 // java.util.List certs
         4: .line 350
            aload 2 /* certs */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 6
         5: .line 351
            new java.lang.RuntimeException
            dup
            ldc "Missing -----BEGIN CERTIFICATE----- delimiter"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 353
      StackMap locals: java.security.cert.CertificateFactory java.util.List
      StackMap stack:
            aload 2 /* certs */
            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 // java.util.List certs
        end local 1 // java.security.cert.CertificateFactory certFactory
        end local 0 // io.vertx.core.buffer.Buffer buffer
      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: .line 374
            ldc "PKCS12"
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 0 /* keyStore */
        start local 0 // java.security.KeyStore keyStore
         1: .line 376
            aload 0 /* keyStore */
            aconst_null
            aconst_null
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         2: .line 377
            goto 5
      StackMap locals: java.security.KeyStore
      StackMap stack: java.lang.Exception
         3: astore 1 /* e */
        start local 1 // java.lang.Exception e
         4: .line 380
            new java.security.KeyStoreException
            dup
            ldc "Failed to initialize the keystore"
            aload 1 /* e */
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
         5: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* keyStore */
            areturn
        end local 0 // java.security.KeyStore keyStore
      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 // java.security.cert.Certificate c
         0: .line 109
            aload 0 /* c */
            checkcast java.security.cert.X509Certificate
            areturn
        end local 0 // java.security.cert.Certificate c
      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 // java.lang.String delimiter
        start local 3 // byte[] content
         0: .line 253
            aload 2 /* delimiter */
            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: .line 255
      StackMap locals:
      StackMap stack:
            aload 0
            aload 3 /* content */
            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: .line 259
      StackMap locals:
      StackMap stack:
            aload 3 /* content */
            invokestatic io.vertx.core.net.impl.pkcs1.PrivateKeyParser.getPKCS8EncodedKeyAlgorithm:([B)Ljava/lang/String;
            astore 5 /* algorithm */
        start local 5 // java.lang.String algorithm
         6: .line 260
            aload 0
            invokevirtual java.security.KeyFactory.getAlgorithm:()Ljava/lang/String;
            aload 5 /* algorithm */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 261
            aload 0
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 3 /* content */
            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: .line 262
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1
            ifnull 13
        10: .line 263
            aload 1
            invokevirtual java.security.KeyFactory.getAlgorithm:()Ljava/lang/String;
            aload 5 /* algorithm */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 264
            aload 1
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 3 /* content */
            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 // java.lang.String algorithm
        13: .line 267
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
        14: areturn
        15: .line 269
      StackMap locals: java.security.KeyFactory java.security.KeyFactory java.lang.String byte[]
      StackMap stack: java.security.spec.InvalidKeySpecException
            astore 4 /* e */
        start local 4 // java.security.spec.InvalidKeySpecException e
        16: .line 270
            new io.vertx.core.VertxException
            dup
            aload 4 /* e */
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.spec.InvalidKeySpecException e
        end local 3 // byte[] content
        end local 2 // java.lang.String delimiter
      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 // java.lang.String delimiter
        start local 2 // byte[] content
         0: .line 340
            aload 1 /* delimiter */
            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: .line 342
      StackMap locals:
      StackMap stack:
            aload 0
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* content */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual java.security.cert.CertificateFactory.generateCertificates:(Ljava/io/InputStream;)Ljava/util/Collection;
         3: areturn
         4: .line 344
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         5: areturn
         6: .line 346
      StackMap locals: java.security.cert.CertificateFactory java.lang.String byte[]
      StackMap stack: java.security.cert.CertificateException
            astore 3 /* e */
        start local 3 // java.security.cert.CertificateException e
         7: .line 347
            new io.vertx.core.VertxException
            dup
            aload 3 /* e */
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.security.cert.CertificateException e
        end local 2 // byte[] content
        end local 1 // java.lang.String delimiter
      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