public final class sun.security.ssl.krb5.KerberosClientKeyExchangeImpl extends sun.security.ssl.KerberosClientKeyExchange
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.krb5.KerberosClientKeyExchangeImpl
super_class: sun.security.ssl.KerberosClientKeyExchange
{
private sun.security.ssl.krb5.KerberosPreMasterSecret preMaster;
descriptor: Lsun/security/ssl/krb5/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
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial sun.security.ssl.KerberosClientKeyExchange.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/krb5/KerberosClientKeyExchangeImpl;
public 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: (0x0001) ACC_PUBLIC
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 1
iload 2
aload 3
invokestatic sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.getServiceTicket:(Ljava/lang/String;ZLjava/security/AccessControlContext;)Ljavax/security/auth/kerberos/KerberosTicket;
astore 6
start local 6 1: aload 0
aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getEncoded:()[B
putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.encodedTicket:[B
2: aload 0
aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getServer:()Ljavax/security/auth/kerberos/KerberosPrincipal;
putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.peerPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
3: aload 0
aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getClient:()Ljavax/security/auth/kerberos/KerberosPrincipal;
putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.localPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
4: new sun.security.krb5.EncryptionKey
dup
5: aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getSessionKeyType:()I
6: aload 6
invokevirtual javax.security.auth.kerberos.KerberosTicket.getSessionKey:()Ljavax/crypto/SecretKey;
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
7: invokespecial sun.security.krb5.EncryptionKey.<init>:(I[B)V
astore 7
start local 7 8: aload 0
new sun.security.ssl.krb5.KerberosPreMasterSecret
dup
aload 4
9: aload 5
aload 7
invokespecial sun.security.ssl.krb5.KerberosPreMasterSecret.<init>:(Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/krb5/EncryptionKey;)V
10: putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.preMaster:Lsun/security/ssl/krb5/KerberosPreMasterSecret;
11: 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 12 0 this Lsun/security/ssl/krb5/KerberosClientKeyExchangeImpl;
0 12 1 serverName Ljava/lang/String;
0 12 2 isLoopback Z
0 12 3 acc Ljava/security/AccessControlContext;
0 12 4 protocolVersion Lsun/security/ssl/ProtocolVersion;
0 12 5 rand Ljava/security/SecureRandom;
1 12 6 ticket Ljavax/security/auth/kerberos/KerberosTicket;
8 12 7 sessionKey Lsun/security/krb5/EncryptionKey;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
serverName
isLoopback
acc
protocolVersion
rand
public void init(sun.security.ssl.ProtocolVersion, sun.security.ssl.ProtocolVersion, java.security.SecureRandom, sun.security.ssl.HandshakeInStream, javax.crypto.SecretKey[]);
descriptor: (Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;[Ljavax/crypto/SecretKey;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=20, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
checkcast javax.security.auth.kerberos.KerberosKey[]
astore 6
start local 6 1: aload 0
aload 4
invokevirtual sun.security.ssl.HandshakeInStream.getBytes16:()[B
putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.encodedTicket:[B
2: getstatic sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.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.krb5.KerberosClientKeyExchangeImpl.encodedTicket:[B
5: invokestatic sun.security.ssl.Debug.println:(Ljava/io/PrintStream;Ljava/lang/String;[B)V
6: StackMap locals: javax.security.auth.kerberos.KerberosKey[]
StackMap stack:
aconst_null
astore 7
start local 7 7: new sun.security.krb5.internal.Ticket
dup
aload 0
getfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.encodedTicket:[B
invokespecial sun.security.krb5.internal.Ticket.<init>:([B)V
astore 8
start local 8 8: aload 8
getfield sun.security.krb5.internal.Ticket.encPart:Lsun/security/krb5/EncryptedData;
astore 9
start local 9 9: aload 8
getfield sun.security.krb5.internal.Ticket.sname:Lsun/security/krb5/PrincipalName;
astore 10
start local 10 10: aload 8
getfield sun.security.krb5.internal.Ticket.sname:Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.getRealm:()Lsun/security/krb5/Realm;
pop
11: aload 6
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 11
start local 11 12: aload 10
invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
astore 12
start local 12 13: aload 12
aload 11
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 20
14: getstatic sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.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.krb5.KerberosClientKeyExchangeImpl sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream javax.crypto.SecretKey[] 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 11
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 12
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 9
invokevirtual sun.security.krb5.EncryptedData.getEType:()I
istore 13
start local 13 21: aload 9
invokevirtual sun.security.krb5.EncryptedData.getKeyVersionNumber:()Ljava/lang/Integer;
astore 14
start local 14 22: aconst_null
astore 15
start local 15 23: iload 13
aload 14
aload 6
invokestatic sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.findKey:(ILjava/lang/Integer;[Ljavax/security/auth/kerberos/KerberosKey;)Ljavax/security/auth/kerberos/KerberosKey;
astore 15
24: goto 29
StackMap locals: sun.security.ssl.krb5.KerberosClientKeyExchangeImpl sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream javax.crypto.SecretKey[] 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 int java.lang.Integer javax.security.auth.kerberos.KerberosKey
StackMap stack: sun.security.krb5.KrbException
25: astore 16
start local 16 26: new java.io.IOException
dup
27: ldc "Cannot find key matching version number"
aload 16
28: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 16 29: StackMap locals:
StackMap stack:
aload 15
ifnonnull 35
30: new java.io.IOException
dup
31: 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
32: iload 13
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
33: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
new sun.security.krb5.EncryptionKey
dup
36: iload 13
37: aload 15
invokevirtual javax.security.auth.kerberos.KerberosKey.getEncoded:()[B
38: invokespecial sun.security.krb5.EncryptionKey.<init>:(I[B)V
astore 16
start local 16 39: aload 9
aload 16
iconst_2
invokevirtual sun.security.krb5.EncryptedData.decrypt:(Lsun/security/krb5/EncryptionKey;I)[B
astore 17
start local 17 40: aload 9
aload 17
invokevirtual sun.security.krb5.EncryptedData.reset:([B)[B
astore 18
start local 18 41: new sun.security.krb5.internal.EncTicketPart
dup
aload 18
invokespecial sun.security.krb5.internal.EncTicketPart.<init>:([B)V
astore 19
start local 19 42: aload 0
43: new javax.security.auth.kerberos.KerberosPrincipal
dup
aload 19
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
44: putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.peerPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
45: aload 0
new javax.security.auth.kerberos.KerberosPrincipal
dup
aload 10
invokevirtual sun.security.krb5.PrincipalName.getName:()Ljava/lang/String;
invokespecial javax.security.auth.kerberos.KerberosPrincipal.<init>:(Ljava/lang/String;)V
putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.localPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
46: aload 19
getfield sun.security.krb5.internal.EncTicketPart.key:Lsun/security/krb5/EncryptionKey;
astore 7
47: getstatic sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.debug:Lsun/security/ssl/Debug;
ifnull 59
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 59
48: 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 11
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
49: 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 19
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 19 end local 18 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 50: goto 59
StackMap locals: sun.security.ssl.krb5.KerberosClientKeyExchangeImpl sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream javax.crypto.SecretKey[] javax.security.auth.kerberos.KerberosKey[] sun.security.krb5.EncryptionKey
StackMap stack: java.io.IOException
51: astore 8
start local 8 52: aload 8
athrow
end local 8 53: StackMap locals:
StackMap stack: java.lang.Exception
astore 8
start local 8 54: getstatic sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.debug:Lsun/security/ssl/Debug;
ifnull 58
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 58
55: 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
56: aload 8
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;
57: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
58: StackMap locals: java.lang.Exception
StackMap stack:
aconst_null
astore 7
end local 8 59: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.security.ssl.HandshakeInStream.getBytes16:()[B
pop
60: aload 7
ifnull 65
61: aload 0
new sun.security.ssl.krb5.KerberosPreMasterSecret
dup
aload 1
62: aload 2
aload 3
aload 4
aload 7
invokespecial sun.security.ssl.krb5.KerberosPreMasterSecret.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;Lsun/security/krb5/EncryptionKey;)V
63: putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.preMaster:Lsun/security/ssl/krb5/KerberosPreMasterSecret;
64: goto 66
65: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.krb5.KerberosPreMasterSecret
dup
aload 2
aload 3
invokespecial sun.security.ssl.krb5.KerberosPreMasterSecret.<init>:(Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)V
putfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.preMaster:Lsun/security/ssl/krb5/KerberosPreMasterSecret;
66: StackMap locals:
StackMap stack:
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 67 0 this Lsun/security/ssl/krb5/KerberosClientKeyExchangeImpl;
0 67 1 protocolVersion Lsun/security/ssl/ProtocolVersion;
0 67 2 clientVersion Lsun/security/ssl/ProtocolVersion;
0 67 3 rand Ljava/security/SecureRandom;
0 67 4 input Lsun/security/ssl/HandshakeInStream;
0 67 5 secretKeys [Ljavax/crypto/SecretKey;
1 67 6 serverKeys [Ljavax/security/auth/kerberos/KerberosKey;
7 67 7 sessionKey Lsun/security/krb5/EncryptionKey;
8 50 8 t Lsun/security/krb5/internal/Ticket;
9 50 9 encPart Lsun/security/krb5/EncryptedData;
10 50 10 ticketSname Lsun/security/krb5/PrincipalName;
12 50 11 serverPrincipal Ljava/lang/String;
13 50 12 ticketPrinc Ljava/lang/String;
21 50 13 encPartKeyType I
22 50 14 encPartKeyVersion Ljava/lang/Integer;
23 50 15 dkey Ljavax/security/auth/kerberos/KerberosKey;
26 29 16 ke Lsun/security/krb5/KrbException;
39 50 16 secretKey Lsun/security/krb5/EncryptionKey;
40 50 17 bytes [B
41 50 18 temp [B
42 50 19 encTicketPart Lsun/security/krb5/internal/EncTicketPart;
52 53 8 e Ljava/io/IOException;
54 59 8 e Ljava/lang/Exception;
Exception table:
from to target type
23 24 25 Class sun.security.krb5.KrbException
7 50 51 Class java.io.IOException
7 50 53 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
protocolVersion
clientVersion
rand
input
secretKeys
public int messageLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: bipush 6
aload 0
getfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.encodedTicket:[B
arraylength
iadd
aload 0
getfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.preMaster:Lsun/security/ssl/krb5/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.krb5.KerberosPreMasterSecret.getEncrypted:()[B
arraylength
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/krb5/KerberosClientKeyExchangeImpl;
public void send(sun.security.ssl.HandshakeOutStream);
descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.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.krb5.KerberosClientKeyExchangeImpl.preMaster:Lsun/security/ssl/krb5/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.krb5.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/krb5/KerberosClientKeyExchangeImpl;
0 4 1 s Lsun/security/ssl/HandshakeOutStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
public void print(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
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.krb5.KerberosClientKeyExchangeImpl.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.krb5.KerberosClientKeyExchangeImpl.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.krb5.KerberosClientKeyExchangeImpl.preMaster:Lsun/security/ssl/krb5/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.krb5.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.krb5.KerberosClientKeyExchangeImpl.preMaster:Lsun/security/ssl/krb5/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.krb5.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/krb5/KerberosClientKeyExchangeImpl;
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.krb5.KerberosClientKeyExchangeImpl$1
dup
invokespecial sun.security.ssl.krb5.KerberosClientKeyExchangeImpl$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.krb5.KerberosClientKeyExchangeImpl$2
dup
aload 9
aload 7
aload 8
aload 2
invokespecial sun.security.ssl.krb5.KerberosClientKeyExchangeImpl$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
public byte[] getUnencryptedPreMasterSecret();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.preMaster:Lsun/security/ssl/krb5/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.krb5.KerberosPreMasterSecret.getUnencrypted:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/krb5/KerberosClientKeyExchangeImpl;
public javax.security.auth.kerberos.KerberosPrincipal getPeerPrincipal();
descriptor: ()Ljavax/security/auth/kerberos/KerberosPrincipal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.peerPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/krb5/KerberosClientKeyExchangeImpl;
public javax.security.auth.kerberos.KerberosPrincipal getLocalPrincipal();
descriptor: ()Ljavax/security/auth/kerberos/KerberosPrincipal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.localPrincipal:Ljavax/security/auth/kerberos/KerberosPrincipal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/krb5/KerberosClientKeyExchangeImpl;
private static boolean versionMatches(java.lang.Integer, int);
descriptor: (Ljava/lang/Integer;I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnull 1
aload 0
invokevirtual java.lang.Integer.intValue:()I
ifeq 1
iload 1
ifne 2
1: StackMap locals:
StackMap stack:
iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 v1 Ljava/lang/Integer;
0 3 1 v2 I
MethodParameters:
Name Flags
v1
v2
private static javax.security.auth.kerberos.KerberosKey findKey(int, java.lang.Integer, javax.security.auth.kerberos.KerberosKey[]);
descriptor: (ILjava/lang/Integer;[Ljavax/security/auth/kerberos/KerberosKey;)Ljavax/security/auth/kerberos/KerberosKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 9
3: StackMap locals: int java.lang.Integer javax.security.auth.kerberos.KerberosKey[] top int int
StackMap stack:
aload 2
iload 5
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getKeyType:()I
istore 3
start local 3 4: iload 0
iload 3
if_icmpne 8
5: iconst_1
istore 4
6: aload 1
aload 2
iload 5
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getVersionNumber:()I
invokestatic sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.versionMatches:(Ljava/lang/Integer;I)Z
ifeq 8
7: aload 2
iload 5
aaload
areturn
8: StackMap locals: int java.lang.Integer javax.security.auth.kerberos.KerberosKey[] int int int
StackMap stack:
iinc 5 1
end local 3 StackMap locals: int java.lang.Integer javax.security.auth.kerberos.KerberosKey[] top int int
StackMap stack:
9: iload 5
aload 2
arraylength
if_icmplt 3
end local 5 10: iload 0
iconst_1
if_icmpeq 12
11: iload 0
iconst_3
if_icmpne 26
12: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 13: goto 25
14: StackMap locals: int
StackMap stack:
aload 2
iload 5
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getKeyType:()I
istore 3
start local 3 15: iload 3
iconst_1
if_icmpeq 17
16: iload 3
iconst_3
if_icmpne 24
17: StackMap locals: int java.lang.Integer javax.security.auth.kerberos.KerberosKey[] int int int
StackMap stack:
iconst_1
istore 4
18: aload 1
aload 2
iload 5
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getVersionNumber:()I
invokestatic sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.versionMatches:(Ljava/lang/Integer;I)Z
ifeq 24
19: new javax.security.auth.kerberos.KerberosKey
dup
aload 2
iload 5
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
20: aload 2
iload 5
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getEncoded:()[B
21: iload 0
22: aload 2
iload 5
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getVersionNumber:()I
23: invokespecial javax.security.auth.kerberos.KerberosKey.<init>:(Ljavax/security/auth/kerberos/KerberosPrincipal;[BII)V
areturn
24: StackMap locals:
StackMap stack:
iinc 5 1
end local 3 StackMap locals: int java.lang.Integer javax.security.auth.kerberos.KerberosKey[] top int int
StackMap stack:
25: iload 5
aload 2
arraylength
if_icmplt 14
end local 5 26: StackMap locals:
StackMap stack:
iload 4
ifeq 28
27: new sun.security.krb5.KrbException
dup
bipush 44
invokespecial sun.security.krb5.KrbException.<init>:(I)V
athrow
28: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 etype I
0 29 1 version Ljava/lang/Integer;
0 29 2 keys [Ljavax/security/auth/kerberos/KerberosKey;
4 9 3 ktype I
15 25 3 ktype I
1 29 4 etypeFound Z
2 10 5 i I
13 26 5 i I
Exceptions:
throws sun.security.krb5.KrbException
MethodParameters:
Name Flags
etype
version
keys
public java.security.Principal getPeerPrincipal();
descriptor: ()Ljava/security/Principal;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.getPeerPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.security.Principal getLocalPrincipal();
descriptor: ()Ljava/security/Principal;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual sun.security.ssl.krb5.KerberosClientKeyExchangeImpl.getLocalPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "KerberosClientKeyExchangeImpl.java"
NestMembers:
sun.security.ssl.krb5.KerberosClientKeyExchangeImpl$1 sun.security.ssl.krb5.KerberosClientKeyExchangeImpl$2
InnerClasses:
sun.security.ssl.krb5.KerberosClientKeyExchangeImpl$1
sun.security.ssl.krb5.KerberosClientKeyExchangeImpl$2