public class org.postgresql.ssl.MakeSSL extends org.postgresql.util.ObjectFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.postgresql.ssl.MakeSSL
  super_class: org.postgresql.util.ObjectFactory
{
  private static final java.util.logging.Logger LOGGER;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 27
            ldc Lorg/postgresql/ssl/MakeSSL;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic org.postgresql.ssl.MakeSSL.LOGGER:Ljava/util/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.postgresql.ssl.MakeSSL this
         0: .line 25
            aload 0 /* this */
            invokespecial org.postgresql.util.ObjectFactory.<init>:()V
            return
        end local 0 // org.postgresql.ssl.MakeSSL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/postgresql/ssl/MakeSSL;

  public static void convert(org.postgresql.core.PGStream, java.util.Properties);
    descriptor: (Lorg/postgresql/core/PGStream;Ljava/util/Properties;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.postgresql.core.PGStream stream
        start local 1 // java.util.Properties info
         0: .line 31
            getstatic org.postgresql.ssl.MakeSSL.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "converting regular socket connection to ssl"
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 33
            aload 1 /* info */
            invokestatic org.postgresql.core.SocketFactoryFactory.getSslSocketFactory:(Ljava/util/Properties;)Ljavax/net/ssl/SSLSocketFactory;
            astore 2 /* factory */
        start local 2 // javax.net.ssl.SSLSocketFactory factory
         2: .line 36
            aload 2 /* factory */
            aload 0 /* stream */
            invokevirtual org.postgresql.core.PGStream.getSocket:()Ljava/net/Socket;
         3: .line 37
            aload 0 /* stream */
            invokevirtual org.postgresql.core.PGStream.getHostSpec:()Lorg/postgresql/util/HostSpec;
            invokevirtual org.postgresql.util.HostSpec.getHost:()Ljava/lang/String;
            aload 0 /* stream */
            invokevirtual org.postgresql.core.PGStream.getHostSpec:()Lorg/postgresql/util/HostSpec;
            invokevirtual org.postgresql.util.HostSpec.getPort:()I
            iconst_1
         4: .line 36
            invokevirtual javax.net.ssl.SSLSocketFactory.createSocket:(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;
            checkcast javax.net.ssl.SSLSocket
            astore 3 /* newConnection */
        start local 3 // javax.net.ssl.SSLSocket newConnection
         5: .line 39
            aload 3 /* newConnection */
            iconst_1
            invokevirtual javax.net.ssl.SSLSocket.setUseClientMode:(Z)V
         6: .line 40
            aload 3 /* newConnection */
            invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
         7: .line 41
            goto 12
        end local 3 // javax.net.ssl.SSLSocket newConnection
      StackMap locals: org.postgresql.core.PGStream java.util.Properties javax.net.ssl.SSLSocketFactory
      StackMap stack: java.io.IOException
         8: astore 4 /* ex */
        start local 4 // java.io.IOException ex
         9: .line 42
            new org.postgresql.util.PSQLException
            dup
            ldc "SSL error: {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* ex */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aastore
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        10: .line 43
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 4 /* ex */
        11: .line 42
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException ex
        start local 3 // javax.net.ssl.SSLSocket newConnection
        12: .line 45
      StackMap locals: javax.net.ssl.SSLSocket
      StackMap stack:
            aload 2 /* factory */
            instanceof org.postgresql.ssl.LibPQFactory
            ifeq 14
        13: .line 46
            aload 2 /* factory */
            checkcast org.postgresql.ssl.LibPQFactory
            invokevirtual org.postgresql.ssl.LibPQFactory.throwKeyManagerException:()V
        14: .line 49
      StackMap locals:
      StackMap stack:
            aload 1 /* info */
            invokestatic org.postgresql.jdbc.SslMode.of:(Ljava/util/Properties;)Lorg/postgresql/jdbc/SslMode;
            astore 4 /* sslMode */
        start local 4 // org.postgresql.jdbc.SslMode sslMode
        15: .line 50
            aload 4 /* sslMode */
            invokevirtual org.postgresql.jdbc.SslMode.verifyPeerName:()Z
            ifeq 17
        16: .line 51
            aload 0 /* stream */
            aload 1 /* info */
            aload 3 /* newConnection */
            invokestatic org.postgresql.ssl.MakeSSL.verifyPeerName:(Lorg/postgresql/core/PGStream;Ljava/util/Properties;Ljavax/net/ssl/SSLSocket;)V
        17: .line 54
      StackMap locals: org.postgresql.jdbc.SslMode
      StackMap stack:
            aload 0 /* stream */
            aload 3 /* newConnection */
            invokevirtual org.postgresql.core.PGStream.changeSocket:(Ljava/net/Socket;)V
        18: .line 55
            return
        end local 4 // org.postgresql.jdbc.SslMode sslMode
        end local 3 // javax.net.ssl.SSLSocket newConnection
        end local 2 // javax.net.ssl.SSLSocketFactory factory
        end local 1 // java.util.Properties info
        end local 0 // org.postgresql.core.PGStream stream
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0         stream  Lorg/postgresql/core/PGStream;
            0   19     1           info  Ljava/util/Properties;
            2   19     2        factory  Ljavax/net/ssl/SSLSocketFactory;
            5    8     3  newConnection  Ljavax/net/ssl/SSLSocket;
           12   19     3  newConnection  Ljavax/net/ssl/SSLSocket;
            9   12     4             ex  Ljava/io/IOException;
           15   19     4        sslMode  Lorg/postgresql/jdbc/SslMode;
      Exception table:
        from    to  target  type
           2     7       8  Class java.io.IOException
    Exceptions:
      throws org.postgresql.util.PSQLException, java.io.IOException
    MethodParameters:
        Name  Flags
      stream  
      info    

  private static void verifyPeerName(org.postgresql.core.PGStream, java.util.Properties, javax.net.ssl.SSLSocket);
    descriptor: (Lorg/postgresql/core/PGStream;Ljava/util/Properties;Ljavax/net/ssl/SSLSocket;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.postgresql.core.PGStream stream
        start local 1 // java.util.Properties info
        start local 2 // javax.net.ssl.SSLSocket newConnection
         0: .line 60
            getstatic org.postgresql.PGProperty.SSL_HOSTNAME_VERIFIER:Lorg/postgresql/PGProperty;
            aload 1 /* info */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            astore 4 /* sslhostnameverifier */
        start local 4 // java.lang.String sslhostnameverifier
         1: .line 61
            aload 4 /* sslhostnameverifier */
            ifnonnull 5
         2: .line 62
            getstatic org.postgresql.ssl.PGjdbcHostnameVerifier.INSTANCE:Lorg/postgresql/ssl/PGjdbcHostnameVerifier;
            astore 3 /* hvn */
        start local 3 // javax.net.ssl.HostnameVerifier hvn
         3: .line 63
            ldc "PgjdbcHostnameVerifier"
            astore 4 /* sslhostnameverifier */
         4: .line 64
            goto 14
        end local 3 // javax.net.ssl.HostnameVerifier hvn
         5: .line 66
      StackMap locals: org.postgresql.core.PGStream java.util.Properties javax.net.ssl.SSLSocket top java.lang.String
      StackMap stack:
            aload 4 /* sslhostnameverifier */
            aload 1 /* info */
            iconst_0
            aconst_null
            invokestatic org.postgresql.ssl.MakeSSL.instantiate:(Ljava/lang/String;Ljava/util/Properties;ZLjava/lang/String;)Ljava/lang/Object;
            checkcast javax.net.ssl.HostnameVerifier
            astore 3 /* hvn */
        start local 3 // javax.net.ssl.HostnameVerifier hvn
         6: .line 67
            goto 14
        end local 3 // javax.net.ssl.HostnameVerifier hvn
      StackMap locals:
      StackMap stack: java.lang.Exception
         7: astore 5 /* e */
        start local 5 // java.lang.Exception e
         8: .line 68
            new org.postgresql.util.PSQLException
            dup
         9: .line 69
            ldc "The HostnameVerifier class provided {0} could not be instantiated."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 70
            aload 4 /* sslhostnameverifier */
            aastore
        11: .line 69
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        12: .line 71
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
            aload 5 /* e */
        13: .line 68
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception e
        start local 3 // javax.net.ssl.HostnameVerifier hvn
        14: .line 75
      StackMap locals: org.postgresql.core.PGStream java.util.Properties javax.net.ssl.SSLSocket javax.net.ssl.HostnameVerifier java.lang.String
      StackMap stack:
            aload 3 /* hvn */
            aload 0 /* stream */
            invokevirtual org.postgresql.core.PGStream.getHostSpec:()Lorg/postgresql/util/HostSpec;
            invokevirtual org.postgresql.util.HostSpec.getHost:()Ljava/lang/String;
            aload 2 /* newConnection */
            invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.HostnameVerifier.verify:(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
            ifeq 16
        15: .line 76
            return
        16: .line 79
      StackMap locals:
      StackMap stack:
            new org.postgresql.util.PSQLException
            dup
        17: .line 80
            ldc "The hostname {0} could not be verified by hostnameverifier {1}."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 81
            aload 0 /* stream */
            invokevirtual org.postgresql.core.PGStream.getHostSpec:()Lorg/postgresql/util/HostSpec;
            invokevirtual org.postgresql.util.HostSpec.getHost:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 4 /* sslhostnameverifier */
            aastore
        19: .line 80
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        20: .line 82
            getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
        21: .line 79
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;)V
            athrow
        end local 4 // java.lang.String sslhostnameverifier
        end local 3 // javax.net.ssl.HostnameVerifier hvn
        end local 2 // javax.net.ssl.SSLSocket newConnection
        end local 1 // java.util.Properties info
        end local 0 // org.postgresql.core.PGStream stream
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0               stream  Lorg/postgresql/core/PGStream;
            0   22     1                 info  Ljava/util/Properties;
            0   22     2        newConnection  Ljavax/net/ssl/SSLSocket;
            3    5     3                  hvn  Ljavax/net/ssl/HostnameVerifier;
            6    7     3                  hvn  Ljavax/net/ssl/HostnameVerifier;
           14   22     3                  hvn  Ljavax/net/ssl/HostnameVerifier;
            1   22     4  sslhostnameverifier  Ljava/lang/String;
            8   14     5                    e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
    Exceptions:
      throws org.postgresql.util.PSQLException
    MethodParameters:
               Name  Flags
      stream         
      info           
      newConnection  
}
SourceFile: "MakeSSL.java"