public class org.postgresql.ssl.LibPQFactory extends org.postgresql.ssl.WrappedFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.postgresql.ssl.LibPQFactory
  super_class: org.postgresql.ssl.WrappedFactory
{
  org.postgresql.ssl.LazyKeyManager km;
    descriptor: Lorg/postgresql/ssl/LazyKeyManager;
    flags: (0x0000) 

  public void <init>(java.util.Properties);
    descriptor: (Ljava/util/Properties;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=20, args_size=2
        start local 0 // org.postgresql.ssl.LibPQFactory this
        start local 1 // java.util.Properties info
         0: .line 49
            aload 0 /* this */
            invokespecial org.postgresql.ssl.WrappedFactory.<init>:()V
         1: .line 51
            ldc "TLS"
            invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
            astore 2 /* ctx */
        start local 2 // javax.net.ssl.SSLContext ctx
         2: .line 54
            ldc "file.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* pathsep */
        start local 3 // java.lang.String pathsep
         3: .line 56
            iconst_0
            istore 5 /* defaultfile */
        start local 5 // boolean defaultfile
         4: .line 57
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc "windows"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 7
         5: .line 58
            new java.lang.StringBuilder
            dup
            ldc "APPDATA"
            invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* pathsep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "postgresql"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* pathsep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* defaultdir */
        start local 4 // java.lang.String defaultdir
         6: .line 59
            goto 8
        end local 4 // java.lang.String defaultdir
         7: .line 60
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String top int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "user.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* pathsep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".postgresql"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* pathsep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* defaultdir */
        start local 4 // java.lang.String defaultdir
         8: .line 64
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int
      StackMap stack:
            getstatic org.postgresql.PGProperty.SSL_CERT:Lorg/postgresql/PGProperty;
            aload 1 /* info */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            astore 6 /* sslcertfile */
        start local 6 // java.lang.String sslcertfile
         9: .line 65
            aload 6 /* sslcertfile */
            ifnonnull 12
        10: .line 66
            iconst_1
            istore 5 /* defaultfile */
        11: .line 67
            new java.lang.StringBuilder
            dup
            aload 4 /* defaultdir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "postgresql.crt"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* sslcertfile */
        12: .line 69
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.postgresql.PGProperty.SSL_KEY:Lorg/postgresql/PGProperty;
            aload 1 /* info */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            astore 7 /* sslkeyfile */
        start local 7 // java.lang.String sslkeyfile
        13: .line 70
            aload 7 /* sslkeyfile */
            ifnonnull 16
        14: .line 71
            iconst_1
            istore 5 /* defaultfile */
        15: .line 72
            new java.lang.StringBuilder
            dup
            aload 4 /* defaultdir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "postgresql.pk8"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* sslkeyfile */
        16: .line 77
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.postgresql.PGProperty.SSL_PASSWORD_CALLBACK:Lorg/postgresql/PGProperty;
            aload 1 /* info */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            astore 9 /* sslpasswordcallback */
        start local 9 // java.lang.String sslpasswordcallback
        17: .line 78
            aload 9 /* sslpasswordcallback */
            ifnull 27
        18: .line 80
            aload 9 /* sslpasswordcallback */
            aload 1 /* info */
            iconst_0
            aconst_null
            invokestatic org.postgresql.util.ObjectFactory.instantiate:(Ljava/lang/String;Ljava/util/Properties;ZLjava/lang/String;)Ljava/lang/Object;
            checkcast javax.security.auth.callback.CallbackHandler
            astore 8 /* cbh */
        start local 8 // javax.security.auth.callback.CallbackHandler cbh
        19: .line 81
            goto 28
        end local 8 // javax.security.auth.callback.CallbackHandler cbh
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String top java.lang.String
      StackMap stack: java.lang.Exception
        20: astore 10 /* e */
        start local 10 // java.lang.Exception e
        21: .line 82
            new org.postgresql.util.PSQLException
            dup
        22: .line 83
            ldc "The password callback class provided {0} could not be instantiated."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        23: .line 84
            aload 9 /* sslpasswordcallback */
            aastore
        24: .line 83
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        25: .line 85
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 10 /* e */
        26: .line 82
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.lang.Exception e
        27: .line 88
      StackMap locals:
      StackMap stack:
            new org.postgresql.ssl.LibPQFactory$ConsoleCallbackHandler
            dup
            getstatic org.postgresql.PGProperty.SSL_PASSWORD:Lorg/postgresql/PGProperty;
            aload 1 /* info */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            invokespecial org.postgresql.ssl.LibPQFactory$ConsoleCallbackHandler.<init>:(Ljava/lang/String;)V
            astore 8 /* cbh */
        start local 8 // javax.security.auth.callback.CallbackHandler cbh
        28: .line 92
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String
      StackMap stack:
            aload 0 /* this */
        29: new org.postgresql.ssl.LazyKeyManager
            dup
            ldc ""
            aload 6 /* sslcertfile */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 30
            aconst_null
            goto 31
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String
      StackMap stack: org.postgresql.ssl.LibPQFactory new 29 new 29
        30: aload 6 /* sslcertfile */
        31: .line 93
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String
      StackMap stack: org.postgresql.ssl.LibPQFactory new 29 new 29 java.lang.String
            ldc ""
            aload 7 /* sslkeyfile */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
            aconst_null
            goto 33
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String
      StackMap stack: org.postgresql.ssl.LibPQFactory new 29 new 29 java.lang.String
        32: aload 7 /* sslkeyfile */
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String
      StackMap stack: org.postgresql.ssl.LibPQFactory new 29 new 29 java.lang.String java.lang.String
        33: aload 8 /* cbh */
            iload 5 /* defaultfile */
            invokespecial org.postgresql.ssl.LazyKeyManager.<init>:(Ljava/lang/String;Ljava/lang/String;Ljavax/security/auth/callback/CallbackHandler;Z)V
        34: .line 92
            putfield org.postgresql.ssl.LibPQFactory.km:Lorg/postgresql/ssl/LazyKeyManager;
        35: .line 96
            aload 1 /* info */
            invokestatic org.postgresql.jdbc.SslMode.of:(Ljava/util/Properties;)Lorg/postgresql/jdbc/SslMode;
            astore 11 /* sslMode */
        start local 11 // org.postgresql.jdbc.SslMode sslMode
        36: .line 97
            aload 11 /* sslMode */
            invokevirtual org.postgresql.jdbc.SslMode.verifyCertificate:()Z
            ifne 39
        37: .line 99
            iconst_1
            anewarray javax.net.ssl.TrustManager
            dup
            iconst_0
            new org.postgresql.ssl.NonValidatingFactory$NonValidatingTM
            dup
            invokespecial org.postgresql.ssl.NonValidatingFactory$NonValidatingTM.<init>:()V
            aastore
            astore 10 /* tm */
        start local 10 // javax.net.ssl.TrustManager[] tm
        38: .line 100
            goto 85
        end local 10 // javax.net.ssl.TrustManager[] tm
        39: .line 103
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String top org.postgresql.jdbc.SslMode
      StackMap stack:
            ldc "PKIX"
            invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
            astore 12 /* tmf */
        start local 12 // javax.net.ssl.TrustManagerFactory tmf
        40: .line 106
            ldc "jks"
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 13 /* ks */
        start local 13 // java.security.KeyStore ks
        41: .line 107
            goto 44
        end local 13 // java.security.KeyStore ks
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String top org.postgresql.jdbc.SslMode javax.net.ssl.TrustManagerFactory
      StackMap stack: java.security.KeyStoreException
        42: pop
        43: .line 109
            new java.security.NoSuchAlgorithmException
            dup
            ldc "jks KeyStore not available"
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        start local 13 // java.security.KeyStore ks
        44: .line 111
      StackMap locals: java.security.KeyStore
      StackMap stack:
            getstatic org.postgresql.PGProperty.SSL_ROOT_CERT:Lorg/postgresql/PGProperty;
            aload 1 /* info */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            astore 14 /* sslrootcertfile */
        start local 14 // java.lang.String sslrootcertfile
        45: .line 112
            aload 14 /* sslrootcertfile */
            ifnonnull 47
        46: .line 113
            new java.lang.StringBuilder
            dup
            aload 4 /* defaultdir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "root.crt"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* sslrootcertfile */
        47: .line 117
      StackMap locals: java.lang.String
      StackMap stack:
            new java.io.FileInputStream
            dup
            aload 14 /* sslrootcertfile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 15 /* fis */
        start local 15 // java.io.FileInputStream fis
        48: .line 118
            goto 54
        end local 15 // java.io.FileInputStream fis
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
        49: astore 16 /* ex */
        start local 16 // java.io.FileNotFoundException ex
        50: .line 119
            new org.postgresql.util.PSQLException
            dup
        51: .line 120
            ldc "Could not open SSL root certificate file {0}."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* sslrootcertfile */
            aastore
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        52: .line 121
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 16 /* ex */
        53: .line 119
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 16 // java.io.FileNotFoundException ex
        start local 15 // java.io.FileInputStream fis
        54: .line 124
      StackMap locals: java.io.FileInputStream
      StackMap stack:
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 16 /* cf */
        start local 16 // java.security.cert.CertificateFactory cf
        55: .line 127
            aload 16 /* cf */
            aload 15 /* fis */
            invokevirtual java.security.cert.CertificateFactory.generateCertificates:(Ljava/io/InputStream;)Ljava/util/Collection;
            iconst_0
            anewarray java.security.cert.Certificate
            invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            astore 17 /* certs */
        start local 17 // java.lang.Object[] certs
        56: .line 128
            aload 13 /* ks */
            aconst_null
            aconst_null
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        57: .line 129
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        58: goto 61
        59: .line 130
      StackMap locals: java.security.cert.CertificateFactory java.lang.Object[] int
      StackMap stack:
            aload 13 /* ks */
            new java.lang.StringBuilder
            dup
            ldc "cert"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 18 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 17 /* certs */
            iload 18 /* i */
            aaload
            checkcast java.security.cert.Certificate
            invokevirtual java.security.KeyStore.setCertificateEntry:(Ljava/lang/String;Ljava/security/cert/Certificate;)V
        60: .line 129
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        61: iload 18 /* i */
            aload 17 /* certs */
            arraylength
            if_icmplt 59
        end local 18 // int i
        62: .line 132
            aload 12 /* tmf */
            aload 13 /* ks */
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
        end local 17 // java.lang.Object[] certs
        end local 16 // java.security.cert.CertificateFactory cf
        63: .line 133
            goto 81
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String top org.postgresql.jdbc.SslMode javax.net.ssl.TrustManagerFactory java.security.KeyStore java.lang.String java.io.FileInputStream
      StackMap stack: java.io.IOException
        64: astore 16 /* ioex */
        start local 16 // java.io.IOException ioex
        65: .line 134
            new org.postgresql.util.PSQLException
            dup
        66: .line 135
            ldc "Could not read SSL root certificate file {0}."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* sslrootcertfile */
            aastore
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        67: .line 136
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 16 /* ioex */
        68: .line 134
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 16 // java.io.IOException ioex
        69: .line 137
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 16 /* gsex */
        start local 16 // java.security.GeneralSecurityException gsex
        70: .line 138
            new org.postgresql.util.PSQLException
            dup
        71: .line 139
            ldc "Loading the SSL root certificate {0} into a TrustManager failed."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        72: .line 140
            aload 14 /* sslrootcertfile */
            aastore
        73: .line 139
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        74: .line 141
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 16 /* gsex */
        75: .line 138
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 16 // java.security.GeneralSecurityException gsex
        76: .line 142
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 19
        77: .line 144
            aload 15 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        78: .line 145
            goto 80
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String top org.postgresql.jdbc.SslMode javax.net.ssl.TrustManagerFactory java.security.KeyStore java.lang.String java.io.FileInputStream top top top java.lang.Throwable
      StackMap stack: java.io.IOException
        79: pop
        80: .line 148
      StackMap locals:
      StackMap stack:
            aload 19
            athrow
        81: .line 144
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String top org.postgresql.jdbc.SslMode javax.net.ssl.TrustManagerFactory java.security.KeyStore java.lang.String java.io.FileInputStream
      StackMap stack:
            aload 15 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        82: .line 145
            goto 84
      StackMap locals:
      StackMap stack: java.io.IOException
        83: pop
        84: .line 149
      StackMap locals:
      StackMap stack:
            aload 12 /* tmf */
            invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            astore 10 /* tm */
        end local 15 // java.io.FileInputStream fis
        end local 14 // java.lang.String sslrootcertfile
        end local 13 // java.security.KeyStore ks
        end local 12 // javax.net.ssl.TrustManagerFactory tmf
        start local 10 // javax.net.ssl.TrustManager[] tm
        85: .line 154
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties javax.net.ssl.SSLContext java.lang.String java.lang.String int java.lang.String java.lang.String javax.security.auth.callback.CallbackHandler java.lang.String javax.net.ssl.TrustManager[] org.postgresql.jdbc.SslMode
      StackMap stack:
            aload 2 /* ctx */
            iconst_1
            anewarray javax.net.ssl.KeyManager
            dup
            iconst_0
            aload 0 /* this */
            getfield org.postgresql.ssl.LibPQFactory.km:Lorg/postgresql/ssl/LazyKeyManager;
            aastore
            aload 10 /* tm */
            aconst_null
            invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
        86: .line 155
            goto 91
      StackMap locals:
      StackMap stack: java.security.KeyManagementException
        87: astore 12 /* ex */
        start local 12 // java.security.KeyManagementException ex
        88: .line 156
            new org.postgresql.util.PSQLException
            dup
            ldc "Could not initialize SSL context."
            iconst_0
            anewarray java.lang.Object
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        89: .line 157
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 12 /* ex */
        90: .line 156
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 12 // java.security.KeyManagementException ex
        91: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* ctx */
            invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
            putfield org.postgresql.ssl.LibPQFactory.factory:Ljavax/net/ssl/SSLSocketFactory;
        end local 11 // org.postgresql.jdbc.SslMode sslMode
        end local 10 // javax.net.ssl.TrustManager[] tm
        end local 9 // java.lang.String sslpasswordcallback
        end local 8 // javax.security.auth.callback.CallbackHandler cbh
        end local 7 // java.lang.String sslkeyfile
        end local 6 // java.lang.String sslcertfile
        end local 5 // boolean defaultfile
        end local 4 // java.lang.String defaultdir
        end local 3 // java.lang.String pathsep
        end local 2 // javax.net.ssl.SSLContext ctx
        92: .line 161
            goto 99
      StackMap locals: org.postgresql.ssl.LibPQFactory java.util.Properties
      StackMap stack: java.security.NoSuchAlgorithmException
        93: astore 2 /* ex */
        start local 2 // java.security.NoSuchAlgorithmException ex
        94: .line 162
            new org.postgresql.util.PSQLException
            dup
            ldc "Could not find a java cryptographic algorithm: {0}."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        95: .line 163
            aload 2 /* ex */
            invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
            aastore
        96: .line 162
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        97: .line 163
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 2 /* ex */
        98: .line 162
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.NoSuchAlgorithmException ex
        99: .line 165
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Properties info
        end local 0 // org.postgresql.ssl.LibPQFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  100     0                 this  Lorg/postgresql/ssl/LibPQFactory;
            0  100     1                 info  Ljava/util/Properties;
            2   92     2                  ctx  Ljavax/net/ssl/SSLContext;
            3   92     3              pathsep  Ljava/lang/String;
            6    7     4           defaultdir  Ljava/lang/String;
            8   92     4           defaultdir  Ljava/lang/String;
            4   92     5          defaultfile  Z
            9   92     6          sslcertfile  Ljava/lang/String;
           13   92     7           sslkeyfile  Ljava/lang/String;
           19   20     8                  cbh  Ljavax/security/auth/callback/CallbackHandler;
           28   92     8                  cbh  Ljavax/security/auth/callback/CallbackHandler;
           17   92     9  sslpasswordcallback  Ljava/lang/String;
           21   27    10                    e  Ljava/lang/Exception;
           38   39    10                   tm  [Ljavax/net/ssl/TrustManager;
           85   92    10                   tm  [Ljavax/net/ssl/TrustManager;
           36   92    11              sslMode  Lorg/postgresql/jdbc/SslMode;
           40   85    12                  tmf  Ljavax/net/ssl/TrustManagerFactory;
           41   42    13                   ks  Ljava/security/KeyStore;
           44   85    13                   ks  Ljava/security/KeyStore;
           45   85    14      sslrootcertfile  Ljava/lang/String;
           48   49    15                  fis  Ljava/io/FileInputStream;
           54   85    15                  fis  Ljava/io/FileInputStream;
           50   54    16                   ex  Ljava/io/FileNotFoundException;
           55   63    16                   cf  Ljava/security/cert/CertificateFactory;
           56   63    17                certs  [Ljava/lang/Object;
           58   62    18                    i  I
           65   69    16                 ioex  Ljava/io/IOException;
           70   76    16                 gsex  Ljava/security/GeneralSecurityException;
           88   91    12                   ex  Ljava/security/KeyManagementException;
           94   99     2                   ex  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
          18    19      20  Class java.lang.Exception
          40    41      42  Class java.security.KeyStoreException
          47    48      49  Class java.io.FileNotFoundException
          54    63      64  Class java.io.IOException
          54    63      69  Class java.security.GeneralSecurityException
          54    76      76  any
          77    78      79  Class java.io.IOException
          81    82      83  Class java.io.IOException
          85    86      87  Class java.security.KeyManagementException
           1    92      93  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws org.postgresql.util.PSQLException
    MethodParameters:
      Name  Flags
      info  

  public void throwKeyManagerException();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.postgresql.ssl.LibPQFactory this
         0: .line 173
            aload 0 /* this */
            getfield org.postgresql.ssl.LibPQFactory.km:Lorg/postgresql/ssl/LazyKeyManager;
            ifnull 2
         1: .line 174
            aload 0 /* this */
            getfield org.postgresql.ssl.LibPQFactory.km:Lorg/postgresql/ssl/LazyKeyManager;
            invokevirtual org.postgresql.ssl.LazyKeyManager.throwKeyManagerException:()V
         2: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.postgresql.ssl.LibPQFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/postgresql/ssl/LibPQFactory;
    Exceptions:
      throws org.postgresql.util.PSQLException
}
SourceFile: "LibPQFactory.java"
NestMembers:
  org.postgresql.ssl.LibPQFactory$ConsoleCallbackHandler
InnerClasses:
  public ConsoleCallbackHandler = org.postgresql.ssl.LibPQFactory$ConsoleCallbackHandler of org.postgresql.ssl.LibPQFactory
  public NonValidatingTM = org.postgresql.ssl.NonValidatingFactory$NonValidatingTM of org.postgresql.ssl.NonValidatingFactory