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.ReplayCache rcache;
    descriptor: Lsun/security/krb5/internal/ReplayCache;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  private static final char[] hexConst;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.security.MessageDigest md;
    descriptor: Ljava/security/MessageDigest;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 58
            invokestatic sun.security.krb5.internal.ReplayCache.getInstance:()Lsun/security/krb5/internal/ReplayCache;
            putstatic sun.security.krb5.KrbApReq.rcache:Lsun/security/krb5/internal/ReplayCache;
         1: .line 59
            getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
            putstatic sun.security.krb5.KrbApReq.DEBUG:Z
         2: .line 60
            ldc "0123456789ABCDEF"
            invokevirtual java.lang.String.toCharArray:()[C
            putstatic sun.security.krb5.KrbApReq.hexConst:[C
         3: .line 66
            ldc "MD5"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            putstatic sun.security.krb5.KrbApReq.md:Ljava/security/MessageDigest;
         4: .line 67
            goto 7
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
         5: pop
         6: .line 68
            new java.lang.RuntimeException
            dup
            ldc "Impossible"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 70
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           3     4       5  Class java.security.NoSuchAlgorithmException

  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 111
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 118
            iload 2 /* mutualRequired */
            ifeq 3
         2: .line 119
            new sun.security.krb5.internal.APOptions
            dup
            iconst_2
            invokespecial sun.security.krb5.internal.APOptions.<init>:(I)V
            goto 4
         3: .line 120
      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 118
      StackMap locals:
      StackMap stack: sun.security.krb5.internal.APOptions
            astore 6 /* apOptions */
        start local 6 // sun.security.krb5.internal.APOptions apOptions
         5: .line 121
            getstatic sun.security.krb5.KrbApReq.DEBUG:Z
            ifeq 7
         6: .line 122
            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 124
      StackMap locals: sun.security.krb5.internal.APOptions
      StackMap stack:
            iload 3 /* useSubKey */
            ifeq 9
         8: .line 125
            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 126
      StackMap locals:
      StackMap stack:
            aconst_null
        10: .line 124
      StackMap locals:
      StackMap stack: sun.security.krb5.EncryptionKey
            astore 7 /* subKey */
        start local 7 // sun.security.krb5.EncryptionKey subKey
        11: .line 128
            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 130
            aload 0 /* this */
            aload 6 /* apOptions */
        13: .line 131
            aload 1 /* tgsCred */
        14: .line 132
            aload 5 /* cksum */
        15: .line 133
            aload 7 /* subKey */
        16: .line 134
            aload 8 /* seqNum */
        17: .line 135
            aconst_null
        18: .line 136
            bipush 11
        19: .line 130
            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 138
            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 151
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 155
            aload 0 /* this */
            aload 1 /* message */
            putfield sun.security.krb5.KrbApReq.obuf:[B
         2: .line 156
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnonnull 4
         3: .line 157
            aload 0 /* this */
            invokevirtual sun.security.krb5.KrbApReq.decode:()V
         4: .line 158
      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 159
            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 193
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 205
            aload 0 /* this */
            aload 1 /* apOptions */
            aload 2 /* ticket */
            aload 3 /* key */
            aload 4 /* cname */
         2: .line 206
            aload 5 /* cksum */
            aload 6 /* ctime */
            aload 7 /* subKey */
            aload 8 /* seqNumber */
            aload 9 /* authorizationData */
         3: .line 207
            bipush 7
         4: .line 205
            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 209
            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 220
            aload 0 /* this */
            invokestatic sun.security.krb5.internal.KerberosTime.now:()Lsun/security/krb5/internal/KerberosTime;
            putfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
         1: .line 221
            aload 0 /* this */
            aload 1 /* options */
         2: .line 222
            aload 2 /* tgs_creds */
            getfield sun.security.krb5.Credentials.ticket:Lsun/security/krb5/internal/Ticket;
         3: .line 223
            aload 2 /* tgs_creds */
            getfield sun.security.krb5.Credentials.key:Lsun/security/krb5/EncryptionKey;
         4: .line 224
            aload 2 /* tgs_creds */
            getfield sun.security.krb5.Credentials.client:Lsun/security/krb5/PrincipalName;
         5: .line 225
            aload 3 /* cksum */
         6: .line 226
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
         7: .line 227
            aload 4 /* subKey */
         8: .line 228
            aload 5 /* seqNumber */
         9: .line 229
            aload 6 /* authorizationData */
        10: .line 230
            iload 7 /* usage */
        11: .line 221
            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 231
            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 246
            aload 0 /* this */
            aload 1 /* apOptions */
            aload 2 /* ticket */
            aload 3 /* key */
            aload 4 /* cname */
         1: .line 247
            aload 5 /* cksum */
            aload 6 /* ctime */
            aload 7 /* subKey */
            aload 8 /* seqNumber */
            aload 9 /* authorizationData */
         2: .line 248
            iload 10 /* usage */
         3: .line 246
            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 249
            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 250
            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 254
            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 255
            aload 0 /* this */
            aload 1 /* encoding */
            invokevirtual sun.security.krb5.KrbApReq.decode:(Lsun/security/util/DerValue;)V
         2: .line 256
            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 259
            aload 0 /* this */
            aconst_null
            putfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
         1: .line 261
            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 262
            goto 14
      StackMap locals:
      StackMap stack: sun.security.krb5.Asn1Exception
         3: astore 2 /* e */
        start local 2 // sun.security.krb5.Asn1Exception e
         4: .line 263
            aload 0 /* this */
            aconst_null
            putfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
         5: .line 264
            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 265
            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 267
            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 268
            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 270
      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 271
      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 272
            aload 6 /* ke */
            aload 2 /* e */
            invokevirtual sun.security.krb5.KrbException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        13: .line 273
            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 275
      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 279
            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 280
            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 281
            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 283
            aload 5 /* dkey */
            ifnonnull 9
         4: .line 284
            new sun.security.krb5.KrbException
            dup
            sipush 400
         5: .line 285
            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 286
            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 285
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 284
            invokespecial sun.security.krb5.KrbException.<init>:(ILjava/lang/String;)V
            athrow
         9: .line 289
      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 290
            iconst_2
        11: .line 289
            invokevirtual sun.security.krb5.EncryptedData.decrypt:(Lsun/security/krb5/EncryptionKey;I)[B
            astore 6 /* bytes */
        start local 6 // byte[] bytes
        12: .line 291
            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 292
            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 294
            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 296
            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 297
            bipush 11
        17: .line 296
            invokevirtual sun.security.krb5.EncryptedData.decrypt:(Lsun/security/krb5/EncryptionKey;I)[B
            astore 9 /* bytes2 */
        start local 9 // byte[] bytes2
        18: .line 298
            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 299
            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 300
            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 301
            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 302
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
        23: .line 303
            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.withMicroSeconds:(I)Lsun/security/krb5/internal/KerberosTime;
        24: .line 302
            putfield sun.security.krb5.internal.Authenticator.ctime:Lsun/security/krb5/internal/KerberosTime;
        25: .line 305
            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 27
        26: .line 306
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 36
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        27: .line 308
      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:
            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.inClockSkew:()Z
            ifne 29
        28: .line 309
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 37
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        29: .line 311
      StackMap locals:
      StackMap stack:
            getstatic sun.security.krb5.KrbApReq.md:Ljava/security/MessageDigest;
            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;
            getfield sun.security.krb5.EncryptedData.cipher:[B
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 11 /* hash */
        start local 11 // byte[] hash
        30: .line 312
            aload 11 /* hash */
            arraylength
            iconst_2
            imul
            newarray 5
            astore 12 /* h */
        start local 12 // char[] h
        31: .line 313
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        32: goto 36
        33: .line 314
      StackMap locals: byte[] char[] int
      StackMap stack:
            aload 12 /* h */
            iconst_2
            iload 13 /* i */
            imul
            getstatic sun.security.krb5.KrbApReq.hexConst:[C
            aload 11 /* hash */
            iload 13 /* i */
            baload
            sipush 255
            iand
            iconst_4
            ishr
            caload
            castore
        34: .line 315
            aload 12 /* h */
            iconst_2
            iload 13 /* i */
            imul
            iconst_1
            iadd
            getstatic sun.security.krb5.KrbApReq.hexConst:[C
            aload 11 /* hash */
            iload 13 /* i */
            baload
            bipush 15
            iand
            caload
            castore
        35: .line 313
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 13 /* i */
            aload 11 /* hash */
            arraylength
            if_icmplt 33
        end local 13 // int i
        37: .line 317
            new sun.security.krb5.internal.rcache.AuthTimeWithHash
            dup
        38: .line 318
            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;
        39: .line 319
            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;
            invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
        40: .line 320
            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.getSeconds:()I
        41: .line 321
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
            getfield sun.security.krb5.internal.Authenticator.cusec:I
        42: .line 322
            new java.lang.String
            dup
            aload 12 /* h */
            invokespecial java.lang.String.<init>:([C)V
        43: .line 317
            invokespecial sun.security.krb5.internal.rcache.AuthTimeWithHash.<init>:(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;)V
            astore 13 /* time */
        start local 13 // sun.security.krb5.internal.rcache.AuthTimeWithHash time
        44: .line 323
            getstatic sun.security.krb5.KrbApReq.rcache:Lsun/security/krb5/internal/ReplayCache;
            invokestatic sun.security.krb5.internal.KerberosTime.now:()Lsun/security/krb5/internal/KerberosTime;
            aload 13 /* time */
            invokevirtual sun.security.krb5.internal.ReplayCache.checkAndStore:(Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/rcache/AuthTimeWithHash;)V
        45: .line 325
            aload 2 /* initiator */
            ifnull 57
        46: .line 327
            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
        47: .line 328
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.caddr:Lsun/security/krb5/internal/HostAddresses;
            ifnull 57
        48: .line 329
            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 57
        49: .line 330
            getstatic sun.security.krb5.KrbApReq.DEBUG:Z
            ifeq 56
        50: .line 331
            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
        51: .line 332
            aload 14 /* sender */
            invokevirtual sun.security.krb5.internal.HostAddress.getInetAddress:()Ljava/net/InetAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        52: .line 333
            ldc ", but caddr is "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        53: .line 335
            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;
        54: .line 334
            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;
        55: .line 331
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        56: .line 337
      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[] byte[] char[] sun.security.krb5.internal.rcache.AuthTimeWithHash 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
        57: .line 347
      StackMap locals:
      StackMap stack:
            invokestatic sun.security.krb5.internal.KerberosTime.now:()Lsun/security/krb5/internal/KerberosTime;
            astore 14 /* now */
        start local 14 // sun.security.krb5.internal.KerberosTime now
        58: .line 349
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.starttime:Lsun/security/krb5/internal/KerberosTime;
            ifnull 60
        59: .line 350
            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 61
        60: .line 351
      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 62
        61: .line 352
      StackMap locals:
      StackMap stack:
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 33
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        62: .line 356
      StackMap locals:
      StackMap stack:
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.endtime:Lsun/security/krb5/internal/KerberosTime;
            ifnull 65
        63: .line 357
            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 65
        64: .line 358
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 32
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            athrow
        65: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.krb5.Credentials
            dup
        66: .line 362
            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;
        67: .line 363
            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;
        68: .line 364
            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;
        69: .line 365
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.key:Lsun/security/krb5/EncryptionKey;
        70: .line 366
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.flags:Lsun/security/krb5/internal/TicketFlags;
        71: .line 367
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.authtime:Lsun/security/krb5/internal/KerberosTime;
        72: .line 368
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.starttime:Lsun/security/krb5/internal/KerberosTime;
        73: .line 369
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.endtime:Lsun/security/krb5/internal/KerberosTime;
        74: .line 370
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.renewTill:Lsun/security/krb5/internal/KerberosTime;
        75: .line 371
            aload 8 /* enc_ticketPart */
            getfield sun.security.krb5.internal.EncTicketPart.caddr:Lsun/security/krb5/internal/HostAddresses;
        76: .line 372
            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
        77: .line 361
            putfield sun.security.krb5.KrbApReq.creds:Lsun/security/krb5/Credentials;
        78: .line 373
            getstatic sun.security.krb5.KrbApReq.DEBUG:Z
            ifeq 80
        79: .line 374
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc ">>> KrbApReq: authenticate succeed."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        80: .line 376
      StackMap locals:
      StackMap stack:
            return
        end local 14 // sun.security.krb5.internal.KerberosTime now
        end local 13 // sun.security.krb5.internal.rcache.AuthTimeWithHash time
        end local 12 // char[] h
        end local 11 // byte[] hash
        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   81     0            this  Lsun/security/krb5/KrbApReq;
            0   81     1            keys  [Lsun/security/krb5/EncryptionKey;
            0   81     2       initiator  Ljava/net/InetAddress;
            1   81     3  encPartKeyType  I
            2   81     4            kvno  Ljava/lang/Integer;
            3   81     5            dkey  Lsun/security/krb5/EncryptionKey;
           12   81     6           bytes  [B
           13   81     7            temp  [B
           14   81     8  enc_ticketPart  Lsun/security/krb5/internal/EncTicketPart;
           18   81     9          bytes2  [B
           19   81    10           temp2  [B
           30   81    11            hash  [B
           31   81    12               h  [C
           32   37    13               i  I
           44   81    13            time  Lsun/security/krb5/internal/rcache/AuthTimeWithHash;
           47   57    14          sender  Lsun/security/krb5/internal/HostAddress;
           58   81    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 383
            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 387
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
            ifnull 2
         1: .line 388
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.ctime:Lsun/security/krb5/internal/KerberosTime;
            areturn
         2: .line 389
      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 393
            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 397
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnonnull 2
         1: .line 398
            aload 0 /* this */
            invokevirtual sun.security.krb5.KrbApReq.decode:()V
         2: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnull 4
         3: .line 400
            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 401
      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 411
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnonnull 2
         1: .line 412
            aload 0 /* this */
            invokevirtual sun.security.krb5.KrbApReq.decode:()V
         2: .line 413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnull 4
         3: .line 414
            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 415
      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 419
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnonnull 2
         1: .line 420
            aload 0 /* this */
            invokevirtual sun.security.krb5.KrbApReq.decode:()V
         2: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
            ifnull 4
         3: .line 422
            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 423
      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 432
            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 442
            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 451
            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 458
            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 466
            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 482
            aconst_null
            astore 11 /* seqno */
        start local 11 // java.lang.Integer seqno
         1: .line 484
            aload 8 /* seqNumber */
            ifnull 3
         2: .line 485
            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 487
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 0 /* this */
         4: .line 488
            new sun.security.krb5.internal.Authenticator
            dup
            aload 4 /* cname */
         5: .line 489
            aload 5 /* cksum */
         6: .line 490
            aload 6 /* ctime */
            invokevirtual sun.security.krb5.internal.KerberosTime.getMicroSeconds:()I
         7: .line 491
            aload 6 /* ctime */
         8: .line 492
            aload 7 /* subKey */
         9: .line 493
            aload 11 /* seqno */
        10: .line 494
            aload 9 /* authorizationData */
        11: .line 488
            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 487
            putfield sun.security.krb5.KrbApReq.authenticator:Lsun/security/krb5/internal/Authenticator;
        13: .line 496
            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 499
            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 498
            astore 13 /* encAuthenticator */
        start local 13 // sun.security.krb5.EncryptedData encAuthenticator
        16: .line 501
            aload 0 /* this */
        17: .line 502
            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 501
            putfield sun.security.krb5.KrbApReq.apReqMessg:Lsun/security/krb5/internal/APReq;
        19: .line 503
            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 507
            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 508
            iload 0 /* target */
            aload 1 /* etypes */
            invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I[I)Z
            ifne 5
         2: .line 509
            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
         3: .line 510
            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;
         4: .line 509
            invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 512
      StackMap locals: int[]
      StackMap stack:
            return
        end local 1 // int[] etypes
        end local 0 // int target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  target  I
            1    6     1  etypes  [I
    Exceptions:
      throws sun.security.krb5.KrbException
    MethodParameters:
        Name  Flags
      target  
}
SourceFile: "KrbApReq.java"