final class sun.security.ssl.KerberosClientKeyExchange extends sun.security.ssl.HandshakeMessage
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.KerberosClientKeyExchange
super_class: sun.security.ssl.HandshakeMessage
{
private sun.security.ssl.KerberosPreMasterSecret preMaster;
descriptor: Lsun/security/ssl/KerberosPreMasterSecret;
flags: (0x0002) ACC_PRIVATE
private byte[] encodedTicket;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.kerberos.KerberosPrincipal peerPrincipal;
descriptor: Ljavax/security/auth/kerberos/KerberosPrincipal;
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.kerberos.KerberosPrincipal localPrincipal;
descriptor: Ljavax/security/auth/kerberos/KerberosPrincipal;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.String, boolean, java.security.AccessControlContext, sun.security.ssl.ProtocolVersion, java.security.SecureRandom);
descriptor: (Ljava/lang/String;ZLjava/security/AccessControlContext;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial sun.security.ssl.HandshakeMessage.<init>:()V
1: aload 1
iload 2
aload 3
invokestatic sun.security.ssl.KerberosClientKeyExchange.getServiceTicket:(Ljava/lang/String;ZLjava/security/AccessControlContext;)Ljavax/security/auth/kerberos/KerberosTicket;
astore 6
start local 6 2: aload 0
aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getEncoded:()[B
putfield sun.security.ssl.KerberosClientKeyExchange.encodedTicket:[B
3: aload 0
aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getServer:()Ljavax/security/auth/kerberos/KerberosPrincipal;
putfield sun.security.ssl.KerberosClientKeyExchange.peerPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
4: aload 0
aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getClient:()Ljavax/security/auth/kerberos/KerberosPrincipal;
putfield sun.security.ssl.KerberosClientKeyExchange.localPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
5: new sun.security.krb5.EncryptionKey
dup
6: aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getSessionKeyType:()I
7: aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getSessionKey:()Ljavax/crypto/SecretKey;
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
8: invokespecial sun.security.krb5.EncryptionKey.<init>:(I[B)V
astore 7
start local 7 9: aload 0
new sun.security.ssl.KerberosPreMasterSecret
dup
aload 4
10: aload 5
aload 7
invokespecial sun.security.ssl.KerberosPreMasterSecret.<init>:(Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/krb5/EncryptionKey;)V
11: putfield sun.security.ssl.KerberosClientKeyExchange.preMaster:Lsun/security/ssl/KerberosPreMasterSecret;
12: return
end local 7 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 13 0 this Lsun/security/ssl/KerberosClientKeyExchange;
0 13 1 serverName Ljava/lang/String;
0 13 2 isLoopback Z
0 13 3 acc Ljava/security/AccessControlContext;
0 13 4 protocolVersion Lsun/security/ssl/ProtocolVersion;
0 13 5 rand Ljava/security/SecureRandom;
2 13 6 ticket Ljavax/security/auth/kerberos/KerberosTicket;
9 13 7 sessionKey Lsun/security/krb5/EncryptionKey;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
serverName
isLoopback
acc
protocolVersion
rand
void <init>(sun.security.ssl.ProtocolVersion, sun.security.ssl.ProtocolVersion, java.security.SecureRandom, sun.security.ssl.HandshakeInStream, javax.security.auth.kerberos.KerberosKey[]);
descriptor: (Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;[Ljavax/security/auth/kerberos/KerberosKey;)V
flags: (0x0000)
Code:
stack=8, locals=18, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial sun.security.ssl.HandshakeMessage.<init>:()V
1: aload 0
aload 4
invokevirtual sun.security.ssl.HandshakeInStream.getBytes16:()[B
putfield sun.security.ssl.KerberosClientKeyExchange.encodedTicket:[B
2: getstatic sun.security.ssl.KerberosClientKeyExchange.debug:Lsun/security/ssl/Debug;
ifnull 6
ldc "verbose"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 6
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
4: ldc "encoded Kerberos service ticket"
aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.encodedTicket:[B
5: invokestatic sun.security.ssl.Debug.println:(Ljava/io/PrintStream;Ljava/lang/String;[B)V
6: StackMap locals: sun.security.ssl.KerberosClientKeyExchange sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream javax.security.auth.kerberos.KerberosKey[]
StackMap stack:
aconst_null
astore 6
start local 6 7: new sun.security.krb5.internal.Ticket
dup
aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.encodedTicket:[B
invokespecial sun.security.krb5.internal.Ticket.<init>:([B)V
astore 7
start local 7 8: aload 7
getfield sun.security.krb5.internal.Ticket.encPart:Lsun/security/krb5/EncryptedData;
astore 8
start local 8 9: aload 7
getfield sun.security.krb5.internal.Ticket.sname:Lsun/security/krb5/PrincipalName;
astore 9
start local 9 10: aload 7
getfield sun.security.krb5.internal.Ticket.sname:Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.getRealm:()Lsun/security/krb5/Realm;
pop
11: aload 5
iconst_0
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
astore 10
start local 10 12: aload 9
invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
astore 11
start local 11 13: aload 11
aload 10
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 20
14: getstatic sun.security.ssl.KerberosClientKeyExchange.debug:Lsun/security/ssl/Debug;
ifnull 16
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 16
15: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Service principal in Ticket does not match associated principal in KerberosKey"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
16: StackMap locals: sun.security.ssl.KerberosClientKeyExchange sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream javax.security.auth.kerberos.KerberosKey[] sun.security.krb5.EncryptionKey sun.security.krb5.internal.Ticket sun.security.krb5.EncryptedData sun.security.krb5.PrincipalName java.lang.String java.lang.String
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Server principal is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
17: aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " but ticket is for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 8
invokevirtual sun.security.krb5.EncryptedData.getEType:()I
istore 12
start local 12 21: iload 12
aload 5
invokestatic sun.security.ssl.KerberosClientKeyExchange.findKey:(I[Ljavax/security/auth/kerberos/KerberosKey;)Ljavax/security/auth/kerberos/KerberosKey;
astore 13
start local 13 22: aload 13
ifnonnull 28
23: new java.io.IOException
dup
24: new java.lang.StringBuilder
dup
ldc "Cannot find key of appropriate type to decrypt ticket - need etype "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
25: iload 12
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
26: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals: int javax.security.auth.kerberos.KerberosKey
StackMap stack:
new sun.security.krb5.EncryptionKey
dup
29: iload 12
30: aload 13
invokevirtual javax.security.auth.kerberos.KerberosKey.getEncoded:()[B
31: invokespecial sun.security.krb5.EncryptionKey.<init>:(I[B)V
astore 14
start local 14 32: aload 8
aload 14
iconst_2
invokevirtual sun.security.krb5.EncryptedData.decrypt:(Lsun/security/krb5/EncryptionKey;I)[B
astore 15
start local 15 33: aload 8
aload 15
invokevirtual sun.security.krb5.EncryptedData.reset:([B)[B
astore 16
start local 16 34: new sun.security.krb5.internal.EncTicketPart
dup
aload 16
invokespecial sun.security.krb5.internal.EncTicketPart.<init>:([B)V
astore 17
start local 17 35: aload 0
36: new javax.security.auth.kerberos.KerberosPrincipal
dup
aload 17
getfield sun.security.krb5.internal.EncTicketPart.cname:Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.getName:()Ljava/lang/String;
invokespecial javax.security.auth.kerberos.KerberosPrincipal.<init>:(Ljava/lang/String;)V
37: putfield sun.security.ssl.KerberosClientKeyExchange.peerPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
38: aload 0
new javax.security.auth.kerberos.KerberosPrincipal
dup
aload 9
invokevirtual sun.security.krb5.PrincipalName.getName:()Ljava/lang/String;
invokespecial javax.security.auth.kerberos.KerberosPrincipal.<init>:(Ljava/lang/String;)V
putfield sun.security.ssl.KerberosClientKeyExchange.localPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
39: aload 17
getfield sun.security.krb5.internal.EncTicketPart.key:Lsun/security/krb5/EncryptionKey;
astore 6
40: getstatic sun.security.ssl.KerberosClientKeyExchange.debug:Lsun/security/ssl/Debug;
ifnull 52
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 52
41: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "server principal: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
42: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "cname: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 17
getfield sun.security.krb5.internal.EncTicketPart.cname:Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 43: goto 52
StackMap locals: sun.security.ssl.KerberosClientKeyExchange sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream javax.security.auth.kerberos.KerberosKey[] sun.security.krb5.EncryptionKey
StackMap stack: java.io.IOException
44: astore 7
start local 7 45: aload 7
athrow
end local 7 46: StackMap locals:
StackMap stack: java.lang.Exception
astore 7
start local 7 47: getstatic sun.security.ssl.KerberosClientKeyExchange.debug:Lsun/security/ssl/Debug;
ifnull 51
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 51
48: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "KerberosWrapper error getting session key, generating random secret ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
49: aload 7
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
50: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
51: StackMap locals: java.lang.Exception
StackMap stack:
aconst_null
astore 6
end local 7 52: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.security.ssl.HandshakeInStream.getBytes16:()[B
pop
53: aload 6
ifnull 58
54: aload 0
new sun.security.ssl.KerberosPreMasterSecret
dup
aload 1
55: aload 2
aload 3
aload 4
aload 6
invokespecial sun.security.ssl.KerberosPreMasterSecret.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;Lsun/security/krb5/EncryptionKey;)V
56: putfield sun.security.ssl.KerberosClientKeyExchange.preMaster:Lsun/security/ssl/KerberosPreMasterSecret;
57: goto 59
58: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.KerberosPreMasterSecret
dup
aload 2
aload 3
invokespecial sun.security.ssl.KerberosPreMasterSecret.<init>:(Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)V
putfield sun.security.ssl.KerberosClientKeyExchange.preMaster:Lsun/security/ssl/KerberosPreMasterSecret;
59: StackMap locals:
StackMap stack:
return
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 60 0 this Lsun/security/ssl/KerberosClientKeyExchange;
0 60 1 protocolVersion Lsun/security/ssl/ProtocolVersion;
0 60 2 clientVersion Lsun/security/ssl/ProtocolVersion;
0 60 3 rand Ljava/security/SecureRandom;
0 60 4 input Lsun/security/ssl/HandshakeInStream;
0 60 5 serverKeys [Ljavax/security/auth/kerberos/KerberosKey;
7 60 6 sessionKey Lsun/security/krb5/EncryptionKey;
8 43 7 t Lsun/security/krb5/internal/Ticket;
9 43 8 encPart Lsun/security/krb5/EncryptedData;
10 43 9 ticketSname Lsun/security/krb5/PrincipalName;
12 43 10 serverPrincipal Ljava/lang/String;
13 43 11 ticketPrinc Ljava/lang/String;
21 43 12 encPartKeyType I
22 43 13 dkey Ljavax/security/auth/kerberos/KerberosKey;
32 43 14 secretKey Lsun/security/krb5/EncryptionKey;
33 43 15 bytes [B
34 43 16 temp [B
35 43 17 encTicketPart Lsun/security/krb5/internal/EncTicketPart;
45 46 7 e Ljava/io/IOException;
47 52 7 e Ljava/lang/Exception;
Exception table:
from to target type
7 43 44 Class java.io.IOException
7 43 46 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
protocolVersion
clientVersion
rand
input
serverKeys
int messageType();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: bipush 16
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/KerberosClientKeyExchange;
int messageLength();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: bipush 6
aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.encodedTicket:[B
arraylength
iadd
aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.preMaster:Lsun/security/ssl/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.KerberosPreMasterSecret.getEncrypted:()[B
arraylength
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/KerberosClientKeyExchange;
void send(sun.security.ssl.HandshakeOutStream);
descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.encodedTicket:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
1: aload 1
aconst_null
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
2: aload 1
aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.preMaster:Lsun/security/ssl/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.KerberosPreMasterSecret.getEncrypted:()[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/KerberosClientKeyExchange;
0 4 1 s Lsun/security/ssl/HandshakeOutStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
void print(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "*** ClientKeyExchange, Kerberos"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: getstatic sun.security.ssl.KerberosClientKeyExchange.debug:Lsun/security/ssl/Debug;
ifnull 7
ldc "verbose"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 7
2: aload 1
ldc "Kerberos service ticket"
aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.encodedTicket:[B
invokestatic sun.security.ssl.Debug.println:(Ljava/io/PrintStream;Ljava/lang/String;[B)V
3: aload 1
ldc "Random Secret"
aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.preMaster:Lsun/security/ssl/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.KerberosPreMasterSecret.getUnencrypted:()[B
invokestatic sun.security.ssl.Debug.println:(Ljava/io/PrintStream;Ljava/lang/String;[B)V
4: aload 1
ldc "Encrypted random Secret"
5: aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.preMaster:Lsun/security/ssl/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.KerberosPreMasterSecret.getEncrypted:()[B
6: invokestatic sun.security.ssl.Debug.println:(Ljava/io/PrintStream;Ljava/lang/String;[B)V
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/KerberosClientKeyExchange;
0 8 1 s Ljava/io/PrintStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
private static javax.security.auth.kerberos.KerberosTicket getServiceTicket(java.lang.String, boolean, java.security.AccessControlContext);
descriptor: (Ljava/lang/String;ZLjava/security/AccessControlContext;)Ljavax/security/auth/kerberos/KerberosTicket;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
astore 3
start local 3 1: iload 1
ifeq 5
2: new sun.security.ssl.KerberosClientKeyExchange$1
dup
invokespecial sun.security.ssl.KerberosClientKeyExchange$1.<init>:()V
3: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 4: aload 4
astore 3
end local 4 5: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "host/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 6: new sun.security.krb5.PrincipalName
dup
aload 4
7: iconst_3
8: invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;I)V
astore 5
start local 5 9: goto 18
end local 5 StackMap locals: java.lang.String int java.security.AccessControlContext java.lang.String java.lang.String
StackMap stack: java.lang.SecurityException
10: astore 6
start local 6 11: aload 6
athrow
end local 6 12: StackMap locals:
StackMap stack: java.lang.Exception
astore 6
start local 6 13: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Invalid service principal name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 7
start local 7 16: aload 7
aload 6
invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
17: aload 7
athrow
end local 7 end local 6 start local 5 18: StackMap locals: sun.security.krb5.PrincipalName
StackMap stack:
aload 5
invokevirtual sun.security.krb5.PrincipalName.getRealmAsString:()Ljava/lang/String;
astore 6
start local 6 19: aload 5
invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
astore 7
start local 7 20: new java.lang.StringBuilder
dup
ldc "krbtgt/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "@"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 21: aconst_null
astore 9
start local 9 22: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 10
start local 10 23: aload 10
ifnull 27
24: aload 10
new javax.security.auth.kerberos.ServicePermission
dup
aload 7
25: ldc "initiate"
invokespecial javax.security.auth.kerberos.ServicePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
aload 2
26: invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
27: StackMap locals: java.lang.String int java.security.AccessControlContext java.lang.String java.lang.String sun.security.krb5.PrincipalName java.lang.String java.lang.String java.lang.String java.lang.String java.lang.SecurityManager
StackMap stack:
new sun.security.ssl.KerberosClientKeyExchange$2
dup
aload 9
aload 7
aload 8
aload 2
invokespecial sun.security.ssl.KerberosClientKeyExchange$2.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/security/AccessControlContext;)V
28: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast javax.security.auth.kerberos.KerberosTicket
astore 11
start local 11 29: aload 11
ifnonnull 33
30: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Failed to find any kerberos service ticket for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
31: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
32: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
33: StackMap locals: javax.security.auth.kerberos.KerberosTicket
StackMap stack:
aload 11
34: areturn
end local 11 35: StackMap locals: java.lang.String int java.security.AccessControlContext java.lang.String java.lang.String sun.security.krb5.PrincipalName java.lang.String java.lang.String java.lang.String java.lang.String java.lang.SecurityManager
StackMap stack: java.security.PrivilegedActionException
astore 11
start local 11 36: new java.io.IOException
dup
37: new java.lang.StringBuilder
dup
ldc "Attempt to obtain kerberos service ticket for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
38: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " failed!"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
39: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
40: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 12
start local 12 41: aload 12
aload 11
invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
42: aload 12
athrow
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 43 0 srvName Ljava/lang/String;
0 43 1 isLoopback Z
0 43 2 acc Ljava/security/AccessControlContext;
1 43 3 serverName Ljava/lang/String;
4 5 4 localHost Ljava/lang/String;
6 43 4 serviceName Ljava/lang/String;
9 10 5 principal Lsun/security/krb5/PrincipalName;
18 43 5 principal Lsun/security/krb5/PrincipalName;
11 12 6 se Ljava/lang/SecurityException;
13 18 6 e Ljava/lang/Exception;
16 18 7 ioe Ljava/io/IOException;
19 43 6 realm Ljava/lang/String;
20 43 7 serverPrincipal Ljava/lang/String;
21 43 8 tgsPrincipal Ljava/lang/String;
22 43 9 clientPrincipal Ljava/lang/String;
23 43 10 sm Ljava/lang/SecurityManager;
29 35 11 ticket Ljavax/security/auth/kerberos/KerberosTicket;
36 43 11 e Ljava/security/PrivilegedActionException;
41 43 12 ioe Ljava/io/IOException;
Exception table:
from to target type
6 9 10 Class java.lang.SecurityException
6 9 12 Class java.lang.Exception
27 34 35 Class java.security.PrivilegedActionException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srvName
isLoopback
acc final
sun.security.ssl.KerberosPreMasterSecret getPreMasterSecret();
descriptor: ()Lsun/security/ssl/KerberosPreMasterSecret;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.preMaster:Lsun/security/ssl/KerberosPreMasterSecret;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/KerberosClientKeyExchange;
javax.security.auth.kerberos.KerberosPrincipal getPeerPrincipal();
descriptor: ()Ljavax/security/auth/kerberos/KerberosPrincipal;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.peerPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/KerberosClientKeyExchange;
javax.security.auth.kerberos.KerberosPrincipal getLocalPrincipal();
descriptor: ()Ljavax/security/auth/kerberos/KerberosPrincipal;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.KerberosClientKeyExchange.localPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/KerberosClientKeyExchange;
private static javax.security.auth.kerberos.KerberosKey findKey(int, javax.security.auth.kerberos.KerberosKey[]);
descriptor: (I[Ljavax/security/auth/kerberos/KerberosKey;)Ljavax/security/auth/kerberos/KerberosKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: goto 6
2: StackMap locals: int javax.security.auth.kerberos.KerberosKey[] top int
StackMap stack:
aload 1
iload 3
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getKeyType:()I
istore 2
start local 2 3: iload 0
iload 2
if_icmpne 5
4: aload 1
iload 3
aaload
areturn
5: StackMap locals: int javax.security.auth.kerberos.KerberosKey[] int int
StackMap stack:
iinc 3 1
end local 2 StackMap locals: int javax.security.auth.kerberos.KerberosKey[] top int
StackMap stack:
6: iload 3
aload 1
arraylength
if_icmplt 2
end local 3 7: iload 0
iconst_1
if_icmpeq 9
8: iload 0
iconst_3
if_icmpne 21
9: StackMap locals: int javax.security.auth.kerberos.KerberosKey[]
StackMap stack:
iconst_0
istore 3
start local 3 10: goto 20
11: StackMap locals: int javax.security.auth.kerberos.KerberosKey[] top int
StackMap stack:
aload 1
iload 3
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getKeyType:()I
istore 2
start local 2 12: iload 2
iconst_1
if_icmpeq 14
13: iload 2
iconst_3
if_icmpne 19
14: StackMap locals: int javax.security.auth.kerberos.KerberosKey[] int int
StackMap stack:
new javax.security.auth.kerberos.KerberosKey
dup
aload 1
iload 3
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
15: aload 1
iload 3
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getEncoded:()[B
16: iload 0
17: aload 1
iload 3
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getVersionNumber:()I
18: invokespecial javax.security.auth.kerberos.KerberosKey.<init>:(Ljavax/security/auth/kerberos/KerberosPrincipal;[BII)V
areturn
19: StackMap locals:
StackMap stack:
iinc 3 1
end local 2 StackMap locals: int javax.security.auth.kerberos.KerberosKey[] top int
StackMap stack:
20: iload 3
aload 1
arraylength
if_icmplt 11
end local 3 21: StackMap locals: int javax.security.auth.kerberos.KerberosKey[]
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 etype I
0 22 1 keys [Ljavax/security/auth/kerberos/KerberosKey;
3 6 2 ktype I
12 20 2 ktype I
1 7 3 i I
10 21 3 i I
MethodParameters:
Name Flags
etype
keys
}
SourceFile: "KerberosClientKeyExchange.java"
NestMembers:
sun.security.ssl.KerberosClientKeyExchange$1 sun.security.ssl.KerberosClientKeyExchange$2
InnerClasses:
sun.security.ssl.KerberosClientKeyExchange$1
sun.security.ssl.KerberosClientKeyExchange$2