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