public class sun.security.krb5.KrbApReq
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.krb5.KrbApReq
  super_class: java.lang.Object
{
  private byte[] obuf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

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

  private int cusec;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private static sun.security.krb5.internal.rcache.CacheTable table;
    descriptor: Lsun/security/krb5/internal/rcache/CacheTable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean DEBUG;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 54
            new sun.security.krb5.internal.rcache.CacheTable
            dup
            invokespecial sun.security.krb5.internal.rcache.CacheTable.<init>:()V
            putstatic sun.security.krb5.KrbApReq.table:Lsun/security/krb5/internal/rcache/CacheTable;
         1: .line 55
            getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
            putstatic sun.security.krb5.KrbApReq.DEBUG:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(sun.security.krb5.Credentials, boolean, boolean, boolean, sun.security.krb5.Checksum);
    descriptor: (Lsun/security/krb5/Credentials;ZZZLsun/security/krb5/Checksum;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=6
        start local 0 // sun.security.krb5.KrbApReq this
        start local 1 // sun.security.krb5.Credentials tgsCred
        start local 2 // boolean mutualRequired
        start local 3 // boolean useSubKey
        start local 4 // boolean useSeqNumber
        start local 5 // sun.security.krb5.Checksum cksum
         0: .line 96
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            iload 2 /* mutualRequired */
            ifeq 3
         2: .line 104
            new sun.security.krb5.internal.APOptions
            dup
            iconst_2
            invokespecial sun.security.krb5.internal.APOptions.<init>:(I)V
            goto 4
         3: .line 105
      StackMap locals: sun.security.krb5.KrbApReq sun.security.krb5.Credentials int int int sun.security.krb5.Checksum
      StackMap stack:
            new sun.security.krb5.internal.APOptions
            dup
            invokespecial sun.security.krb5.internal.APOptions.<init>:()V
         4: .line 103
      StackMap locals:
      StackMap stack: sun.security.krb5.internal.APOptions
            astore 6 /* apOptions */
        start local 6 // sun.security.krb5.internal.APOptions apOptions
         5: .line 106
            getstatic sun.security.krb5.KrbApReq.DEBUG:Z
            ifeq 7
         6: .line 107
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ">>> KrbApReq: APOptions are "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* apOptions */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 109
      StackMap locals: sun.security.krb5.internal.APOptions
      StackMap stack:
            iload 3 /* useSubKey */
            ifeq 9
         8: .line 110
            new sun.security.krb5.EncryptionKey
            dup
            aload 1 /* tgsCred */
            invokevirtual sun.security.krb5.Credentials.getSessionKey:()Lsun/security/krb5/EncryptionKey;
            invokespecial sun.security.krb5.EncryptionKey.<init>:(Lsun/security/krb5/EncryptionKey;)V
            goto 10
         9: .line 111
      StackMap locals:
      StackMap stack:
            aconst_null
        10: .line 109
      StackMap locals:
      StackMap stack: sun.security.krb5.EncryptionKey
            astore 7 /* subKey */
        start local 7 // sun.security.krb5.EncryptionKey subKey
        11: .line 113
            new sun.security.krb5.internal.LocalSeqNumber
            dup
            invokespecial sun.security.krb5.internal.LocalSeqNumber.<init>:()V
            astore 8 /* seqNum */
        start local 8 // sun.security.krb5.internal.SeqNumber seqNum
        12: .line 115
            aload 0 /* this */
            aload 6 /* apOptions */
        13: .line 116
            aload 1 /* tgsCred */
        14: .line 117
            aload 5 /* cksum */
        15: .line 118
            aload 7 /* subKey */
        16: .line 119
            aload 8 /* seqNum */
        17: .line 120
            aconst_null
        18: .line 121
            bipush 11
        19: .line 115
            invokevirtual sun.security.krb5.KrbApReq.init:(Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/Checksum;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/SeqNumber;Lsun/security/krb5/internal/AuthorizationData;I)V
        20: .line 123
            return
        end local 8 // sun.security.krb5.internal.SeqNumber seqNum
        end local 7 // sun.security.krb5.EncryptionKey subKey
        end local 6 // sun.security.krb5.internal.APOptions apOptions
        end local 5 // sun.security.krb5.Checksum cksum
        end local 4 // boolean useSeqNumber
        end local 3 // boolean useSubKey
        end local 2 // boolean mutualRequired
        end local 1 // sun.security.krb5.Credentials tgsCred
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lsun/security/krb5/KrbApReq;
            0   21     1         tgsCred  Lsun/security/krb5/Credentials;
            0   21     2  mutualRequired  Z
            0   21     3       useSubKey  Z
            0   21     4    useSeqNumber  Z
            0   21     5           cksum  Lsun/security/krb5/Checksum;
            5   21     6       apOptions  Lsun/security/krb5/internal/APOptions;
           11   21     7          subKey  Lsun/security/krb5/EncryptionKey;
           12   21     8          seqNum  Lsun/security/krb5/internal/SeqNumber;
    Exceptions:
      throws sun.security.krb5.Asn1Exception, sun.security.krb5.KrbCryptoException, sun.security.krb5.KrbException, java.io.IOException
    MethodParameters:
                Name  Flags
      tgsCred         
      mutualRequired  
      useSubKey       
      useSeqNumber    
      cksum           

  public void <init>(byte[], sun.security.krb5.EncryptionKey[], java.net.InetAddress);
    descriptor: ([B[Lsun/security/krb5/EncryptionKey;Ljava/net/InetAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.security.krb5.KrbApReq this
        start local 1 // byte[] message
        start local 2 // sun.security.krb5.EncryptionKey[] keys
        start local 3 // java.net.InetAddress initiator
         0: .line 136
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 140
            aload 0 /* this */
            aload 1 /* message */
            putfield sun.security.krb5.KrbApReq.obuf:[B
         2: .line 141
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnonnull 4
         3: .line 142
            aload 0 /* this */
            invokevirtual sun.security.krb5.KrbApReq.decode:()V
         4: .line 143
      StackMap locals: sun.security.krb5.KrbApReq byte[] sun.security.krb5.EncryptionKey[] java.net.InetAddress
      StackMap stack:
            aload 0 /* this */
            aload 2 /* keys */
            aload 3 /* initiator */
            invokevirtual sun.security.krb5.KrbApReq.authenticate:([Lsun/security/krb5/EncryptionKey;Ljava/net/InetAddress;)V
         5: .line 144
            return
        end local 3 // java.net.InetAddress initiator
        end local 2 // sun.security.krb5.EncryptionKey[] keys
        end local 1 // byte[] message
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/security/krb5/KrbApReq;
            0    6     1    message  [B
            0    6     2       keys  [Lsun/security/krb5/EncryptionKey;
            0    6     3  initiator  Ljava/net/InetAddress;
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException
    MethodParameters:
           Name  Flags
      message    
      keys       
      initiator  

  void <init>(sun.security.krb5.internal.APOptions, sun.security.krb5.internal.Ticket, sun.security.krb5.EncryptionKey, sun.security.krb5.PrincipalName, sun.security.krb5.Checksum, sun.security.krb5.internal.KerberosTime, sun.security.krb5.EncryptionKey, sun.security.krb5.internal.SeqNumber, sun.security.krb5.internal.AuthorizationData);
    descriptor: (Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Checksum;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/SeqNumber;Lsun/security/krb5/internal/AuthorizationData;)V
    flags: (0x0000) 
    Code:
      stack=11, locals=10, args_size=10
        start local 0 // sun.security.krb5.KrbApReq this
        start local 1 // sun.security.krb5.internal.APOptions apOptions
        start local 2 // sun.security.krb5.internal.Ticket ticket
        start local 3 // sun.security.krb5.EncryptionKey key
        start local 4 // sun.security.krb5.PrincipalName cname
        start local 5 // sun.security.krb5.Checksum cksum
        start local 6 // sun.security.krb5.internal.KerberosTime ctime
        start local 7 // sun.security.krb5.EncryptionKey subKey
        start local 8 // sun.security.krb5.internal.SeqNumber seqNumber
        start local 9 // sun.security.krb5.internal.AuthorizationData authorizationData
         0: .line 178
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 190
            aload 0 /* this */
            aload 1 /* apOptions */
            aload 2 /* ticket */
            aload 3 /* key */
            aload 4 /* cname */
         2: .line 191
            aload 5 /* cksum */
            aload 6 /* ctime */
            aload 7 /* subKey */
            aload 8 /* seqNumber */
            aload 9 /* authorizationData */
         3: .line 192
            bipush 7
         4: .line 190
            invokevirtual sun.security.krb5.KrbApReq.init:(Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Checksum;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/SeqNumber;Lsun/security/krb5/internal/AuthorizationData;I)V
         5: .line 194
            return
        end local 9 // sun.security.krb5.internal.AuthorizationData authorizationData
        end local 8 // sun.security.krb5.internal.SeqNumber seqNumber
        end local 7 // sun.security.krb5.EncryptionKey subKey
        end local 6 // sun.security.krb5.internal.KerberosTime ctime
        end local 5 // sun.security.krb5.Checksum cksum
        end local 4 // sun.security.krb5.PrincipalName cname
        end local 3 // sun.security.krb5.EncryptionKey key
        end local 2 // sun.security.krb5.internal.Ticket ticket
        end local 1 // sun.security.krb5.internal.APOptions apOptions
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lsun/security/krb5/KrbApReq;
            0    6     1          apOptions  Lsun/security/krb5/internal/APOptions;
            0    6     2             ticket  Lsun/security/krb5/internal/Ticket;
            0    6     3                key  Lsun/security/krb5/EncryptionKey;
            0    6     4              cname  Lsun/security/krb5/PrincipalName;
            0    6     5              cksum  Lsun/security/krb5/Checksum;
            0    6     6              ctime  Lsun/security/krb5/internal/KerberosTime;
            0    6     7             subKey  Lsun/security/krb5/EncryptionKey;
            0    6     8          seqNumber  Lsun/security/krb5/internal/SeqNumber;
            0    6     9  authorizationData  Lsun/security/krb5/internal/AuthorizationData;
    Exceptions:
      throws sun.security.krb5.Asn1Exception, java.io.IOException, sun.security.krb5.internal.KdcErrException, sun.security.krb5.KrbCryptoException
    MethodParameters:
                   Name  Flags
      apOptions          
      ticket             
      key                
      cname              
      cksum              
      ctime              
      subKey             
      seqNumber          
      authorizationData  

  private void init(sun.security.krb5.internal.APOptions, sun.security.krb5.Credentials, sun.security.krb5.Checksum, sun.security.krb5.EncryptionKey, sun.security.krb5.internal.SeqNumber, sun.security.krb5.internal.AuthorizationData, int);
    descriptor: (Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/Checksum;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/SeqNumber;Lsun/security/krb5/internal/AuthorizationData;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=8, args_size=8
        start local 0 // sun.security.krb5.KrbApReq this
        start local 1 // sun.security.krb5.internal.APOptions options
        start local 2 // sun.security.krb5.Credentials tgs_creds
        start local 3 // sun.security.krb5.Checksum cksum
        start local 4 // sun.security.krb5.EncryptionKey subKey
        start local 5 // sun.security.krb5.internal.SeqNumber seqNumber
        start local 6 // sun.security.krb5.internal.AuthorizationData authorizationData
        start local 7 // int usage
         0: .line 205
            aload 0 /* this */
            new sun.security.krb5.internal.KerberosTime
            dup
            iconst_1
            invokespecial sun.security.krb5.internal.KerberosTime.<init>:(Z)V
            putfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
         1: .line 206
            aload 0 /* this */
            aload 1 /* options */
         2: .line 207
            aload 2 /* tgs_creds */
            getfield sun.security.krb5.Credentials.ticket:Lsun/security/krb5/internal/Ticket;
         3: .line 208
            aload 2 /* tgs_creds */
            getfield sun.security.krb5.Credentials.key:Lsun/security/krb5/EncryptionKey;
         4: .line 209
            aload 2 /* tgs_creds */
            getfield sun.security.krb5.Credentials.client:Lsun/security/krb5/PrincipalName;
         5: .line 210
            aload 3 /* cksum */
         6: .line 211
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
         7: .line 212
            aload 4 /* subKey */
         8: .line 213
            aload 5 /* seqNumber */
         9: .line 214
            aload 6 /* authorizationData */
        10: .line 215
            iload 7 /* usage */
        11: .line 206
            invokevirtual sun.security.krb5.KrbApReq.init:(Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Checksum;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/SeqNumber;Lsun/security/krb5/internal/AuthorizationData;I)V
        12: .line 216
            return
        end local 7 // int usage
        end local 6 // sun.security.krb5.internal.AuthorizationData authorizationData
        end local 5 // sun.security.krb5.internal.SeqNumber seqNumber
        end local 4 // sun.security.krb5.EncryptionKey subKey
        end local 3 // sun.security.krb5.Checksum cksum
        end local 2 // sun.security.krb5.Credentials tgs_creds
        end local 1 // sun.security.krb5.internal.APOptions options
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     0               this  Lsun/security/krb5/KrbApReq;
            0   13     1            options  Lsun/security/krb5/internal/APOptions;
            0   13     2          tgs_creds  Lsun/security/krb5/Credentials;
            0   13     3              cksum  Lsun/security/krb5/Checksum;
            0   13     4             subKey  Lsun/security/krb5/EncryptionKey;
            0   13     5          seqNumber  Lsun/security/krb5/internal/SeqNumber;
            0   13     6  authorizationData  Lsun/security/krb5/internal/AuthorizationData;
            0   13     7              usage  I
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException
    MethodParameters:
                   Name  Flags
      options            
      tgs_creds          
      cksum              
      subKey             
      seqNumber          
      authorizationData  
      usage              

  private void init(sun.security.krb5.internal.APOptions, sun.security.krb5.internal.Ticket, sun.security.krb5.EncryptionKey, sun.security.krb5.PrincipalName, sun.security.krb5.Checksum, sun.security.krb5.internal.KerberosTime, sun.security.krb5.EncryptionKey, sun.security.krb5.internal.SeqNumber, sun.security.krb5.internal.AuthorizationData, int);
    descriptor: (Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Checksum;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/SeqNumber;Lsun/security/krb5/internal/AuthorizationData;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=11, args_size=11
        start local 0 // sun.security.krb5.KrbApReq this
        start local 1 // sun.security.krb5.internal.APOptions apOptions
        start local 2 // sun.security.krb5.internal.Ticket ticket
        start local 3 // sun.security.krb5.EncryptionKey key
        start local 4 // sun.security.krb5.PrincipalName cname
        start local 5 // sun.security.krb5.Checksum cksum
        start local 6 // sun.security.krb5.internal.KerberosTime ctime
        start local 7 // sun.security.krb5.EncryptionKey subKey
        start local 8 // sun.security.krb5.internal.SeqNumber seqNumber
        start local 9 // sun.security.krb5.internal.AuthorizationData authorizationData
        start local 10 // int usage
         0: .line 231
            aload 0 /* this */
            aload 1 /* apOptions */
            aload 2 /* ticket */
            aload 3 /* key */
            aload 4 /* cname */
         1: .line 232
            aload 5 /* cksum */
            aload 6 /* ctime */
            aload 7 /* subKey */
            aload 8 /* seqNumber */
            aload 9 /* authorizationData */
         2: .line 233
            iload 10 /* usage */
         3: .line 231
            invokevirtual sun.security.krb5.KrbApReq.createMessage:(Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Checksum;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/SeqNumber;Lsun/security/krb5/internal/AuthorizationData;I)V
         4: .line 234
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            invokevirtual sun.security.krb5.internal.APReq.asn1Encode:()[B
            putfield sun.security.krb5.KrbApReq.obuf:[B
         5: .line 235
            return
        end local 10 // int usage
        end local 9 // sun.security.krb5.internal.AuthorizationData authorizationData
        end local 8 // sun.security.krb5.internal.SeqNumber seqNumber
        end local 7 // sun.security.krb5.EncryptionKey subKey
        end local 6 // sun.security.krb5.internal.KerberosTime ctime
        end local 5 // sun.security.krb5.Checksum cksum
        end local 4 // sun.security.krb5.PrincipalName cname
        end local 3 // sun.security.krb5.EncryptionKey key
        end local 2 // sun.security.krb5.internal.Ticket ticket
        end local 1 // sun.security.krb5.internal.APOptions apOptions
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lsun/security/krb5/KrbApReq;
            0    6     1          apOptions  Lsun/security/krb5/internal/APOptions;
            0    6     2             ticket  Lsun/security/krb5/internal/Ticket;
            0    6     3                key  Lsun/security/krb5/EncryptionKey;
            0    6     4              cname  Lsun/security/krb5/PrincipalName;
            0    6     5              cksum  Lsun/security/krb5/Checksum;
            0    6     6              ctime  Lsun/security/krb5/internal/KerberosTime;
            0    6     7             subKey  Lsun/security/krb5/EncryptionKey;
            0    6     8          seqNumber  Lsun/security/krb5/internal/SeqNumber;
            0    6     9  authorizationData  Lsun/security/krb5/internal/AuthorizationData;
            0    6    10              usage  I
    Exceptions:
      throws sun.security.krb5.Asn1Exception, java.io.IOException, sun.security.krb5.internal.KdcErrException, sun.security.krb5.KrbCryptoException
    MethodParameters:
                   Name  Flags
      apOptions          
      ticket             
      key                
      cname              
      cksum              
      ctime              
      subKey             
      seqNumber          
      authorizationData  
      usage              

  void decode();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 239
            new sun.security.util.DerValue
            dup
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.obuf:[B
            invokespecial sun.security.util.DerValue.<init>:([B)V
            astore 1 /* encoding */
        start local 1 // sun.security.util.DerValue encoding
         1: .line 240
            aload 0 /* this */
            aload 1 /* encoding */
            invokevirtual sun.security.krb5.KrbApReq.decode:(Lsun/security/util/DerValue;)V
         2: .line 241
            return
        end local 1 // sun.security.util.DerValue encoding
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/security/krb5/KrbApReq;
            1    3     1  encoding  Lsun/security/util/DerValue;
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException

  void decode(sun.security.util.DerValue);
    descriptor: (Lsun/security/util/DerValue;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // sun.security.krb5.KrbApReq this
        start local 1 // sun.security.util.DerValue encoding
         0: .line 244
            aload 0 /* this */
            aconst_null
            putfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
         1: .line 246
            aload 0 /* this */
            new sun.security.krb5.internal.APReq
            dup
            aload 1 /* encoding */
            invokespecial sun.security.krb5.internal.APReq.<init>:(Lsun/security/util/DerValue;)V
            putfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
         2: .line 247
            goto 14
      StackMap locals:
      StackMap stack: sun.security.krb5.Asn1Exception
         3: astore 2 /* e */
        start local 2 // sun.security.krb5.Asn1Exception e
         4: .line 248
            aload 0 /* this */
            aconst_null
            putfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
         5: .line 249
            new sun.security.krb5.internal.KRBError
            dup
            aload 1 /* encoding */
            invokespecial sun.security.krb5.internal.KRBError.<init>:(Lsun/security/util/DerValue;)V
            astore 3 /* err */
        start local 3 // sun.security.krb5.internal.KRBError err
         6: .line 250
            aload 3 /* err */
            invokevirtual sun.security.krb5.internal.KRBError.getErrorString:()Ljava/lang/String;
            astore 4 /* errStr */
        start local 4 // java.lang.String errStr
         7: .line 252
            aload 4 /* errStr */
            aload 4 /* errStr */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            ifne 10
         8: .line 253
            aload 4 /* errStr */
            iconst_0
            aload 4 /* errStr */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* eText */
        start local 5 // java.lang.String eText
         9: goto 11
        end local 5 // java.lang.String eText
        10: .line 255
      StackMap locals: sun.security.krb5.Asn1Exception sun.security.krb5.internal.KRBError java.lang.String
      StackMap stack:
            aload 4 /* errStr */
            astore 5 /* eText */
        start local 5 // java.lang.String eText
        11: .line 256
      StackMap locals: java.lang.String
      StackMap stack:
            new sun.security.krb5.KrbException
            dup
            aload 3 /* err */
            invokevirtual sun.security.krb5.internal.KRBError.getErrorCode:()I
            aload 5 /* eText */
            invokespecial sun.security.krb5.KrbException.<init>:(ILjava/lang/String;)V
            astore 6 /* ke */
        start local 6 // sun.security.krb5.KrbException ke
        12: .line 257
            aload 6 /* ke */
            aload 2 /* e */
            invokevirtual sun.security.krb5.KrbException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        13: .line 258
            aload 6 /* ke */
            athrow
        end local 6 // sun.security.krb5.KrbException ke
        end local 5 // java.lang.String eText
        end local 4 // java.lang.String errStr
        end local 3 // sun.security.krb5.internal.KRBError err
        end local 2 // sun.security.krb5.Asn1Exception e
        14: .line 260
      StackMap locals: sun.security.krb5.KrbApReq sun.security.util.DerValue
      StackMap stack:
            return
        end local 1 // sun.security.util.DerValue encoding
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lsun/security/krb5/KrbApReq;
            0   15     1  encoding  Lsun/security/util/DerValue;
            4   14     2         e  Lsun/security/krb5/Asn1Exception;
            6   14     3       err  Lsun/security/krb5/internal/KRBError;
            7   14     4    errStr  Ljava/lang/String;
            9   10     5     eText  Ljava/lang/String;
           11   14     5     eText  Ljava/lang/String;
           12   14     6        ke  Lsun/security/krb5/KrbException;
      Exception table:
        from    to  target  type
           1     2       3  Class sun.security.krb5.Asn1Exception
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException
    MethodParameters:
          Name  Flags
      encoding  

  private void authenticate(sun.security.krb5.EncryptionKey[], java.net.InetAddress);
    descriptor: ([Lsun/security/krb5/EncryptionKey;Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=14, locals=15, args_size=3
        start local 0 // sun.security.krb5.KrbApReq this
        start local 1 // sun.security.krb5.EncryptionKey[] keys
        start local 2 // java.net.InetAddress initiator
         0: .line 264
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.ticket:Lsun/security/krb5/internal/Ticket;
            getfield sun.security.krb5.internal.Ticket.encPart:Lsun/security/krb5/EncryptedData;
            invokevirtual sun.security.krb5.EncryptedData.getEType:()I
            istore 3 /* encPartKeyType */
        start local 3 // int encPartKeyType
         1: .line 265
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.ticket:Lsun/security/krb5/internal/Ticket;
            getfield sun.security.krb5.internal.Ticket.encPart:Lsun/security/krb5/EncryptedData;
            invokevirtual sun.security.krb5.EncryptedData.getKeyVersionNumber:()Ljava/lang/Integer;
            astore 4 /* kvno */
        start local 4 // java.lang.Integer kvno
         2: .line 266
            iload 3 /* encPartKeyType */
            aload 4 /* kvno */
            aload 1 /* keys */
            invokestatic sun.security.krb5.EncryptionKey.findKey:(ILjava/lang/Integer;[Lsun/security/krb5/EncryptionKey;)Lsun/security/krb5/EncryptionKey;
            astore 5 /* dkey */
        start local 5 // sun.security.krb5.EncryptionKey dkey
         3: .line 268
            aload 5 /* dkey */
            ifnonnull 9
         4: .line 269
            new sun.security.krb5.KrbException
            dup
            sipush 400
         5: .line 270
            new java.lang.StringBuilder
            dup
            ldc "Cannot find key of appropriate type to decrypt AP REP - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 271
            iload 3 /* encPartKeyType */
            invokestatic sun.security.krb5.internal.crypto.EType.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 270
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 269
            invokespecial sun.security.krb5.KrbException.<init>:(ILjava/lang/String;)V
            athrow
         9: .line 274
      StackMap locals: int java.lang.Integer sun.security.krb5.EncryptionKey
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.ticket:Lsun/security/krb5/internal/Ticket;
            getfield sun.security.krb5.internal.Ticket.encPart:Lsun/security/krb5/EncryptedData;
            aload 5 /* dkey */
        10: .line 275
            iconst_2
        11: .line 274
            invokevirtual sun.security.krb5.EncryptedData.decrypt:(Lsun/security/krb5/EncryptionKey;I)[B
            astore 6 /* bytes */
        start local 6 // byte[] bytes
        12: .line 276
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.ticket:Lsun/security/krb5/internal/Ticket;
            getfield sun.security.krb5.internal.Ticket.encPart:Lsun/security/krb5/EncryptedData;
            aload 6 /* bytes */
            invokevirtual sun.security.krb5.EncryptedData.reset:([B)[B
            astore 7 /* temp */
        start local 7 // byte[] temp
        13: .line 277
            new sun.security.krb5.internal.EncTicketPart
            dup
            aload 7 /* temp */
            invokespecial sun.security.krb5.internal.EncTicketPart.<init>:([B)V
            astore 8 /* enc_ticketPart */
        start local 8 // sun.security.krb5.internal.EncTicketPart enc_ticketPart
        14: .line 279
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.key:Lsun/security/krb5/EncryptionKey;
            invokevirtual sun.security.krb5.EncryptionKey.getEType:()I
            invokestatic sun.security.krb5.KrbApReq.checkPermittedEType:(I)V
        15: .line 281
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.authenticator:Lsun/security/krb5/EncryptedData;
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.key:Lsun/security/krb5/EncryptionKey;
        16: .line 282
            bipush 11
        17: .line 281
            invokevirtual sun.security.krb5.EncryptedData.decrypt:(Lsun/security/krb5/EncryptionKey;I)[B
            astore 9 /* bytes2 */
        start local 9 // byte[] bytes2
        18: .line 283
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.authenticator:Lsun/security/krb5/EncryptedData;
            aload 9 /* bytes2 */
            invokevirtual sun.security.krb5.EncryptedData.reset:([B)[B
            astore 10 /* temp2 */
        start local 10 // byte[] temp2
        19: .line 284
            aload 0 /* this */
            new sun.security.krb5.internal.Authenticator
            dup
            aload 10 /* temp2 */
            invokespecial sun.security.krb5.internal.Authenticator.<init>:([B)V
            putfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
        20: .line 285
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.ctime:Lsun/security/krb5/internal/KerberosTime;
            putfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
        21: .line 286
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.cusec:I
            putfield sun.security.krb5.KrbApReq.cusec:I
        22: .line 287
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.ctime:Lsun/security/krb5/internal/KerberosTime;
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.cusec:I
            invokevirtual sun.security.krb5.internal.KerberosTime.setMicroSeconds:(I)V
        23: .line 289
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.cname:Lsun/security/krb5/PrincipalName;
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.cname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
            ifne 25
        24: .line 290
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 36
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        25: .line 292
      StackMap locals: sun.security.krb5.KrbApReq sun.security.krb5.EncryptionKey[] java.net.InetAddress int java.lang.Integer sun.security.krb5.EncryptionKey byte[] byte[] sun.security.krb5.internal.EncTicketPart byte[] byte[]
      StackMap stack:
            new sun.security.krb5.internal.KerberosTime
            dup
            iconst_1
            invokespecial sun.security.krb5.internal.KerberosTime.<init>:(Z)V
            astore 11 /* currTime */
        start local 11 // sun.security.krb5.internal.KerberosTime currTime
        26: .line 293
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.ctime:Lsun/security/krb5/internal/KerberosTime;
            aload 11 /* currTime */
            invokevirtual sun.security.krb5.internal.KerberosTime.inClockSkew:(Lsun/security/krb5/internal/KerberosTime;)Z
            ifne 28
        27: .line 294
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 37
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        28: .line 298
      StackMap locals: sun.security.krb5.internal.KerberosTime
      StackMap stack:
            new sun.security.krb5.internal.rcache.AuthTime
            dup
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.ctime:Lsun/security/krb5/internal/KerberosTime;
            invokevirtual sun.security.krb5.internal.KerberosTime.getTime:()J
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.cusec:I
            invokespecial sun.security.krb5.internal.rcache.AuthTime.<init>:(JI)V
        29: .line 297
            astore 12 /* time */
        start local 12 // sun.security.krb5.internal.rcache.AuthTime time
        30: .line 299
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.cname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
            astore 13 /* client */
        start local 13 // java.lang.String client
        31: .line 300
            getstatic sun.security.krb5.KrbApReq.table:Lsun/security/krb5/internal/rcache/CacheTable;
            aload 12 /* time */
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.cname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
            invokevirtual sun.security.krb5.internal.rcache.CacheTable.get:(Lsun/security/krb5/internal/rcache/AuthTime;Ljava/lang/String;)Ljava/lang/Object;
            ifnull 33
        32: .line 301
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 34
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        33: .line 303
      StackMap locals: sun.security.krb5.internal.rcache.AuthTime java.lang.String
      StackMap stack:
            getstatic sun.security.krb5.KrbApReq.table:Lsun/security/krb5/internal/rcache/CacheTable;
            aload 13 /* client */
            aload 12 /* time */
            aload 11 /* currTime */
            invokevirtual sun.security.krb5.internal.KerberosTime.getTime:()J
            invokevirtual sun.security.krb5.internal.rcache.CacheTable.put:(Ljava/lang/String;Lsun/security/krb5/internal/rcache/AuthTime;J)V
        34: .line 306
            aload 2 /* initiator */
            ifnull 46
        35: .line 308
            new sun.security.krb5.internal.HostAddress
            dup
            aload 2 /* initiator */
            invokespecial sun.security.krb5.internal.HostAddress.<init>:(Ljava/net/InetAddress;)V
            astore 14 /* sender */
        start local 14 // sun.security.krb5.internal.HostAddress sender
        36: .line 309
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.caddr:Lsun/security/krb5/internal/HostAddresses;
            ifnull 46
        37: .line 310
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.caddr:Lsun/security/krb5/internal/HostAddresses;
            aload 14 /* sender */
            invokevirtual sun.security.krb5.internal.HostAddresses.inList:(Lsun/security/krb5/internal/HostAddress;)Z
            ifne 46
        38: .line 311
            getstatic sun.security.krb5.KrbApReq.DEBUG:Z
            ifeq 45
        39: .line 312
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ">>> KrbApReq: initiator is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        40: .line 313
            aload 14 /* sender */
            invokevirtual sun.security.krb5.internal.HostAddress.getInetAddress:()Ljava/net/InetAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        41: .line 314
            ldc ", but caddr is "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        42: .line 316
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.caddr:Lsun/security/krb5/internal/HostAddresses;
            invokevirtual sun.security.krb5.internal.HostAddresses.getInetAddresses:()[Ljava/net/InetAddress;
        43: .line 315
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        44: .line 312
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        45: .line 318
      StackMap locals: sun.security.krb5.internal.HostAddress
      StackMap stack:
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 38
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        end local 14 // sun.security.krb5.internal.HostAddress sender
        46: .line 328
      StackMap locals:
      StackMap stack:
            new sun.security.krb5.internal.KerberosTime
            dup
            iconst_1
            invokespecial sun.security.krb5.internal.KerberosTime.<init>:(Z)V
            astore 14 /* now */
        start local 14 // sun.security.krb5.internal.KerberosTime now
        47: .line 330
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.starttime:Lsun/security/krb5/internal/KerberosTime;
            ifnull 49
        48: .line 331
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.starttime:Lsun/security/krb5/internal/KerberosTime;
            aload 14 /* now */
            invokevirtual sun.security.krb5.internal.KerberosTime.greaterThanWRTClockSkew:(Lsun/security/krb5/internal/KerberosTime;)Z
            ifne 50
        49: .line 332
      StackMap locals: sun.security.krb5.internal.KerberosTime
      StackMap stack:
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.flags:Lsun/security/krb5/internal/TicketFlags;
            bipush 7
            invokevirtual sun.security.krb5.internal.TicketFlags.get:(I)Z
            ifeq 51
        50: .line 333
      StackMap locals:
      StackMap stack:
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 33
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        51: .line 337
      StackMap locals:
      StackMap stack:
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.endtime:Lsun/security/krb5/internal/KerberosTime;
            ifnull 54
        52: .line 338
            aload 14 /* now */
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.endtime:Lsun/security/krb5/internal/KerberosTime;
            invokevirtual sun.security.krb5.internal.KerberosTime.greaterThanWRTClockSkew:(Lsun/security/krb5/internal/KerberosTime;)Z
            ifeq 54
        53: .line 339
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 32
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        54: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.krb5.Credentials
            dup
        55: .line 343
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.ticket:Lsun/security/krb5/internal/Ticket;
        56: .line 344
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.cname:Lsun/security/krb5/PrincipalName;
        57: .line 345
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.ticket:Lsun/security/krb5/internal/Ticket;
            getfield sun.security.krb5.internal.Ticket.sname:Lsun/security/krb5/PrincipalName;
        58: .line 346
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.key:Lsun/security/krb5/EncryptionKey;
        59: .line 347
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.flags:Lsun/security/krb5/internal/TicketFlags;
        60: .line 348
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.authtime:Lsun/security/krb5/internal/KerberosTime;
        61: .line 349
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.starttime:Lsun/security/krb5/internal/KerberosTime;
        62: .line 350
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.endtime:Lsun/security/krb5/internal/KerberosTime;
        63: .line 351
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.renewTill:Lsun/security/krb5/internal/KerberosTime;
        64: .line 352
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.caddr:Lsun/security/krb5/internal/HostAddresses;
        65: .line 353
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.authorizationData:Lsun/security/krb5/internal/AuthorizationData;
            invokespecial sun.security.krb5.Credentials.<init>:(Lsun/security/krb5/internal/Ticket;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;Lsun/security/krb5/internal/AuthorizationData;)V
        66: .line 342
            putfield sun.security.krb5.KrbApReq.creds:Lsun/security/krb5/Credentials;
        67: .line 354
            getstatic sun.security.krb5.KrbApReq.DEBUG:Z
            ifeq 69
        68: .line 355
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc ">>> KrbApReq: authenticate succeed."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        69: .line 357
      StackMap locals:
      StackMap stack:
            return
        end local 14 // sun.security.krb5.internal.KerberosTime now
        end local 13 // java.lang.String client
        end local 12 // sun.security.krb5.internal.rcache.AuthTime time
        end local 11 // sun.security.krb5.internal.KerberosTime currTime
        end local 10 // byte[] temp2
        end local 9 // byte[] bytes2
        end local 8 // sun.security.krb5.internal.EncTicketPart enc_ticketPart
        end local 7 // byte[] temp
        end local 6 // byte[] bytes
        end local 5 // sun.security.krb5.EncryptionKey dkey
        end local 4 // java.lang.Integer kvno
        end local 3 // int encPartKeyType
        end local 2 // java.net.InetAddress initiator
        end local 1 // sun.security.krb5.EncryptionKey[] keys
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   70     0            this  Lsun/security/krb5/KrbApReq;
            0   70     1            keys  [Lsun/security/krb5/EncryptionKey;
            0   70     2       initiator  Ljava/net/InetAddress;
            1   70     3  encPartKeyType  I
            2   70     4            kvno  Ljava/lang/Integer;
            3   70     5            dkey  Lsun/security/krb5/EncryptionKey;
           12   70     6           bytes  [B
           13   70     7            temp  [B
           14   70     8  enc_ticketPart  Lsun/security/krb5/internal/EncTicketPart;
           18   70     9          bytes2  [B
           19   70    10           temp2  [B
           26   70    11        currTime  Lsun/security/krb5/internal/KerberosTime;
           30   70    12            time  Lsun/security/krb5/internal/rcache/AuthTime;
           31   70    13          client  Ljava/lang/String;
           36   46    14          sender  Lsun/security/krb5/internal/HostAddress;
           47   70    14             now  Lsun/security/krb5/internal/KerberosTime;
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException
    MethodParameters:
           Name  Flags
      keys       
      initiator  

  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.KrbApReq this
         0: .line 364
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.creds:Lsun/security/krb5/Credentials;
            areturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/KrbApReq;

  sun.security.krb5.internal.KerberosTime getCtime();
    descriptor: ()Lsun/security/krb5/internal/KerberosTime;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 368
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
            ifnull 2
         1: .line 369
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
            areturn
         2: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.ctime:Lsun/security/krb5/internal/KerberosTime;
            areturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/krb5/KrbApReq;

  int cusec();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 374
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.cusec:I
            ireturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/KrbApReq;

  sun.security.krb5.internal.APOptions getAPOptions();
    descriptor: ()Lsun/security/krb5/internal/APOptions;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 378
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnonnull 2
         1: .line 379
            aload 0 /* this */
            invokevirtual sun.security.krb5.KrbApReq.decode:()V
         2: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnull 4
         3: .line 381
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.apOptions:Lsun/security/krb5/internal/APOptions;
            areturn
         4: .line 382
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/krb5/KrbApReq;
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException

  public boolean getMutualAuthRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 392
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnonnull 2
         1: .line 393
            aload 0 /* this */
            invokevirtual sun.security.krb5.KrbApReq.decode:()V
         2: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnull 4
         3: .line 395
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.apOptions:Lsun/security/krb5/internal/APOptions;
            iconst_2
            invokevirtual sun.security.krb5.internal.APOptions.get:(I)Z
            ireturn
         4: .line 396
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/krb5/KrbApReq;
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException

  boolean useSessionKey();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 400
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnonnull 2
         1: .line 401
            aload 0 /* this */
            invokevirtual sun.security.krb5.KrbApReq.decode:()V
         2: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnull 4
         3: .line 403
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            getfield sun.security.krb5.internal.APReq.apOptions:Lsun/security/krb5/internal/APOptions;
            iconst_1
            invokevirtual sun.security.krb5.internal.APOptions.get:(I)Z
            ireturn
         4: .line 404
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/krb5/KrbApReq;
    Exceptions:
      throws sun.security.krb5.KrbException, java.io.IOException

  public sun.security.krb5.EncryptionKey getSubKey();
    descriptor: ()Lsun/security/krb5/EncryptionKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 413
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            invokevirtual sun.security.krb5.internal.Authenticator.getSubKey:()Lsun/security/krb5/EncryptionKey;
            areturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/KrbApReq;

  public java.lang.Integer getSeqNumber();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 423
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            invokevirtual sun.security.krb5.internal.Authenticator.getSeqNumber:()Ljava/lang/Integer;
            areturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/KrbApReq;

  public sun.security.krb5.Checksum getChecksum();
    descriptor: ()Lsun/security/krb5/Checksum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 432
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            invokevirtual sun.security.krb5.internal.Authenticator.getChecksum:()Lsun/security/krb5/Checksum;
            areturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/KrbApReq;

  public byte[] getMessage();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.KrbApReq this
         0: .line 439
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.obuf:[B
            areturn
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/KrbApReq;

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

  private void createMessage(sun.security.krb5.internal.APOptions, sun.security.krb5.internal.Ticket, sun.security.krb5.EncryptionKey, sun.security.krb5.PrincipalName, sun.security.krb5.Checksum, sun.security.krb5.internal.KerberosTime, sun.security.krb5.EncryptionKey, sun.security.krb5.internal.SeqNumber, sun.security.krb5.internal.AuthorizationData, int);
    descriptor: (Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Checksum;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/SeqNumber;Lsun/security/krb5/internal/AuthorizationData;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=14, args_size=11
        start local 0 // sun.security.krb5.KrbApReq this
        start local 1 // sun.security.krb5.internal.APOptions apOptions
        start local 2 // sun.security.krb5.internal.Ticket ticket
        start local 3 // sun.security.krb5.EncryptionKey key
        start local 4 // sun.security.krb5.PrincipalName cname
        start local 5 // sun.security.krb5.Checksum cksum
        start local 6 // sun.security.krb5.internal.KerberosTime ctime
        start local 7 // sun.security.krb5.EncryptionKey subKey
        start local 8 // sun.security.krb5.internal.SeqNumber seqNumber
        start local 9 // sun.security.krb5.internal.AuthorizationData authorizationData
        start local 10 // int usage
         0: .line 463
            aconst_null
            astore 11 /* seqno */
        start local 11 // java.lang.Integer seqno
         1: .line 465
            aload 8 /* seqNumber */
            ifnull 3
         2: .line 466
            new java.lang.Integer
            dup
            aload 8 /* seqNumber */
            invokeinterface sun.security.krb5.internal.SeqNumber.current:()I
            invokespecial java.lang.Integer.<init>:(I)V
            astore 11 /* seqno */
         3: .line 468
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 0 /* this */
         4: .line 469
            new sun.security.krb5.internal.Authenticator
            dup
            aload 4 /* cname */
         5: .line 470
            aload 5 /* cksum */
         6: .line 471
            aload 6 /* ctime */
            invokevirtual sun.security.krb5.internal.KerberosTime.getMicroSeconds:()I
         7: .line 472
            aload 6 /* ctime */
         8: .line 473
            aload 7 /* subKey */
         9: .line 474
            aload 11 /* seqno */
        10: .line 475
            aload 9 /* authorizationData */
        11: .line 469
            invokespecial sun.security.krb5.internal.Authenticator.<init>:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Checksum;ILsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/EncryptionKey;Ljava/lang/Integer;Lsun/security/krb5/internal/AuthorizationData;)V
        12: .line 468
            putfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
        13: .line 477
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            invokevirtual sun.security.krb5.internal.Authenticator.asn1Encode:()[B
            astore 12 /* temp */
        start local 12 // byte[] temp
        14: .line 480
            new sun.security.krb5.EncryptedData
            dup
            aload 3 /* key */
            aload 12 /* temp */
            iload 10 /* usage */
            invokespecial sun.security.krb5.EncryptedData.<init>:(Lsun/security/krb5/EncryptionKey;[BI)V
        15: .line 479
            astore 13 /* encAuthenticator */
        start local 13 // sun.security.krb5.EncryptedData encAuthenticator
        16: .line 482
            aload 0 /* this */
        17: .line 483
            new sun.security.krb5.internal.APReq
            dup
            aload 1 /* apOptions */
            aload 2 /* ticket */
            aload 13 /* encAuthenticator */
            invokespecial sun.security.krb5.internal.APReq.<init>:(Lsun/security/krb5/internal/APOptions;Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/EncryptedData;)V
        18: .line 482
            putfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
        19: .line 484
            return
        end local 13 // sun.security.krb5.EncryptedData encAuthenticator
        end local 12 // byte[] temp
        end local 11 // java.lang.Integer seqno
        end local 10 // int usage
        end local 9 // sun.security.krb5.internal.AuthorizationData authorizationData
        end local 8 // sun.security.krb5.internal.SeqNumber seqNumber
        end local 7 // sun.security.krb5.EncryptionKey subKey
        end local 6 // sun.security.krb5.internal.KerberosTime ctime
        end local 5 // sun.security.krb5.Checksum cksum
        end local 4 // sun.security.krb5.PrincipalName cname
        end local 3 // sun.security.krb5.EncryptionKey key
        end local 2 // sun.security.krb5.internal.Ticket ticket
        end local 1 // sun.security.krb5.internal.APOptions apOptions
        end local 0 // sun.security.krb5.KrbApReq this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   20     0               this  Lsun/security/krb5/KrbApReq;
            0   20     1          apOptions  Lsun/security/krb5/internal/APOptions;
            0   20     2             ticket  Lsun/security/krb5/internal/Ticket;
            0   20     3                key  Lsun/security/krb5/EncryptionKey;
            0   20     4              cname  Lsun/security/krb5/PrincipalName;
            0   20     5              cksum  Lsun/security/krb5/Checksum;
            0   20     6              ctime  Lsun/security/krb5/internal/KerberosTime;
            0   20     7             subKey  Lsun/security/krb5/EncryptionKey;
            0   20     8          seqNumber  Lsun/security/krb5/internal/SeqNumber;
            0   20     9  authorizationData  Lsun/security/krb5/internal/AuthorizationData;
            0   20    10              usage  I
            1   20    11              seqno  Ljava/lang/Integer;
           14   20    12               temp  [B
           16   20    13   encAuthenticator  Lsun/security/krb5/EncryptedData;
    Exceptions:
      throws sun.security.krb5.Asn1Exception, java.io.IOException, sun.security.krb5.internal.KdcErrException, sun.security.krb5.KrbCryptoException
    MethodParameters:
                   Name  Flags
      apOptions          
      ticket             
      key                
      cname              
      cksum              
      ctime              
      subKey             
      seqNumber          
      authorizationData  
      usage              

  private static void checkPermittedEType(int);
    descriptor: (I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // int target
         0: .line 488
            ldc "permitted_enctypes"
            invokestatic sun.security.krb5.internal.crypto.EType.getDefaults:(Ljava/lang/String;)[I
            astore 1 /* etypes */
        start local 1 // int[] etypes
         1: .line 489
            aload 1 /* etypes */
            ifnonnull 5
         2: .line 490
            new sun.security.krb5.KrbException
            dup
         3: .line 491
            ldc "No supported encryption types listed in permitted_enctypes"
         4: .line 490
            invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 493
      StackMap locals: int[]
      StackMap stack:
            iload 0 /* target */
            aload 1 /* etypes */
            invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I[I)Z
            ifne 9
         6: .line 494
            new sun.security.krb5.KrbException
            dup
            new java.lang.StringBuilder
            dup
            iload 0 /* target */
            invokestatic sun.security.krb5.internal.crypto.EType.toString:(I)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 495
            ldc " encryption type not in permitted_enctypes list"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 494
            invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 497
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int[] etypes
        end local 0 // int target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  target  I
            1   10     1  etypes  [I
    Exceptions:
      throws sun.security.krb5.KrbException
    MethodParameters:
        Name  Flags
      target  
}
SourceFile: "KrbApReq.java"