class sun.security.jgss.krb5.InitSecContextToken extends sun.security.jgss.krb5.InitialToken
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.security.jgss.krb5.InitSecContextToken
  super_class: sun.security.jgss.krb5.InitialToken
{
  private sun.security.krb5.KrbApReq apReq;
    descriptor: Lsun/security/krb5/KrbApReq;
    flags: (0x0002) ACC_PRIVATE

  void <init>(sun.security.jgss.krb5.Krb5Context, sun.security.krb5.Credentials, sun.security.krb5.Credentials);
    descriptor: (Lsun/security/jgss/krb5/Krb5Context;Lsun/security/krb5/Credentials;Lsun/security/krb5/Credentials;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=10, args_size=4
        start local 0 // sun.security.jgss.krb5.InitSecContextToken this
        start local 1 // sun.security.jgss.krb5.Krb5Context context
        start local 2 // sun.security.krb5.Credentials tgt
        start local 3 // sun.security.krb5.Credentials serviceTicket
         0: .line 49
            aload 0 /* this */
            invokespecial sun.security.jgss.krb5.InitialToken.<init>:()V
         1: .line 38
            aload 0 /* this */
            aconst_null
            putfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
         2: .line 54
            aload 1 /* context */
            invokevirtual sun.security.jgss.krb5.Krb5Context.getMutualAuthState:()Z
            istore 4 /* mutualRequired */
        start local 4 // boolean mutualRequired
         3: .line 55
            iconst_1
            istore 5 /* useSubkey */
        start local 5 // boolean useSubkey
         4: .line 56
            iconst_1
            istore 6 /* useSequenceNumber */
        start local 6 // boolean useSequenceNumber
         5: .line 59
            new sun.security.jgss.krb5.InitialToken$OverloadedChecksum
            dup
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* tgt */
            aload 3 /* serviceTicket */
            invokespecial sun.security.jgss.krb5.InitialToken$OverloadedChecksum.<init>:(Lsun/security/jgss/krb5/InitialToken;Lsun/security/jgss/krb5/Krb5Context;Lsun/security/krb5/Credentials;Lsun/security/krb5/Credentials;)V
         6: .line 58
            astore 7 /* gssChecksum */
        start local 7 // sun.security.jgss.krb5.InitialToken$OverloadedChecksum gssChecksum
         7: .line 61
            aload 7 /* gssChecksum */
            invokevirtual sun.security.jgss.krb5.InitialToken$OverloadedChecksum.getChecksum:()Lsun/security/krb5/Checksum;
            astore 8 /* checksum */
        start local 8 // sun.security.krb5.Checksum checksum
         8: .line 63
            aload 1 /* context */
            aload 3 /* serviceTicket */
            invokevirtual sun.security.krb5.Credentials.getFlags:()[Z
            invokevirtual sun.security.jgss.krb5.Krb5Context.setTktFlags:([Z)V
         9: .line 64
            aload 1 /* context */
        10: .line 65
            new sun.security.krb5.internal.KerberosTime
            dup
            aload 3 /* serviceTicket */
            invokevirtual sun.security.krb5.Credentials.getAuthTime:()Ljava/util/Date;
            invokespecial sun.security.krb5.internal.KerberosTime.<init>:(Ljava/util/Date;)V
            invokevirtual sun.security.krb5.internal.KerberosTime.toString:()Ljava/lang/String;
        11: .line 64
            invokevirtual sun.security.jgss.krb5.Krb5Context.setAuthTime:(Ljava/lang/String;)V
        12: .line 66
            aload 0 /* this */
            new sun.security.krb5.KrbApReq
            dup
            aload 3 /* serviceTicket */
        13: .line 67
            iload 4 /* mutualRequired */
        14: .line 68
            iload 5 /* useSubkey */
        15: .line 69
            iload 6 /* useSequenceNumber */
        16: .line 70
            aload 8 /* checksum */
            invokespecial sun.security.krb5.KrbApReq.<init>:(Lsun/security/krb5/Credentials;ZZZLsun/security/krb5/Checksum;)V
        17: .line 66
            putfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
        18: .line 72
            aload 1 /* context */
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getSeqNumber:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual sun.security.jgss.krb5.Krb5Context.resetMySequenceNumber:(I)V
        19: .line 74
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getSubKey:()Lsun/security/krb5/EncryptionKey;
            astore 9 /* subKey */
        start local 9 // sun.security.krb5.EncryptionKey subKey
        20: .line 75
            aload 9 /* subKey */
            ifnull 22
        21: .line 76
            aload 1 /* context */
            iconst_1
            aload 9 /* subKey */
            invokevirtual sun.security.jgss.krb5.Krb5Context.setKey:(ILsun/security/krb5/EncryptionKey;)V
            goto 23
        22: .line 78
      StackMap locals: sun.security.jgss.krb5.InitSecContextToken sun.security.jgss.krb5.Krb5Context sun.security.krb5.Credentials sun.security.krb5.Credentials int int int sun.security.jgss.krb5.InitialToken$OverloadedChecksum sun.security.krb5.Checksum sun.security.krb5.EncryptionKey
      StackMap stack:
            aload 1 /* context */
            iconst_0
            aload 3 /* serviceTicket */
            invokevirtual sun.security.krb5.Credentials.getSessionKey:()Lsun/security/krb5/EncryptionKey;
            invokevirtual sun.security.jgss.krb5.Krb5Context.setKey:(ILsun/security/krb5/EncryptionKey;)V
        23: .line 80
      StackMap locals:
      StackMap stack:
            iload 4 /* mutualRequired */
            ifne 25
        24: .line 81
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.jgss.krb5.Krb5Context.resetPeerSequenceNumber:(I)V
        25: .line 82
      StackMap locals:
      StackMap stack:
            return
        end local 9 // sun.security.krb5.EncryptionKey subKey
        end local 8 // sun.security.krb5.Checksum checksum
        end local 7 // sun.security.jgss.krb5.InitialToken$OverloadedChecksum gssChecksum
        end local 6 // boolean useSequenceNumber
        end local 5 // boolean useSubkey
        end local 4 // boolean mutualRequired
        end local 3 // sun.security.krb5.Credentials serviceTicket
        end local 2 // sun.security.krb5.Credentials tgt
        end local 1 // sun.security.jgss.krb5.Krb5Context context
        end local 0 // sun.security.jgss.krb5.InitSecContextToken this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   26     0               this  Lsun/security/jgss/krb5/InitSecContextToken;
            0   26     1            context  Lsun/security/jgss/krb5/Krb5Context;
            0   26     2                tgt  Lsun/security/krb5/Credentials;
            0   26     3      serviceTicket  Lsun/security/krb5/Credentials;
            3   26     4     mutualRequired  Z
            4   26     5          useSubkey  Z
            5   26     6  useSequenceNumber  Z
            7   26     7        gssChecksum  Lsun/security/jgss/krb5/InitialToken$OverloadedChecksum;
            8   26     8           checksum  Lsun/security/krb5/Checksum;
           20   26     9             subKey  Lsun/security/krb5/EncryptionKey;
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException, org.ietf.jgss.GSSException
    MethodParameters:
               Name  Flags
      context        
      tgt            
      serviceTicket  

  void <init>(sun.security.jgss.krb5.Krb5Context, sun.security.jgss.krb5.Krb5AcceptCredential, java.io.InputStream);
    descriptor: (Lsun/security/jgss/krb5/Krb5Context;Lsun/security/jgss/krb5/Krb5AcceptCredential;Ljava/io/InputStream;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=14, args_size=4
        start local 0 // sun.security.jgss.krb5.InitSecContextToken this
        start local 1 // sun.security.jgss.krb5.Krb5Context context
        start local 2 // sun.security.jgss.krb5.Krb5AcceptCredential cred
        start local 3 // java.io.InputStream is
         0: .line 88
            aload 0 /* this */
            invokespecial sun.security.jgss.krb5.InitialToken.<init>:()V
         1: .line 38
            aload 0 /* this */
            aconst_null
            putfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
         2: .line 92
            aload 3 /* is */
            invokevirtual java.io.InputStream.read:()I
            bipush 8
            ishl
            aload 3 /* is */
            invokevirtual java.io.InputStream.read:()I
            ior
            istore 4 /* tokenId */
        start local 4 // int tokenId
         3: .line 94
            iload 4 /* tokenId */
            sipush 256
            if_icmpeq 7
         4: .line 95
            new org.ietf.jgss.GSSException
            dup
            bipush 10
            iconst_m1
         5: .line 96
            ldc "AP_REQ token id does not match!"
         6: .line 95
            invokespecial org.ietf.jgss.GSSException.<init>:(IILjava/lang/String;)V
            athrow
         7: .line 100
      StackMap locals: sun.security.jgss.krb5.InitSecContextToken sun.security.jgss.krb5.Krb5Context sun.security.jgss.krb5.Krb5AcceptCredential java.io.InputStream int
      StackMap stack:
            new sun.security.util.DerValue
            dup
            aload 3 /* is */
            invokespecial sun.security.util.DerValue.<init>:(Ljava/io/InputStream;)V
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
         8: .line 99
            astore 5 /* apReqBytes */
        start local 5 // byte[] apReqBytes
         9: .line 103
            aconst_null
            astore 6 /* addr */
        start local 6 // java.net.InetAddress addr
        10: .line 104
            aload 1 /* context */
            invokevirtual sun.security.jgss.krb5.Krb5Context.getChannelBinding:()Lorg/ietf/jgss/ChannelBinding;
            ifnull 12
        11: .line 105
            aload 1 /* context */
            invokevirtual sun.security.jgss.krb5.Krb5Context.getChannelBinding:()Lorg/ietf/jgss/ChannelBinding;
            invokevirtual org.ietf.jgss.ChannelBinding.getInitiatorAddress:()Ljava/net/InetAddress;
            astore 6 /* addr */
        12: .line 107
      StackMap locals: byte[] java.net.InetAddress
      StackMap stack:
            aload 0 /* this */
            new sun.security.krb5.KrbApReq
            dup
            aload 5 /* apReqBytes */
            aload 2 /* cred */
            aload 6 /* addr */
            invokespecial sun.security.krb5.KrbApReq.<init>:([BLsun/security/jgss/krb5/Krb5AcceptCredential;Ljava/net/InetAddress;)V
            putfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
        13: .line 110
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getCreds:()Lsun/security/krb5/Credentials;
            invokevirtual sun.security.krb5.Credentials.getSessionKey:()Lsun/security/krb5/EncryptionKey;
            astore 7 /* sessionKey */
        start local 7 // sun.security.krb5.EncryptionKey sessionKey
        14: .line 117
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getSubKey:()Lsun/security/krb5/EncryptionKey;
            astore 8 /* subKey */
        start local 8 // sun.security.krb5.EncryptionKey subKey
        15: .line 118
            aload 8 /* subKey */
            ifnull 18
        16: .line 119
            aload 1 /* context */
            iconst_1
            aload 8 /* subKey */
            invokevirtual sun.security.jgss.krb5.Krb5Context.setKey:(ILsun/security/krb5/EncryptionKey;)V
        17: .line 124
            goto 19
        18: .line 125
      StackMap locals: sun.security.krb5.EncryptionKey sun.security.krb5.EncryptionKey
      StackMap stack:
            aload 1 /* context */
            iconst_0
            aload 7 /* sessionKey */
            invokevirtual sun.security.jgss.krb5.Krb5Context.setKey:(ILsun/security/krb5/EncryptionKey;)V
        19: .line 129
      StackMap locals:
      StackMap stack:
            new sun.security.jgss.krb5.InitialToken$OverloadedChecksum
            dup
            aload 0 /* this */
        20: .line 130
            aload 1 /* context */
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getChecksum:()Lsun/security/krb5/Checksum;
            aload 7 /* sessionKey */
            aload 8 /* subKey */
        21: .line 129
            invokespecial sun.security.jgss.krb5.InitialToken$OverloadedChecksum.<init>:(Lsun/security/jgss/krb5/InitialToken;Lsun/security/jgss/krb5/Krb5Context;Lsun/security/krb5/Checksum;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/EncryptionKey;)V
            astore 9 /* gssChecksum */
        start local 9 // sun.security.jgss.krb5.InitialToken$OverloadedChecksum gssChecksum
        22: .line 131
            aload 9 /* gssChecksum */
            aload 1 /* context */
            invokevirtual sun.security.jgss.krb5.InitialToken$OverloadedChecksum.setContextFlags:(Lsun/security/jgss/krb5/Krb5Context;)V
        23: .line 132
            aload 9 /* gssChecksum */
            invokevirtual sun.security.jgss.krb5.InitialToken$OverloadedChecksum.getDelegatedCreds:()Lsun/security/krb5/Credentials;
            astore 10 /* delegCred */
        start local 10 // sun.security.krb5.Credentials delegCred
        24: .line 133
            aload 10 /* delegCred */
            ifnull 30
        25: .line 136
            aload 1 /* context */
            invokevirtual sun.security.jgss.krb5.Krb5Context.getSrcName:()Lsun/security/jgss/spi/GSSNameSpi;
            checkcast sun.security.jgss.krb5.Krb5NameElement
        26: .line 137
            aload 10 /* delegCred */
        27: .line 135
            invokestatic sun.security.jgss.krb5.Krb5InitCredential.getInstance:(Lsun/security/jgss/krb5/Krb5NameElement;Lsun/security/krb5/Credentials;)Lsun/security/jgss/krb5/Krb5InitCredential;
        28: .line 134
            astore 11 /* credElement */
        start local 11 // sun.security.jgss.krb5.Krb5CredElement credElement
        29: .line 138
            aload 1 /* context */
            aload 11 /* credElement */
            invokevirtual sun.security.jgss.krb5.Krb5Context.setDelegCred:(Lsun/security/jgss/krb5/Krb5CredElement;)V
        end local 11 // sun.security.jgss.krb5.Krb5CredElement credElement
        30: .line 141
      StackMap locals: sun.security.jgss.krb5.InitialToken$OverloadedChecksum sun.security.krb5.Credentials
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getSeqNumber:()Ljava/lang/Integer;
            astore 11 /* apReqSeqNumber */
        start local 11 // java.lang.Integer apReqSeqNumber
        31: .line 142
            aload 11 /* apReqSeqNumber */
            ifnull 33
        32: .line 143
            aload 11 /* apReqSeqNumber */
            invokevirtual java.lang.Integer.intValue:()I
            goto 34
        33: .line 144
      StackMap locals: java.lang.Integer
      StackMap stack:
            iconst_0
        34: .line 142
      StackMap locals:
      StackMap stack: int
            istore 12 /* peerSeqNumber */
        start local 12 // int peerSeqNumber
        35: .line 145
            aload 1 /* context */
            iload 12 /* peerSeqNumber */
            invokevirtual sun.security.jgss.krb5.Krb5Context.resetPeerSequenceNumber:(I)V
        36: .line 146
            aload 1 /* context */
            invokevirtual sun.security.jgss.krb5.Krb5Context.getMutualAuthState:()Z
            ifne 38
        37: .line 149
            aload 1 /* context */
            iload 12 /* peerSeqNumber */
            invokevirtual sun.security.jgss.krb5.Krb5Context.resetMySequenceNumber:(I)V
        38: .line 150
      StackMap locals: int
      StackMap stack:
            aload 1 /* context */
        39: .line 151
            new sun.security.krb5.internal.KerberosTime
            dup
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getCreds:()Lsun/security/krb5/Credentials;
            invokevirtual sun.security.krb5.Credentials.getAuthTime:()Ljava/util/Date;
            invokespecial sun.security.krb5.internal.KerberosTime.<init>:(Ljava/util/Date;)V
            invokevirtual sun.security.krb5.internal.KerberosTime.toString:()Ljava/lang/String;
        40: .line 150
            invokevirtual sun.security.jgss.krb5.Krb5Context.setAuthTime:(Ljava/lang/String;)V
        41: .line 152
            aload 1 /* context */
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getCreds:()Lsun/security/krb5/Credentials;
            invokevirtual sun.security.krb5.Credentials.getFlags:()[Z
            invokevirtual sun.security.jgss.krb5.Krb5Context.setTktFlags:([Z)V
        42: .line 153
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getCreds:()Lsun/security/krb5/Credentials;
            invokevirtual sun.security.krb5.Credentials.getAuthzData:()Lsun/security/krb5/internal/AuthorizationData;
            astore 13 /* ad */
        start local 13 // sun.security.krb5.internal.AuthorizationData ad
        43: .line 154
            aload 1 /* context */
            aload 13 /* ad */
            invokevirtual sun.security.jgss.krb5.Krb5Context.setAuthzData:(Lsun/security/krb5/internal/AuthorizationData;)V
        44: .line 155
            return
        end local 13 // sun.security.krb5.internal.AuthorizationData ad
        end local 12 // int peerSeqNumber
        end local 11 // java.lang.Integer apReqSeqNumber
        end local 10 // sun.security.krb5.Credentials delegCred
        end local 9 // sun.security.jgss.krb5.InitialToken$OverloadedChecksum gssChecksum
        end local 8 // sun.security.krb5.EncryptionKey subKey
        end local 7 // sun.security.krb5.EncryptionKey sessionKey
        end local 6 // java.net.InetAddress addr
        end local 5 // byte[] apReqBytes
        end local 4 // int tokenId
        end local 3 // java.io.InputStream is
        end local 2 // sun.security.jgss.krb5.Krb5AcceptCredential cred
        end local 1 // sun.security.jgss.krb5.Krb5Context context
        end local 0 // sun.security.jgss.krb5.InitSecContextToken this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   45     0            this  Lsun/security/jgss/krb5/InitSecContextToken;
            0   45     1         context  Lsun/security/jgss/krb5/Krb5Context;
            0   45     2            cred  Lsun/security/jgss/krb5/Krb5AcceptCredential;
            0   45     3              is  Ljava/io/InputStream;
            3   45     4         tokenId  I
            9   45     5      apReqBytes  [B
           10   45     6            addr  Ljava/net/InetAddress;
           14   45     7      sessionKey  Lsun/security/krb5/EncryptionKey;
           15   45     8          subKey  Lsun/security/krb5/EncryptionKey;
           22   45     9     gssChecksum  Lsun/security/jgss/krb5/InitialToken$OverloadedChecksum;
           24   45    10       delegCred  Lsun/security/krb5/Credentials;
           29   30    11     credElement  Lsun/security/jgss/krb5/Krb5CredElement;
           31   45    11  apReqSeqNumber  Ljava/lang/Integer;
           35   45    12   peerSeqNumber  I
           43   45    13              ad  Lsun/security/krb5/internal/AuthorizationData;
    Exceptions:
      throws java.io.IOException, org.ietf.jgss.GSSException, sun.security.krb5.KrbException
    MethodParameters:
         Name  Flags
      context  
      cred     
      is       

  public final sun.security.krb5.KrbApReq getKrbApReq();
    descriptor: ()Lsun/security/krb5/KrbApReq;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.jgss.krb5.InitSecContextToken this
         0: .line 158
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            areturn
        end local 0 // sun.security.jgss.krb5.InitSecContextToken this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/jgss/krb5/InitSecContextToken;

  public final byte[] encode();
    descriptor: ()[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // sun.security.jgss.krb5.InitSecContextToken this
         0: .line 162
            aload 0 /* this */
            getfield sun.security.jgss.krb5.InitSecContextToken.apReq:Lsun/security/krb5/KrbApReq;
            invokevirtual sun.security.krb5.KrbApReq.getMessage:()[B
            astore 1 /* apReqBytes */
        start local 1 // byte[] apReqBytes
         1: .line 163
            iconst_2
            aload 1 /* apReqBytes */
            arraylength
            iadd
            newarray 8
            astore 2 /* retVal */
        start local 2 // byte[] retVal
         2: .line 164
            sipush 256
            aload 2 /* retVal */
            iconst_0
            invokestatic sun.security.jgss.krb5.InitSecContextToken.writeInt:(I[BI)I
            pop
         3: .line 165
            aload 1 /* apReqBytes */
            iconst_0
            aload 2 /* retVal */
            iconst_2
            aload 1 /* apReqBytes */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 168
            aload 2 /* retVal */
            areturn
        end local 2 // byte[] retVal
        end local 1 // byte[] apReqBytes
        end local 0 // sun.security.jgss.krb5.InitSecContextToken this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lsun/security/jgss/krb5/InitSecContextToken;
            1    5     1  apReqBytes  [B
            2    5     2      retVal  [B
    Exceptions:
      throws java.io.IOException
}
SourceFile: "InitSecContextToken.java"
InnerClasses:
  protected OverloadedChecksum = sun.security.jgss.krb5.InitialToken$OverloadedChecksum of sun.security.jgss.krb5.InitialToken