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
{
  private static final java.lang.String DUMMY_PASSWORD;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, 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 70
            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 71
            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 static io.vertx.core.net.impl.KeyStoreHelper create(io.vertx.core.impl.VertxInternal, io.vertx.core.net.KeyCertOptions);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/KeyCertOptions;)Lio/vertx/core/net/impl/KeyStoreHelper;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // io.vertx.core.impl.VertxInternal vertx
        start local 1 // io.vertx.core.net.KeyCertOptions options
         0: .line 74
            aload 1 /* options */
            instanceof io.vertx.core.net.JksOptions
            ifeq 10
         1: .line 75
            aload 1 /* options */
            checkcast io.vertx.core.net.JksOptions
            astore 2 /* jks */
        start local 2 // io.vertx.core.net.JksOptions jks
         2: .line 77
            aload 2 /* jks */
            invokevirtual io.vertx.core.net.JksOptions.getPath:()Ljava/lang/String;
            ifnull 5
         3: .line 78
            aload 0 /* vertx */
            aload 2 /* jks */
            invokedynamic get(Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/JksOptions;)Ljava/util/function/Supplier;
              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;
                  io/vertx/core/net/impl/KeyStoreHelper.lambda$0(Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/JksOptions;)Lio/vertx/core/buffer/Buffer; (6)
                  ()Lio/vertx/core/buffer/Buffer;
            astore 3 /* value */
        start local 3 // java.util.function.Supplier value
         4: .line 79
            goto 9
        end local 3 // java.util.function.Supplier value
      StackMap locals: io.vertx.core.net.JksOptions
      StackMap stack:
         5: aload 2 /* jks */
            invokevirtual io.vertx.core.net.JksOptions.getValue:()Lio/vertx/core/buffer/Buffer;
            ifnull 8
         6: .line 80
            aload 2 /* jks */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Lio/vertx/core/net/JksOptions;)Ljava/util/function/Supplier;
              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;
                  io/vertx/core/net/JksOptions.getValue()Lio/vertx/core/buffer/Buffer; (5)
                  ()Lio/vertx/core/buffer/Buffer;
            astore 3 /* value */
        start local 3 // java.util.function.Supplier value
         7: .line 81
            goto 9
        end local 3 // java.util.function.Supplier value
         8: .line 82
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        start local 3 // java.util.function.Supplier value
         9: .line 84
      StackMap locals: java.util.function.Supplier
      StackMap stack:
            new io.vertx.core.net.impl.KeyStoreHelper
            dup
            ldc "JKS"
            aload 2 /* jks */
            invokevirtual io.vertx.core.net.JksOptions.getPassword:()Ljava/lang/String;
            aload 3 /* value */
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadJKSOrPKCS12:(Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/security/KeyStore;
            aload 2 /* jks */
            invokevirtual io.vertx.core.net.JksOptions.getPassword:()Ljava/lang/String;
            invokespecial io.vertx.core.net.impl.KeyStoreHelper.<init>:(Ljava/security/KeyStore;Ljava/lang/String;)V
            areturn
        end local 3 // java.util.function.Supplier value
        end local 2 // io.vertx.core.net.JksOptions jks
        10: .line 85
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            instanceof io.vertx.core.net.PfxOptions
            ifeq 20
        11: .line 86
            aload 1 /* options */
            checkcast io.vertx.core.net.PfxOptions
            astore 2 /* pkcs12 */
        start local 2 // io.vertx.core.net.PfxOptions pkcs12
        12: .line 88
            aload 2 /* pkcs12 */
            invokevirtual io.vertx.core.net.PfxOptions.getPath:()Ljava/lang/String;
            ifnull 15
        13: .line 89
            aload 0 /* vertx */
            aload 2 /* pkcs12 */
            invokedynamic get(Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/PfxOptions;)Ljava/util/function/Supplier;
              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;
                  io/vertx/core/net/impl/KeyStoreHelper.lambda$2(Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/PfxOptions;)Lio/vertx/core/buffer/Buffer; (6)
                  ()Lio/vertx/core/buffer/Buffer;
            astore 3 /* value */
        start local 3 // java.util.function.Supplier value
        14: .line 90
            goto 19
        end local 3 // java.util.function.Supplier value
      StackMap locals: io.vertx.core.net.PfxOptions
      StackMap stack:
        15: aload 2 /* pkcs12 */
            invokevirtual io.vertx.core.net.PfxOptions.getValue:()Lio/vertx/core/buffer/Buffer;
            ifnull 18
        16: .line 91
            aload 2 /* pkcs12 */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Lio/vertx/core/net/PfxOptions;)Ljava/util/function/Supplier;
              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;
                  io/vertx/core/net/PfxOptions.getValue()Lio/vertx/core/buffer/Buffer; (5)
                  ()Lio/vertx/core/buffer/Buffer;
            astore 3 /* value */
        start local 3 // java.util.function.Supplier value
        17: .line 92
            goto 19
        end local 3 // java.util.function.Supplier value
        18: .line 93
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        start local 3 // java.util.function.Supplier value
        19: .line 95
      StackMap locals: java.util.function.Supplier
      StackMap stack:
            new io.vertx.core.net.impl.KeyStoreHelper
            dup
            ldc "PKCS12"
            aload 2 /* pkcs12 */
            invokevirtual io.vertx.core.net.PfxOptions.getPassword:()Ljava/lang/String;
            aload 3 /* value */
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadJKSOrPKCS12:(Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/security/KeyStore;
            aload 2 /* pkcs12 */
            invokevirtual io.vertx.core.net.PfxOptions.getPassword:()Ljava/lang/String;
            invokespecial io.vertx.core.net.impl.KeyStoreHelper.<init>:(Ljava/security/KeyStore;Ljava/lang/String;)V
            areturn
        end local 3 // java.util.function.Supplier value
        end local 2 // io.vertx.core.net.PfxOptions pkcs12
        20: .line 96
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            instanceof io.vertx.core.net.PemKeyCertOptions
            ifeq 35
        21: .line 97
            aload 1 /* options */
            checkcast io.vertx.core.net.PemKeyCertOptions
            astore 2 /* keyCert */
        start local 2 // io.vertx.core.net.PemKeyCertOptions keyCert
        22: .line 98
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* keys */
        start local 3 // java.util.List keys
        23: .line 99
            aload 2 /* keyCert */
            invokevirtual io.vertx.core.net.PemKeyCertOptions.getKeyPaths:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 26
      StackMap locals: io.vertx.core.impl.VertxInternal io.vertx.core.net.KeyCertOptions io.vertx.core.net.PemKeyCertOptions java.util.List top java.util.Iterator
      StackMap stack:
        24: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* keyPath */
        start local 4 // java.lang.String keyPath
        25: .line 100
            aload 3 /* keys */
            aload 0 /* vertx */
            invokeinterface io.vertx.core.impl.VertxInternal.fileSystem:()Lio/vertx/core/file/FileSystem;
            aload 0 /* vertx */
            aload 4 /* keyPath */
            invokeinterface io.vertx.core.impl.VertxInternal.resolveFile:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokeinterface io.vertx.core.file.FileSystem.readFileBlocking:(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String keyPath
        26: .line 99
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        27: .line 102
            aload 3 /* keys */
            aload 2 /* keyCert */
            invokevirtual io.vertx.core.net.PemKeyCertOptions.getKeyValues:()Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        28: .line 103
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* certs */
        start local 4 // java.util.List certs
        29: .line 104
            aload 2 /* keyCert */
            invokevirtual io.vertx.core.net.PemKeyCertOptions.getCertPaths:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 32
      StackMap locals: io.vertx.core.impl.VertxInternal io.vertx.core.net.KeyCertOptions io.vertx.core.net.PemKeyCertOptions java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        30: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* certPath */
        start local 5 // java.lang.String certPath
        31: .line 105
            aload 4 /* certs */
            aload 0 /* vertx */
            invokeinterface io.vertx.core.impl.VertxInternal.fileSystem:()Lio/vertx/core/file/FileSystem;
            aload 0 /* vertx */
            aload 5 /* certPath */
            invokeinterface io.vertx.core.impl.VertxInternal.resolveFile:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokeinterface io.vertx.core.file.FileSystem.readFileBlocking:(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.String certPath
        32: .line 104
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        33: .line 107
            aload 4 /* certs */
            aload 2 /* keyCert */
            invokevirtual io.vertx.core.net.PemKeyCertOptions.getCertValues:()Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        34: .line 108
            new io.vertx.core.net.impl.KeyStoreHelper
            dup
            aload 3 /* keys */
            aload 4 /* certs */
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadKeyCert:(Ljava/util/List;Ljava/util/List;)Ljava/security/KeyStore;
            ldc "dummy"
            invokespecial io.vertx.core.net.impl.KeyStoreHelper.<init>:(Ljava/security/KeyStore;Ljava/lang/String;)V
            areturn
        end local 4 // java.util.List certs
        end local 3 // java.util.List keys
        end local 2 // io.vertx.core.net.PemKeyCertOptions keyCert
        35: .line 110
      StackMap locals: io.vertx.core.impl.VertxInternal io.vertx.core.net.KeyCertOptions
      StackMap stack:
            aconst_null
            areturn
        end local 1 // io.vertx.core.net.KeyCertOptions options
        end local 0 // io.vertx.core.impl.VertxInternal vertx
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   36     0     vertx  Lio/vertx/core/impl/VertxInternal;
            0   36     1   options  Lio/vertx/core/net/KeyCertOptions;
            2   10     2       jks  Lio/vertx/core/net/JksOptions;
            4    5     3     value  Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;
            7    8     3     value  Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;
            9   10     3     value  Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;
           12   20     2    pkcs12  Lio/vertx/core/net/PfxOptions;
           14   15     3     value  Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;
           17   18     3     value  Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;
           19   20     3     value  Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;
           22   35     2   keyCert  Lio/vertx/core/net/PemKeyCertOptions;
           23   35     3      keys  Ljava/util/List<Lio/vertx/core/buffer/Buffer;>;
           25   26     4   keyPath  Ljava/lang/String;
           29   35     4     certs  Ljava/util/List<Lio/vertx/core/buffer/Buffer;>;
           31   32     5  certPath  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      vertx    
      options  

  public static io.vertx.core.net.impl.KeyStoreHelper create(io.vertx.core.impl.VertxInternal, io.vertx.core.net.TrustOptions);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/TrustOptions;)Lio/vertx/core/net/impl/KeyStoreHelper;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.vertx.core.impl.VertxInternal vertx
        start local 1 // io.vertx.core.net.TrustOptions options
         0: .line 115
            aload 1 /* options */
            instanceof io.vertx.core.net.KeyCertOptions
            ifeq 2
         1: .line 116
            aload 0 /* vertx */
            aload 1 /* options */
            checkcast io.vertx.core.net.KeyCertOptions
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.create:(Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/KeyCertOptions;)Lio/vertx/core/net/impl/KeyStoreHelper;
            areturn
         2: .line 117
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            instanceof io.vertx.core.net.PemTrustOptions
            ifeq 12
         3: .line 118
            aload 1 /* options */
            checkcast io.vertx.core.net.PemTrustOptions
            astore 2 /* trustOptions */
        start local 2 // io.vertx.core.net.PemTrustOptions trustOptions
         4: .line 119
            aload 2 /* trustOptions */
         5: .line 120
            invokevirtual io.vertx.core.net.PemTrustOptions.getCertPaths:()Ljava/util/List;
         6: .line 121
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         7: .line 122
            aload 0 /* vertx */
            invokedynamic apply(Lio/vertx/core/impl/VertxInternal;)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$4(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         8: .line 123
            aload 0 /* vertx */
            invokeinterface io.vertx.core.impl.VertxInternal.fileSystem:()Lio/vertx/core/file/FileSystem;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Lio/vertx/core/file/FileSystem;)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/file/FileSystem.readFileBlocking(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer; (9 itf)
                  (Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         9: .line 119
            astore 3 /* certValues */
        start local 3 // java.util.stream.Stream certValues
        10: .line 124
            aload 3 /* certValues */
            aload 2 /* trustOptions */
            invokevirtual io.vertx.core.net.PemTrustOptions.getCertValues:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
            astore 3 /* certValues */
        11: .line 125
            new io.vertx.core.net.impl.KeyStoreHelper
            dup
            aload 3 /* certValues */
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.loadCA:(Ljava/util/stream/Stream;)Ljava/security/KeyStore;
            aconst_null
            invokespecial io.vertx.core.net.impl.KeyStoreHelper.<init>:(Ljava/security/KeyStore;Ljava/lang/String;)V
            areturn
        end local 3 // java.util.stream.Stream certValues
        end local 2 // io.vertx.core.net.PemTrustOptions trustOptions
        12: .line 127
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // io.vertx.core.net.TrustOptions options
        end local 0 // io.vertx.core.impl.VertxInternal vertx
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0         vertx  Lio/vertx/core/impl/VertxInternal;
            0   13     1       options  Lio/vertx/core/net/TrustOptions;
            4   12     2  trustOptions  Lio/vertx/core/net/PemTrustOptions;
           10   12     3    certValues  Ljava/util/stream/Stream<Lio/vertx/core/buffer/Buffer;>;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      vertx    
      options  

  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 137
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 133
            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 134
            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 135
            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 138
            aload 1 /* ks */
            invokevirtual java.security.KeyStore.aliases:()Ljava/util/Enumeration;
            astore 3 /* en */
        start local 3 // java.util.Enumeration en
         5: .line 139
            goto 47
         6: .line 140
      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 141
            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 142
            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 143
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.createEmptyKeyStore:()Ljava/security/KeyStore;
            astore 6 /* keyStore */
        start local 6 // java.security.KeyStore keyStore
        10: .line 144
            aload 6 /* keyStore */
            ldc "cert-1"
            aload 5 /* cert */
            invokevirtual java.security.KeyStore.setCertificateEntry:(Ljava/lang/String;Ljava/security/cert/Certificate;)V
        11: .line 145
            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 146
            aload 7 /* fact */
            aload 6 /* keyStore */
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
        13: .line 147
            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 149
      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 150
            aload 5 /* cert */
            checkcast java.security.cert.X509Certificate
            astore 6 /* x509Cert */
        start local 6 // java.security.cert.X509Certificate x509Cert
        16: .line 151
            aload 6 /* x509Cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
            astore 7 /* ans */
        start local 7 // java.util.Collection ans
        17: .line 152
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* domains */
        start local 8 // java.util.List domains
        18: .line 153
            aload 7 /* ans */
            ifnull 25
        19: .line 154
            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 155
            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 156
            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 157
            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 154
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        25: .line 161
      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 162
            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 163
            aload 8 /* domains */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 47
        28: .line 164
            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 165
            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 166
            aload 11 /* tmp */
            ifnonnull 34
        33: .line 168
            goto 47
        34: .line 170
      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 171
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        36: .line 172
            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$6(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 173
            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 170
            astore 12 /* chain */
        start local 12 // java.util.List chain
        39: .line 174
            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 200
            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 201
            aload 14 /* domain */
            ldc "*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 45
        43: .line 202
            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 203
            goto 46
        45: .line 204
      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 200
      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 139
      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 210
            aload 0 /* this */
            aload 1 /* ks */
            putfield io.vertx.core.net.impl.KeyStoreHelper.store:Ljava/security/KeyStore;
        49: .line 211
            aload 0 /* this */
            aload 2 /* password */
            putfield io.vertx.core.net.impl.KeyStoreHelper.password:Ljava/lang/String;
        50: .line 212
            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 215
            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 216
            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 217
            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 221
            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 222
            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 223
            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 224
            iload 3 /* index */
            ifle 6
         4: .line 225
            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 226
            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 229
      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 233
            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 237
            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 238
            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 242
            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 243
            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 244
            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 248
            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 255
            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 259
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* names */
        start local 1 // java.util.List names
         1: .line 260
            invokestatic io.netty.util.internal.PlatformDependent.isAndroid:()Z
            ifne 10
         2: .line 261
            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 262
            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 263
            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 264
            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 265
            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 262
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // javax.naming.ldap.LdapName ldapDN
         9: .line 268
            goto 18
        10: .line 269
      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 270
            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 271
            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 272
            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 273
            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 270
      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 278
      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    

  private static java.security.KeyStore loadJKSOrPKCS12(java.lang.String, java.lang.String, java.util.function.Supplier<io.vertx.core.buffer.Buffer>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/security/KeyStore;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.lang.String type
        start local 1 // java.lang.String password
        start local 2 // java.util.function.Supplier value
         0: .line 282
            aload 0 /* type */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 3 /* ks */
        start local 3 // java.security.KeyStore ks
         1: .line 283
            aconst_null
            astore 4 /* in */
        start local 4 // java.io.InputStream in
         2: .line 285
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* 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 4 /* in */
         3: .line 286
            aload 3 /* ks */
            aload 4 /* in */
            aload 1 /* password */
            ifnull 4
            aload 1 /* password */
            invokevirtual java.lang.String.toCharArray:()[C
            goto 5
      StackMap locals: java.lang.String java.lang.String java.util.function.Supplier java.security.KeyStore java.io.InputStream
      StackMap stack: java.security.KeyStore java.io.InputStream
         4: aconst_null
      StackMap locals: java.lang.String java.lang.String java.util.function.Supplier java.security.KeyStore java.io.InputStream
      StackMap stack: java.security.KeyStore java.io.InputStream char[]
         5: invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         6: .line 287
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 5
         8: .line 288
            aload 4 /* in */
            ifnull 12
         9: .line 290
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        10: .line 291
            goto 12
      StackMap locals: java.lang.String java.lang.String java.util.function.Supplier java.security.KeyStore java.io.InputStream java.lang.Throwable
      StackMap stack: java.io.IOException
        11: pop
        12: .line 294
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        13: .line 288
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            ifnull 17
        14: .line 290
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        15: .line 291
            goto 17
      StackMap locals:
      StackMap stack: java.io.IOException
        16: pop
        17: .line 295
      StackMap locals:
      StackMap stack:
            aload 3 /* ks */
            areturn
        end local 4 // java.io.InputStream in
        end local 3 // java.security.KeyStore ks
        end local 2 // java.util.function.Supplier value
        end local 1 // java.lang.String password
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      type  Ljava/lang/String;
            0   18     1  password  Ljava/lang/String;
            0   18     2     value  Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;
            1   18     3        ks  Ljava/security/KeyStore;
            2   18     4        in  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           2     7       7  any
           9    10      11  Class java.io.IOException
          14    15      16  Class java.io.IOException
    Exceptions:
      throws java.lang.Exception
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier<Lio/vertx/core/buffer/Buffer;>;)Ljava/security/KeyStore;
    MethodParameters:
          Name  Flags
      type      
      password  
      value     

  private 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: (0x000a) ACC_PRIVATE, 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 299
            aload 0 /* keyValue */
            invokeinterface java.util.List.size:()I
            aload 1 /* certValue */
            invokeinterface java.util.List.size:()I
            if_icmpge 2
         1: .line 300
            new io.vertx.core.VertxException
            dup
            ldc "Missing private key"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 301
      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 302
            new io.vertx.core.VertxException
            dup
            ldc "Missing X.509 certificate"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 304
      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 305
            aload 0 /* keyValue */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* keyValueIt */
        start local 3 // java.util.Iterator keyValueIt
         6: .line 306
            aload 1 /* certValue */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* certValueIt */
        start local 4 // java.util.Iterator certValueIt
         7: .line 307
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         8: .line 308
            goto 12
         9: .line 309
      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 310
            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 311
            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 308
      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 313
      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 317
            aload 0 /* keyValue */
            ifnonnull 2
         1: .line 318
            new java.lang.RuntimeException
            dup
            ldc "Missing private key path"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 320
      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 321
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.getECKeyFactory:()Ljava/security/KeyFactory;
            astore 2 /* ecKeyFactory */
        start local 2 // java.security.KeyFactory ecKeyFactory
         4: .line 322
            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$7(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 344
            aload 3 /* pems */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         6: .line 345
            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 347
      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 352
            ldc "EC"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
         1: areturn
         2: .line 353
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            pop
         3: .line 355
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.NoSuchAlgorithmException

  private static java.security.KeyStore loadCA(java.util.stream.Stream<io.vertx.core.buffer.Buffer>);
    descriptor: (Ljava/util/stream/Stream;)Ljava/security/KeyStore;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // java.util.stream.Stream certValues
         0: .line 360
            invokestatic io.vertx.core.net.impl.KeyStoreHelper.createEmptyKeyStore:()Ljava/security/KeyStore;
            astore 1 /* keyStore */
        start local 1 // java.security.KeyStore keyStore
         1: .line 361
            aload 1 /* keyStore */
            aconst_null
            aconst_null
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         2: .line 362
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         3: .line 363
            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 364
            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 365
            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 366
            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 365
            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 364
      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 369
            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 373
            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 374
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* pems */
        start local 3 // java.util.List pems
         2: .line 375
            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 376
            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 378
      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 379
            iload 6 /* begin */
            ifne 7
         6: .line 380
            goto 21
         7: .line 382
      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 383
            aload 5 /* endMatcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            istore 8 /* end */
        start local 8 // boolean end
         9: .line 384
            iload 8 /* end */
            ifne 11
        10: .line 385
            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 387
      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 388
            aload 7 /* beginDelimiter */
            aload 9 /* endDelimiter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
        13: .line 389
            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 391
      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 392
            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 393
            aload 10 /* content */
            invokevirtual java.lang.String.length:()I
            ifne 18
        17: .line 394
            new java.lang.RuntimeException
            dup
            ldc "Empty pem file"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 396
      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 397
            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 377
            goto 4
        21: .line 401
      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 405
            aload 0 /* buffer */
            ifnonnull 2
         1: .line 406
            new java.lang.RuntimeException
            dup
            ldc "Missing X.509 certificate path"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 408
      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 409
            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$9(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 421
            aload 2 /* certs */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 6
         5: .line 422
            new java.lang.RuntimeException
            dup
            ldc "Missing -----BEGIN CERTIFICATE----- delimiter"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 424
      StackMap locals: java.security.cert.CertificateFactory java.util.List
      StackMap stack:
            aload 2 /* certs */
            aload 2 /* certs */
            invokeinterface java.util.List.size:()I
            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 445
            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 447
            aload 0 /* keyStore */
            aconst_null
            aconst_null
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         2: .line 448
            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 451
            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 453
      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 io.vertx.core.buffer.Buffer lambda$0(io.vertx.core.impl.VertxInternal, io.vertx.core.net.JksOptions);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/JksOptions;)Lio/vertx/core/buffer/Buffer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
         0: .line 78
            aload 0
            invokeinterface io.vertx.core.impl.VertxInternal.fileSystem:()Lio/vertx/core/file/FileSystem;
            aload 0
            aload 1
            invokevirtual io.vertx.core.net.JksOptions.getPath:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.VertxInternal.resolveFile:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokeinterface io.vertx.core.file.FileSystem.readFileBlocking:(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static io.vertx.core.buffer.Buffer lambda$2(io.vertx.core.impl.VertxInternal, io.vertx.core.net.PfxOptions);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/PfxOptions;)Lio/vertx/core/buffer/Buffer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
         0: .line 89
            aload 0
            invokeinterface io.vertx.core.impl.VertxInternal.fileSystem:()Lio/vertx/core/file/FileSystem;
            aload 0
            aload 1
            invokevirtual io.vertx.core.net.PfxOptions.getPath:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.VertxInternal.resolveFile:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokeinterface io.vertx.core.file.FileSystem.readFileBlocking:(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String lambda$4(io.vertx.core.impl.VertxInternal, java.lang.String);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String path
         0: .line 122
            aload 0
            aload 1 /* path */
            invokeinterface io.vertx.core.impl.VertxInternal.resolveFile:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  path  Ljava/lang/String;

  private static java.security.cert.X509Certificate lambda$6(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 172
            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$7(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 324
            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 326
      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 330
      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 331
            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 332
            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 333
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1
            ifnull 13
        10: .line 334
            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 335
            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 338
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
        14: areturn
        15: .line 340
      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 341
            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$9(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 411
            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 413
      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 415
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         5: areturn
         6: .line 417
      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 418
            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