public class org.postgresql.ssl.LazyKeyManager implements javax.net.ssl.X509KeyManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.postgresql.ssl.LazyKeyManager
super_class: java.lang.Object
{
private java.security.cert.X509Certificate[] cert;
descriptor: [Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
private java.security.PrivateKey key;
descriptor: Ljava/security/PrivateKey;
flags: (0x0002) ACC_PRIVATE
private java.lang.String certfile;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String keyfile;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.callback.CallbackHandler cbh;
descriptor: Ljavax/security/auth/callback/CallbackHandler;
flags: (0x0002) ACC_PRIVATE
private boolean defaultfile;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.postgresql.util.PSQLException error;
descriptor: Lorg/postgresql/util/PSQLException;
flags: (0x0002) ACC_PRIVATE
public void <init>(java.lang.String, java.lang.String, javax.security.auth.callback.CallbackHandler, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljavax/security/auth/callback/CallbackHandler;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield org.postgresql.ssl.LazyKeyManager.cert:[Ljava/security/cert/X509Certificate;
2: aload 0
aconst_null
putfield org.postgresql.ssl.LazyKeyManager.key:Ljava/security/PrivateKey;
3: aload 0
aconst_null
putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
4: aload 0
aload 1
putfield org.postgresql.ssl.LazyKeyManager.certfile:Ljava/lang/String;
5: aload 0
aload 2
putfield org.postgresql.ssl.LazyKeyManager.keyfile:Ljava/lang/String;
6: aload 0
aload 3
putfield org.postgresql.ssl.LazyKeyManager.cbh:Ljavax/security/auth/callback/CallbackHandler;
7: aload 0
iload 4
putfield org.postgresql.ssl.LazyKeyManager.defaultfile:Z
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/postgresql/ssl/LazyKeyManager;
0 9 1 certfile Ljava/lang/String;
0 9 2 keyfile Ljava/lang/String;
0 9 3 cbh Ljavax/security/auth/callback/CallbackHandler;
0 9 4 defaultfile Z
MethodParameters:
Name Flags
certfile
keyfile
cbh
defaultfile
public void throwKeyManagerException();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
ifnull 2
1: aload 0
getfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/postgresql/ssl/LazyKeyManager;
Exceptions:
throws org.postgresql.util.PSQLException
public java.lang.String chooseClientAlias(java.lang.String[], java.security.Principal[], java.net.Socket);
descriptor: ([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.postgresql.ssl.LazyKeyManager.certfile:Ljava/lang/String;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 2
ifnull 3
aload 2
arraylength
ifne 4
3: StackMap locals:
StackMap stack:
ldc "user"
areturn
4: StackMap locals:
StackMap stack:
aload 0
ldc "user"
invokevirtual org.postgresql.ssl.LazyKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
astore 4
start local 4 5: aload 4
ifnonnull 7
6: aconst_null
areturn
7: StackMap locals: java.security.cert.X509Certificate[]
StackMap stack:
aload 4
aload 4
arraylength
iconst_1
isub
aaload
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 5
start local 5 8: iconst_0
istore 6
start local 6 9: aload 2
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 14
StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String[] java.security.Principal[] java.net.Socket java.security.cert.X509Certificate[] javax.security.auth.x500.X500Principal int top int int java.security.Principal[]
StackMap stack:
10: aload 10
iload 8
aaload
astore 7
start local 7 11: aload 5
aload 7
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 13
12: iconst_1
istore 6
end local 7 13: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
14: iload 8
iload 9
if_icmplt 10
15: iload 6
ifeq 16
ldc "user"
goto 17
StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String[] java.security.Principal[] java.net.Socket java.security.cert.X509Certificate[] javax.security.auth.x500.X500Principal int
StackMap stack:
16: aconst_null
StackMap locals:
StackMap stack: java.lang.String
17: areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/postgresql/ssl/LazyKeyManager;
0 18 1 keyType [Ljava/lang/String;
0 18 2 issuers [Ljava/security/Principal;
0 18 3 socket Ljava/net/Socket;
5 18 4 certchain [Ljava/security/cert/X509Certificate;
8 18 5 ourissuer Ljavax/security/auth/x500/X500Principal;
9 18 6 found Z
11 13 7 issuer Ljava/security/Principal;
MethodParameters:
Name Flags
keyType
issuers
socket
public java.lang.String chooseServerAlias(java.lang.String, java.security.Principal[], java.net.Socket);
descriptor: (Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/postgresql/ssl/LazyKeyManager;
0 1 1 keyType Ljava/lang/String;
0 1 2 issuers [Ljava/security/Principal;
0 1 3 socket Ljava/net/Socket;
MethodParameters:
Name Flags
keyType
issuers
socket
public java.security.cert.X509Certificate[] getCertificateChain(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.postgresql.ssl.LazyKeyManager.cert:[Ljava/security/cert/X509Certificate;
ifnonnull 27
aload 0
getfield org.postgresql.ssl.LazyKeyManager.certfile:Ljava/lang/String;
ifnull 27
1: ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 2
start local 2 2: goto 10
end local 2 StackMap locals:
StackMap stack: java.security.cert.CertificateException
3: astore 3
start local 3 4: aload 0
new org.postgresql.util.PSQLException
dup
5: ldc "Could not find a java cryptographic algorithm: X.509 CertificateFactory not available."
iconst_0
anewarray java.lang.Object
6: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
7: getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
aload 3
invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
8: putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
9: aconst_null
areturn
end local 3 start local 2 10: StackMap locals: java.security.cert.CertificateFactory
StackMap stack:
aload 2
new java.io.FileInputStream
dup
aload 0
getfield org.postgresql.ssl.LazyKeyManager.certfile:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
invokevirtual java.security.cert.CertificateFactory.generateCertificates:(Ljava/io/InputStream;)Ljava/util/Collection;
astore 3
start local 3 11: goto 26
end local 3 StackMap locals:
StackMap stack: java.io.FileNotFoundException
12: astore 4
start local 4 13: aload 0
getfield org.postgresql.ssl.LazyKeyManager.defaultfile:Z
ifne 18
14: aload 0
new org.postgresql.util.PSQLException
dup
15: ldc "Could not open SSL certificate file {0}."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.postgresql.ssl.LazyKeyManager.certfile:Ljava/lang/String;
aastore
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
16: getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
aload 4
invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
17: putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
18: StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String java.security.cert.CertificateFactory top java.io.FileNotFoundException
StackMap stack:
aconst_null
areturn
end local 4 19: StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String java.security.cert.CertificateFactory
StackMap stack: java.security.cert.CertificateException
astore 4
start local 4 20: aload 0
new org.postgresql.util.PSQLException
dup
ldc "Loading the SSL certificate {0} into a KeyManager failed."
iconst_1
anewarray java.lang.Object
dup
iconst_0
21: aload 0
getfield org.postgresql.ssl.LazyKeyManager.certfile:Ljava/lang/String;
aastore
22: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
23: getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
aload 4
invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
24: putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
25: aconst_null
areturn
end local 4 start local 3 26: StackMap locals: java.util.Collection
StackMap stack:
aload 0
aload 3
iconst_0
anewarray java.security.cert.X509Certificate
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
putfield org.postgresql.ssl.LazyKeyManager.cert:[Ljava/security/cert/X509Certificate;
end local 3 end local 2 27: StackMap locals:
StackMap stack:
aload 0
getfield org.postgresql.ssl.LazyKeyManager.cert:[Ljava/security/cert/X509Certificate;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/postgresql/ssl/LazyKeyManager;
0 28 1 alias Ljava/lang/String;
2 3 2 cf Ljava/security/cert/CertificateFactory;
10 27 2 cf Ljava/security/cert/CertificateFactory;
4 10 3 ex Ljava/security/cert/CertificateException;
11 12 3 certs Ljava/util/Collection<+Ljava/security/cert/Certificate;>;
26 27 3 certs Ljava/util/Collection<+Ljava/security/cert/Certificate;>;
13 19 4 ioex Ljava/io/FileNotFoundException;
20 26 4 gsex Ljava/security/cert/CertificateException;
Exception table:
from to target type
1 2 3 Class java.security.cert.CertificateException
10 11 12 Class java.io.FileNotFoundException
10 11 19 Class java.security.cert.CertificateException
MethodParameters:
Name Flags
alias
public java.lang.String[] getClientAliases(java.lang.String, java.security.Principal[]);
descriptor: (Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 1
aastore
aload 2
aconst_null
invokevirtual org.postgresql.ssl.LazyKeyManager.chooseClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 2
iconst_0
anewarray java.lang.String
goto 3
StackMap locals: java.lang.String
StackMap stack:
2: iconst_1
anewarray java.lang.String
dup
iconst_0
aload 3
aastore
StackMap locals:
StackMap stack: java.lang.String[]
3: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/postgresql/ssl/LazyKeyManager;
0 4 1 keyType Ljava/lang/String;
0 4 2 issuers [Ljava/security/Principal;
1 4 3 alias Ljava/lang/String;
MethodParameters:
Name Flags
keyType
issuers
private static byte[] readFileFully(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: new java.io.RandomAccessFile
dup
aload 0
ldc "r"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
invokevirtual java.io.RandomAccessFile.length:()J
l2i
newarray 8
astore 2
start local 2 2: aload 1
aload 2
invokevirtual java.io.RandomAccessFile.readFully:([B)V
3: aload 2
astore 4
4: aload 1
invokevirtual java.io.RandomAccessFile.close:()V
5: aload 4
areturn
end local 2 6: StackMap locals: java.lang.String java.io.RandomAccessFile
StackMap stack: java.lang.Throwable
astore 3
7: aload 1
invokevirtual java.io.RandomAccessFile.close:()V
8: aload 3
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 path Ljava/lang/String;
1 9 1 raf Ljava/io/RandomAccessFile;
2 6 2 ret [B
Exception table:
from to target type
1 4 6 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
public java.security.PrivateKey getPrivateKey(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/PrivateKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield org.postgresql.ssl.LazyKeyManager.key:Ljava/security/PrivateKey;
ifnonnull 67
aload 0
getfield org.postgresql.ssl.LazyKeyManager.keyfile:Ljava/lang/String;
ifnull 67
1: aload 0
getfield org.postgresql.ssl.LazyKeyManager.cert:[Ljava/security/cert/X509Certificate;
ifnonnull 4
2: aload 0
ldc "user"
invokevirtual org.postgresql.ssl.LazyKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.postgresql.ssl.LazyKeyManager.keyfile:Ljava/lang/String;
invokestatic org.postgresql.ssl.LazyKeyManager.readFileFully:(Ljava/lang/String;)[B
astore 2
start local 2 5: goto 10
end local 2 StackMap locals:
StackMap stack: java.io.FileNotFoundException
6: astore 3
start local 3 7: aload 0
getfield org.postgresql.ssl.LazyKeyManager.defaultfile:Z
ifne 9
8: aload 3
athrow
9: StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String top java.io.FileNotFoundException
StackMap stack:
aconst_null
areturn
end local 3 start local 2 10: StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String byte[]
StackMap stack:
aload 0
getfield org.postgresql.ssl.LazyKeyManager.cert:[Ljava/security/cert/X509Certificate;
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 3
start local 3 11: new java.security.spec.PKCS8EncodedKeySpec
dup
aload 2
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
astore 4
start local 4 12: aload 0
aload 3
aload 4
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
putfield org.postgresql.ssl.LazyKeyManager.key:Ljava/security/PrivateKey;
end local 4 13: goto 67
StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String byte[] java.security.KeyFactory
StackMap stack: java.security.spec.InvalidKeySpecException
14: pop
15: new javax.crypto.EncryptedPrivateKeyInfo
dup
aload 2
invokespecial javax.crypto.EncryptedPrivateKeyInfo.<init>:([B)V
astore 4
start local 4 16: aload 4
invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgName:()Ljava/lang/String;
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 5
start local 5 17: goto 20
end local 5 StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String byte[] java.security.KeyFactory javax.crypto.EncryptedPrivateKeyInfo
StackMap stack: javax.crypto.NoSuchPaddingException
18: astore 6
start local 6 19: new java.security.NoSuchAlgorithmException
dup
aload 6
invokevirtual javax.crypto.NoSuchPaddingException.getMessage:()Ljava/lang/String;
aload 6
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 start local 5 20: StackMap locals: javax.crypto.Cipher
StackMap stack:
new javax.security.auth.callback.PasswordCallback
dup
ldc "Enter SSL password: "
iconst_0
anewarray java.lang.Object
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
iconst_0
invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
astore 6
start local 6 21: aload 0
getfield org.postgresql.ssl.LazyKeyManager.cbh:Ljavax/security/auth/callback/CallbackHandler;
iconst_1
anewarray javax.security.auth.callback.Callback
dup
iconst_0
aload 6
aastore
invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
22: goto 40
StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String byte[] java.security.KeyFactory javax.crypto.EncryptedPrivateKeyInfo javax.crypto.Cipher javax.security.auth.callback.PasswordCallback
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
23: astore 7
start local 7 24: aload 0
getfield org.postgresql.ssl.LazyKeyManager.cbh:Ljavax/security/auth/callback/CallbackHandler;
instanceof org.postgresql.ssl.LibPQFactory$ConsoleCallbackHandler
ifeq 31
25: ldc "Console is not available"
aload 7
invokevirtual javax.security.auth.callback.UnsupportedCallbackException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 31
26: aload 0
new org.postgresql.util.PSQLException
dup
27: ldc "Could not read password for SSL key file, console is not available."
iconst_0
anewarray java.lang.Object
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
28: getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
aload 7
invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
29: putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
30: goto 39
31: StackMap locals: javax.security.auth.callback.UnsupportedCallbackException
StackMap stack:
aload 0
32: new org.postgresql.util.PSQLException
dup
33: ldc "Could not read password for SSL key file by callbackhandler {0}."
iconst_1
anewarray java.lang.Object
dup
iconst_0
34: aload 0
getfield org.postgresql.ssl.LazyKeyManager.cbh:Ljavax/security/auth/callback/CallbackHandler;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
35: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
36: getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
aload 7
37: invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
38: putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
39: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 7 40: StackMap locals:
StackMap stack:
new javax.crypto.spec.PBEKeySpec
dup
aload 6
invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
astore 7
start local 7 41: aload 6
invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
42: aload 4
invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgName:()Ljava/lang/String;
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
astore 8
start local 8 43: aload 8
aload 7
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
astore 9
start local 9 44: aload 4
invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgParameters:()Ljava/security/AlgorithmParameters;
astore 10
start local 10 45: aload 5
iconst_2
aload 9
aload 10
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
46: aload 4
aload 5
invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getKeySpec:(Ljavax/crypto/Cipher;)Ljava/security/spec/PKCS8EncodedKeySpec;
astore 11
start local 11 47: aload 0
aload 3
aload 11
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
putfield org.postgresql.ssl.LazyKeyManager.key:Ljava/security/PrivateKey;
end local 11 end local 10 end local 9 end local 8 end local 7 48: goto 67
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
49: astore 7
start local 7 50: aload 0
new org.postgresql.util.PSQLException
dup
51: ldc "Could not decrypt SSL key file {0}."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.postgresql.ssl.LazyKeyManager.keyfile:Ljava/lang/String;
aastore
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
52: getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
aload 7
invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
53: putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
54: aconst_null
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 55: StackMap locals: org.postgresql.ssl.LazyKeyManager java.lang.String
StackMap stack: java.io.IOException
astore 2
start local 2 56: aload 0
new org.postgresql.util.PSQLException
dup
ldc "Could not read SSL key file {0}."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.postgresql.ssl.LazyKeyManager.keyfile:Ljava/lang/String;
aastore
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
57: getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
aload 2
invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
58: putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
end local 2 59: goto 67
60: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 2
start local 2 61: aload 0
new org.postgresql.util.PSQLException
dup
ldc "Could not find a java cryptographic algorithm: {0}."
iconst_1
anewarray java.lang.Object
dup
iconst_0
62: aload 2
invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
aastore
63: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
64: getstatic org.postgresql.util.PSQLState.CONNECTION_FAILURE:Lorg/postgresql/util/PSQLState;
aload 2
invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
65: putfield org.postgresql.ssl.LazyKeyManager.error:Lorg/postgresql/util/PSQLException;
66: aconst_null
areturn
end local 2 67: StackMap locals:
StackMap stack:
aload 0
getfield org.postgresql.ssl.LazyKeyManager.key:Ljava/security/PrivateKey;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lorg/postgresql/ssl/LazyKeyManager;
0 68 1 alias Ljava/lang/String;
5 6 2 keydata [B
10 55 2 keydata [B
7 10 3 ex Ljava/io/FileNotFoundException;
11 55 3 kf Ljava/security/KeyFactory;
12 13 4 pkcs8KeySpec Ljava/security/spec/KeySpec;
16 55 4 ePKInfo Ljavax/crypto/EncryptedPrivateKeyInfo;
17 18 5 cipher Ljavax/crypto/Cipher;
20 55 5 cipher Ljavax/crypto/Cipher;
19 20 6 npex Ljavax/crypto/NoSuchPaddingException;
21 55 6 pwdcb Ljavax/security/auth/callback/PasswordCallback;
24 40 7 ucex Ljavax/security/auth/callback/UnsupportedCallbackException;
41 48 7 pbeKeySpec Ljavax/crypto/spec/PBEKeySpec;
43 48 8 skFac Ljavax/crypto/SecretKeyFactory;
44 48 9 pbeKey Ljava/security/Key;
45 48 10 algParams Ljava/security/AlgorithmParameters;
47 48 11 pkcs8KeySpec Ljava/security/spec/KeySpec;
50 55 7 ikex Ljava/security/GeneralSecurityException;
56 59 2 ioex Ljava/io/IOException;
61 67 2 ex Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
4 5 6 Class java.io.FileNotFoundException
11 13 14 Class java.security.spec.InvalidKeySpecException
16 17 18 Class javax.crypto.NoSuchPaddingException
21 22 23 Class javax.security.auth.callback.UnsupportedCallbackException
40 48 49 Class java.security.GeneralSecurityException
0 3 55 Class java.io.IOException
4 9 55 Class java.io.IOException
10 39 55 Class java.io.IOException
40 54 55 Class java.io.IOException
0 3 60 Class java.security.NoSuchAlgorithmException
4 9 60 Class java.security.NoSuchAlgorithmException
10 39 60 Class java.security.NoSuchAlgorithmException
40 54 60 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
alias
public java.lang.String[] getServerAliases(java.lang.String, java.security.Principal[]);
descriptor: (Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
anewarray java.lang.String
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/postgresql/ssl/LazyKeyManager;
0 1 1 keyType Ljava/lang/String;
0 1 2 issuers [Ljava/security/Principal;
MethodParameters:
Name Flags
keyType
issuers
}
SourceFile: "LazyKeyManager.java"
InnerClasses:
public ConsoleCallbackHandler = org.postgresql.ssl.LibPQFactory$ConsoleCallbackHandler of org.postgresql.ssl.LibPQFactory