public abstract class org.postgresql.ssl.DbKeyStoreSocketFactory extends org.postgresql.ssl.WrappedFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.postgresql.ssl.DbKeyStoreSocketFactory
  super_class: org.postgresql.ssl.WrappedFactory
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.postgresql.ssl.DbKeyStoreSocketFactory this
         0: .line 23
            aload 0 /* this */
            invokespecial org.postgresql.ssl.WrappedFactory.<init>:()V
         1: .line 27
            ldc "JKS"
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 1 /* keys */
        start local 1 // java.security.KeyStore keys
         2: .line 28
            aload 0 /* this */
            invokevirtual org.postgresql.ssl.DbKeyStoreSocketFactory.getKeyStorePassword:()[C
            astore 2 /* password */
        start local 2 // char[] password
         3: .line 29
            aload 1 /* keys */
            aload 0 /* this */
            invokevirtual org.postgresql.ssl.DbKeyStoreSocketFactory.getKeyStoreStream:()Ljava/io/InputStream;
            aload 2 /* password */
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         4: .line 30
            goto 11
        end local 2 // char[] password
        end local 1 // java.security.KeyStore keys
      StackMap locals: org.postgresql.ssl.DbKeyStoreSocketFactory
      StackMap stack: java.security.GeneralSecurityException
         5: astore 3 /* gse */
        start local 3 // java.security.GeneralSecurityException gse
         6: .line 31
            new org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to load keystore: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* gse */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.security.GeneralSecurityException gse
         7: .line 32
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
            astore 3 /* fnfe */
        start local 3 // java.io.FileNotFoundException fnfe
         8: .line 33
            new org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to find keystore file."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* fnfe */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.FileNotFoundException fnfe
         9: .line 34
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        10: .line 35
            new org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to read keystore file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* ioe */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException ioe
        start local 1 // java.security.KeyStore keys
        start local 2 // char[] password
        11: .line 39
      StackMap locals: java.security.KeyStore char[]
      StackMap stack:
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokestatic javax.net.ssl.KeyManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;
        12: .line 38
            astore 3 /* keyfact */
        start local 3 // javax.net.ssl.KeyManagerFactory keyfact
        13: .line 40
            aload 3 /* keyfact */
            aload 1 /* keys */
            aload 2 /* password */
            invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
        14: .line 43
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
        15: .line 42
            astore 4 /* trustfact */
        start local 4 // javax.net.ssl.TrustManagerFactory trustfact
        16: .line 44
            aload 4 /* trustfact */
            aload 1 /* keys */
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
        17: .line 46
            ldc "SSL"
            invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
            astore 5 /* ctx */
        start local 5 // javax.net.ssl.SSLContext ctx
        18: .line 47
            aload 5 /* ctx */
            aload 3 /* keyfact */
            invokevirtual javax.net.ssl.KeyManagerFactory.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
            aload 4 /* trustfact */
            invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            aconst_null
            invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
        19: .line 48
            aload 0 /* this */
            aload 5 /* ctx */
            invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
            putfield org.postgresql.ssl.DbKeyStoreSocketFactory.factory:Ljavax/net/ssl/SSLSocketFactory;
        end local 5 // javax.net.ssl.SSLContext ctx
        end local 4 // javax.net.ssl.TrustManagerFactory trustfact
        end local 3 // javax.net.ssl.KeyManagerFactory keyfact
        20: .line 49
            goto 25
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        21: astore 3 /* gse */
        start local 3 // java.security.GeneralSecurityException gse
        22: .line 50
            new org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException
            dup
        23: .line 51
            new java.lang.StringBuilder
            dup
            ldc "Failed to set up database socket factory: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* gse */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 50
            invokespecial org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.security.GeneralSecurityException gse
        25: .line 53
      StackMap locals:
      StackMap stack:
            return
        end local 2 // char[] password
        end local 1 // java.security.KeyStore keys
        end local 0 // org.postgresql.ssl.DbKeyStoreSocketFactory this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0       this  Lorg/postgresql/ssl/DbKeyStoreSocketFactory;
            2    5     1       keys  Ljava/security/KeyStore;
           11   26     1       keys  Ljava/security/KeyStore;
            3    5     2   password  [C
           11   26     2   password  [C
            6    7     3        gse  Ljava/security/GeneralSecurityException;
            8    9     3       fnfe  Ljava/io/FileNotFoundException;
           10   11     3        ioe  Ljava/io/IOException;
           13   20     3    keyfact  Ljavax/net/ssl/KeyManagerFactory;
           16   20     4  trustfact  Ljavax/net/ssl/TrustManagerFactory;
           18   20     5        ctx  Ljavax/net/ssl/SSLContext;
           22   25     3        gse  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           1     4       5  Class java.security.GeneralSecurityException
           1     4       7  Class java.io.FileNotFoundException
           1     4       9  Class java.io.IOException
          11    20      21  Class java.security.GeneralSecurityException
    Exceptions:
      throws org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException

  public abstract char[] getKeyStorePassword();
    descriptor: ()[C
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.io.InputStream getKeyStoreStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
}
SourceFile: "DbKeyStoreSocketFactory.java"
NestMembers:
  org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException
InnerClasses:
  public DbKeyStoreSocketException = org.postgresql.ssl.DbKeyStoreSocketFactory$DbKeyStoreSocketException of org.postgresql.ssl.DbKeyStoreSocketFactory