public class sun.security.krb5.KrbTgsRep extends sun.security.krb5.KrbKdcRep
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.krb5.KrbTgsRep
  super_class: sun.security.krb5.KrbKdcRep
{
  private sun.security.krb5.internal.TGSRep rep;
    descriptor: Lsun/security/krb5/internal/TGSRep;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.krb5.Credentials creds;
    descriptor: Lsun/security/krb5/Credentials;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.krb5.internal.Ticket secondTicket;
    descriptor: Lsun/security/krb5/internal/Ticket;
    flags: (0x0002) ACC_PRIVATE

  void <init>(byte[], sun.security.krb5.KrbTgsReq);
    descriptor: ([BLsun/security/krb5/KrbTgsReq;)V
    flags: (0x0000) 
    Code:
      stack=15, locals=11, args_size=3
        start local 0 // sun.security.krb5.KrbTgsRep this
        start local 1 // byte[] ibuf
        start local 2 // sun.security.krb5.KrbTgsReq tgsReq
         0: .line 48
            aload 0 /* this */
            invokespecial sun.security.krb5.KrbKdcRep.<init>:()V
         1: .line 50
            new sun.security.util.DerValue
            dup
            aload 1 /* ibuf */
            invokespecial sun.security.util.DerValue.<init>:([B)V
            astore 3 /* ref */
        start local 3 // sun.security.util.DerValue ref
         2: .line 51
            aload 2 /* tgsReq */
            invokevirtual sun.security.krb5.KrbTgsReq.getMessage:()Lsun/security/krb5/internal/TGSReq;
            astore 4 /* req */
        start local 4 // sun.security.krb5.internal.TGSReq req
         3: .line 52
            aconst_null
            astore 5 /* rep */
        start local 5 // sun.security.krb5.internal.TGSRep rep
         4: .line 54
            new sun.security.krb5.internal.TGSRep
            dup
            aload 3 /* ref */
            invokespecial sun.security.krb5.internal.TGSRep.<init>:(Lsun/security/util/DerValue;)V
            astore 5 /* rep */
         5: .line 55
            goto 21
      StackMap locals: sun.security.krb5.KrbTgsRep byte[] sun.security.krb5.KrbTgsReq sun.security.util.DerValue sun.security.krb5.internal.TGSReq sun.security.krb5.internal.TGSRep
      StackMap stack: sun.security.krb5.Asn1Exception
         6: astore 6 /* e */
        start local 6 // sun.security.krb5.Asn1Exception e
         7: .line 56
            aconst_null
            astore 5 /* rep */
         8: .line 57
            new sun.security.krb5.internal.KRBError
            dup
            aload 3 /* ref */
            invokespecial sun.security.krb5.internal.KRBError.<init>:(Lsun/security/util/DerValue;)V
            astore 7 /* err */
        start local 7 // sun.security.krb5.internal.KRBError err
         9: .line 58
            aload 7 /* err */
            invokevirtual sun.security.krb5.internal.KRBError.getErrorString:()Ljava/lang/String;
            astore 8 /* errStr */
        start local 8 // java.lang.String errStr
        10: .line 59
            aconst_null
            astore 9 /* eText */
        start local 9 // java.lang.String eText
        11: .line 60
            aload 8 /* errStr */
            ifnull 15
            aload 8 /* errStr */
            invokevirtual java.lang.String.length:()I
            ifle 15
        12: .line 61
            aload 8 /* errStr */
            aload 8 /* errStr */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            ifne 14
        13: .line 62
            aload 8 /* errStr */
            iconst_0
            aload 8 /* errStr */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* eText */
            goto 15
        14: .line 64
      StackMap locals: sun.security.krb5.KrbTgsRep byte[] sun.security.krb5.KrbTgsReq sun.security.util.DerValue sun.security.krb5.internal.TGSReq sun.security.krb5.internal.TGSRep sun.security.krb5.Asn1Exception sun.security.krb5.internal.KRBError java.lang.String java.lang.String
      StackMap stack:
            aload 8 /* errStr */
            astore 9 /* eText */
        15: .line 67
      StackMap locals:
      StackMap stack:
            aload 9 /* eText */
            ifnonnull 18
        16: .line 69
            new sun.security.krb5.KrbException
            dup
            aload 7 /* err */
            invokevirtual sun.security.krb5.internal.KRBError.getErrorCode:()I
            invokespecial sun.security.krb5.KrbException.<init>:(I)V
            astore 10 /* ke */
        start local 10 // sun.security.krb5.KrbException ke
        17: .line 70
            goto 19
        end local 10 // sun.security.krb5.KrbException ke
        18: .line 72
      StackMap locals:
      StackMap stack:
            new sun.security.krb5.KrbException
            dup
            aload 7 /* err */
            invokevirtual sun.security.krb5.internal.KRBError.getErrorCode:()I
            aload 9 /* eText */
            invokespecial sun.security.krb5.KrbException.<init>:(ILjava/lang/String;)V
            astore 10 /* ke */
        start local 10 // sun.security.krb5.KrbException ke
        19: .line 74
      StackMap locals: sun.security.krb5.KrbException
      StackMap stack:
            aload 10 /* ke */
            aload 6 /* e */
            invokevirtual sun.security.krb5.KrbException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        20: .line 75
            aload 10 /* ke */
            athrow
        end local 10 // sun.security.krb5.KrbException ke
        end local 9 // java.lang.String eText
        end local 8 // java.lang.String errStr
        end local 7 // sun.security.krb5.internal.KRBError err
        end local 6 // sun.security.krb5.Asn1Exception e
        21: .line 77
      StackMap locals: sun.security.krb5.KrbTgsRep byte[] sun.security.krb5.KrbTgsReq sun.security.util.DerValue sun.security.krb5.internal.TGSReq sun.security.krb5.internal.TGSRep
      StackMap stack:
            aload 5 /* rep */
            getfield sun.security.krb5.internal.TGSRep.encPart:Lsun/security/krb5/EncryptedData;
            aload 2 /* tgsReq */
            getfield sun.security.krb5.KrbTgsReq.tgsReqKey:Lsun/security/krb5/EncryptionKey;
        22: .line 78
            aload 2 /* tgsReq */
            invokevirtual sun.security.krb5.KrbTgsReq.usedSubkey:()Z
            ifeq 23
            bipush 9
            goto 24
        23: .line 79
      StackMap locals: sun.security.krb5.KrbTgsRep byte[] sun.security.krb5.KrbTgsReq sun.security.util.DerValue sun.security.krb5.internal.TGSReq sun.security.krb5.internal.TGSRep
      StackMap stack: sun.security.krb5.EncryptedData sun.security.krb5.EncryptionKey
            bipush 8
        24: .line 77
      StackMap locals: sun.security.krb5.KrbTgsRep byte[] sun.security.krb5.KrbTgsReq sun.security.util.DerValue sun.security.krb5.internal.TGSReq sun.security.krb5.internal.TGSRep
      StackMap stack: sun.security.krb5.EncryptedData sun.security.krb5.EncryptionKey int
            invokevirtual sun.security.krb5.EncryptedData.decrypt:(Lsun/security/krb5/EncryptionKey;I)[B
            astore 6 /* enc_tgs_rep_bytes */
        start local 6 // byte[] enc_tgs_rep_bytes
        25: .line 81
            aload 5 /* rep */
            getfield sun.security.krb5.internal.TGSRep.encPart:Lsun/security/krb5/EncryptedData;
            aload 6 /* enc_tgs_rep_bytes */
            invokevirtual sun.security.krb5.EncryptedData.reset:([B)[B
            astore 7 /* enc_tgs_rep_part */
        start local 7 // byte[] enc_tgs_rep_part
        26: .line 82
            new sun.security.util.DerValue
            dup
            aload 7 /* enc_tgs_rep_part */
            invokespecial sun.security.util.DerValue.<init>:([B)V
            astore 3 /* ref */
        27: .line 83
            new sun.security.krb5.internal.EncTGSRepPart
            dup
            aload 3 /* ref */
            invokespecial sun.security.krb5.internal.EncTGSRepPart.<init>:(Lsun/security/util/DerValue;)V
            astore 8 /* enc_part */
        start local 8 // sun.security.krb5.internal.EncTGSRepPart enc_part
        28: .line 84
            aload 5 /* rep */
            aload 8 /* enc_part */
            putfield sun.security.krb5.internal.TGSRep.encKDCRepPart:Lsun/security/krb5/internal/EncKDCRepPart;
        29: .line 86
            iconst_0
            aload 4 /* req */
            aload 5 /* rep */
            aload 2 /* tgsReq */
            getfield sun.security.krb5.KrbTgsReq.tgsReqKey:Lsun/security/krb5/EncryptionKey;
            invokestatic sun.security.krb5.KrbTgsRep.check:(ZLsun/security/krb5/internal/KDCReq;Lsun/security/krb5/internal/KDCRep;Lsun/security/krb5/EncryptionKey;)V
        30: .line 88
            aload 2 /* tgsReq */
            invokevirtual sun.security.krb5.KrbTgsReq.getServerAlias:()Lsun/security/krb5/PrincipalName;
            astore 9 /* serverAlias */
        start local 9 // sun.security.krb5.PrincipalName serverAlias
        31: .line 89
            aload 9 /* serverAlias */
            ifnull 36
        32: .line 90
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.sname:Lsun/security/krb5/PrincipalName;
            astore 10 /* repSname */
        start local 10 // sun.security.krb5.PrincipalName repSname
        33: .line 91
            aload 9 /* serverAlias */
            aload 10 /* repSname */
            invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
            ifne 35
        34: .line 92
            aload 10 /* repSname */
            invokestatic sun.security.krb5.KrbTgsRep.isReferralSname:(Lsun/security/krb5/PrincipalName;)Z
            ifeq 36
        35: .line 93
      StackMap locals: sun.security.krb5.KrbTgsRep byte[] sun.security.krb5.KrbTgsReq sun.security.util.DerValue sun.security.krb5.internal.TGSReq sun.security.krb5.internal.TGSRep byte[] byte[] sun.security.krb5.internal.EncTGSRepPart sun.security.krb5.PrincipalName sun.security.krb5.PrincipalName
      StackMap stack:
            aconst_null
            astore 9 /* serverAlias */
        end local 10 // sun.security.krb5.PrincipalName repSname
        36: .line 97
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 10 /* clientAlias */
        start local 10 // sun.security.krb5.PrincipalName clientAlias
        37: .line 98
            aload 5 /* rep */
            getfield sun.security.krb5.internal.TGSRep.cname:Lsun/security/krb5/PrincipalName;
            aload 4 /* req */
            getfield sun.security.krb5.internal.TGSReq.reqBody:Lsun/security/krb5/internal/KDCReqBody;
            getfield sun.security.krb5.internal.KDCReqBody.cname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
            ifeq 39
        38: .line 101
            aload 2 /* tgsReq */
            invokevirtual sun.security.krb5.KrbTgsReq.getClientAlias:()Lsun/security/krb5/PrincipalName;
            astore 10 /* clientAlias */
        39: .line 104
      StackMap locals: sun.security.krb5.PrincipalName
      StackMap stack:
            aload 0 /* this */
            new sun.security.krb5.Credentials
            dup
            aload 5 /* rep */
            getfield sun.security.krb5.internal.TGSRep.ticket:Lsun/security/krb5/internal/Ticket;
        40: .line 105
            aload 5 /* rep */
            getfield sun.security.krb5.internal.TGSRep.cname:Lsun/security/krb5/PrincipalName;
        41: .line 106
            aload 10 /* clientAlias */
        42: .line 107
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.sname:Lsun/security/krb5/PrincipalName;
        43: .line 108
            aload 9 /* serverAlias */
        44: .line 109
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.key:Lsun/security/krb5/EncryptionKey;
        45: .line 110
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.flags:Lsun/security/krb5/internal/TicketFlags;
        46: .line 111
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.authtime:Lsun/security/krb5/internal/KerberosTime;
        47: .line 112
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.starttime:Lsun/security/krb5/internal/KerberosTime;
        48: .line 113
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.endtime:Lsun/security/krb5/internal/KerberosTime;
        49: .line 114
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.renewTill:Lsun/security/krb5/internal/KerberosTime;
        50: .line 115
            aload 8 /* enc_part */
            getfield sun.security.krb5.internal.EncTGSRepPart.caddr:Lsun/security/krb5/internal/HostAddresses;
            invokespecial sun.security.krb5.Credentials.<init>:(Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/TicketFlags;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/HostAddresses;)V
        51: .line 104
            putfield sun.security.krb5.KrbTgsRep.creds:Lsun/security/krb5/Credentials;
        52: .line 117
            aload 0 /* this */
            aload 5 /* rep */
            putfield sun.security.krb5.KrbTgsRep.rep:Lsun/security/krb5/internal/TGSRep;
        53: .line 118
            aload 0 /* this */
            aload 2 /* tgsReq */
            invokevirtual sun.security.krb5.KrbTgsReq.getSecondTicket:()Lsun/security/krb5/internal/Ticket;
            putfield sun.security.krb5.KrbTgsRep.secondTicket:Lsun/security/krb5/internal/Ticket;
        54: .line 119
            return
        end local 10 // sun.security.krb5.PrincipalName clientAlias
        end local 9 // sun.security.krb5.PrincipalName serverAlias
        end local 8 // sun.security.krb5.internal.EncTGSRepPart enc_part
        end local 7 // byte[] enc_tgs_rep_part
        end local 6 // byte[] enc_tgs_rep_bytes
        end local 5 // sun.security.krb5.internal.TGSRep rep
        end local 4 // sun.security.krb5.internal.TGSReq req
        end local 3 // sun.security.util.DerValue ref
        end local 2 // sun.security.krb5.KrbTgsReq tgsReq
        end local 1 // byte[] ibuf
        end local 0 // sun.security.krb5.KrbTgsRep this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   55     0               this  Lsun/security/krb5/KrbTgsRep;
            0   55     1               ibuf  [B
            0   55     2             tgsReq  Lsun/security/krb5/KrbTgsReq;
            2   55     3                ref  Lsun/security/util/DerValue;
            3   55     4                req  Lsun/security/krb5/internal/TGSReq;
            4   55     5                rep  Lsun/security/krb5/internal/TGSRep;
            7   21     6                  e  Lsun/security/krb5/Asn1Exception;
            9   21     7                err  Lsun/security/krb5/internal/KRBError;
           10   21     8             errStr  Ljava/lang/String;
           11   21     9              eText  Ljava/lang/String;
           17   18    10                 ke  Lsun/security/krb5/KrbException;
           19   21    10                 ke  Lsun/security/krb5/KrbException;
           25   55     6  enc_tgs_rep_bytes  [B
           26   55     7   enc_tgs_rep_part  [B
           28   55     8           enc_part  Lsun/security/krb5/internal/EncTGSRepPart;
           31   55     9        serverAlias  Lsun/security/krb5/PrincipalName;
           33   36    10           repSname  Lsun/security/krb5/PrincipalName;
           37   55    10        clientAlias  Lsun/security/krb5/PrincipalName;
      Exception table:
        from    to  target  type
           4     5       6  Class sun.security.krb5.Asn1Exception
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException
    MethodParameters:
        Name  Flags
      ibuf    
      tgsReq  

  public sun.security.krb5.Credentials getCreds();
    descriptor: ()Lsun/security/krb5/Credentials;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbTgsRep this
         0: .line 125
            aload 0 /* this */
            getfield sun.security.krb5.KrbTgsRep.creds:Lsun/security/krb5/Credentials;
            areturn
        end local 0 // sun.security.krb5.KrbTgsRep this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/KrbTgsRep;

  sun.security.krb5.internal.ccache.Credentials setCredentials();
    descriptor: ()Lsun/security/krb5/internal/ccache/Credentials;
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbTgsRep this
         0: .line 129
            new sun.security.krb5.internal.ccache.Credentials
            dup
            aload 0 /* this */
            getfield sun.security.krb5.KrbTgsRep.rep:Lsun/security/krb5/internal/TGSRep;
            aload 0 /* this */
            getfield sun.security.krb5.KrbTgsRep.secondTicket:Lsun/security/krb5/internal/Ticket;
            invokespecial sun.security.krb5.internal.ccache.Credentials.<init>:(Lsun/security/krb5/internal/KDCRep;Lsun/security/krb5/internal/Ticket;)V
            areturn
        end local 0 // sun.security.krb5.KrbTgsRep this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/KrbTgsRep;

  private static boolean isReferralSname(sun.security.krb5.PrincipalName);
    descriptor: (Lsun/security/krb5/PrincipalName;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.krb5.PrincipalName sname
         0: .line 133
            aload 0 /* sname */
            ifnull 8
         1: .line 134
            aload 0 /* sname */
            invokevirtual sun.security.krb5.PrincipalName.getNameStrings:()[Ljava/lang/String;
            astore 1 /* snameStrings */
        start local 1 // java.lang.String[] snameStrings
         2: .line 135
            aload 1 /* snameStrings */
            arraylength
            iconst_2
            if_icmpne 8
         3: .line 136
            aload 1 /* snameStrings */
            iconst_0
            aaload
         4: .line 137
            ldc "krbtgt"
         5: .line 136
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
         6: .line 137
            ifeq 8
         7: .line 138
            iconst_1
            ireturn
        end local 1 // java.lang.String[] snameStrings
         8: .line 141
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // sun.security.krb5.PrincipalName sname
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0         sname  Lsun/security/krb5/PrincipalName;
            2    8     1  snameStrings  [Ljava/lang/String;
    MethodParameters:
       Name  Flags
      sname  
}
SourceFile: "KrbTgsRep.java"