public class sun.security.krb5.internal.crypto.DesMacKCksumType extends sun.security.krb5.internal.crypto.CksumType
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.krb5.internal.crypto.DesMacKCksumType
  super_class: sun.security.krb5.internal.crypto.CksumType
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
         0: .line 40
            aload 0 /* this */
            invokespecial sun.security.krb5.internal.crypto.CksumType.<init>:()V
         1: .line 41
            return
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;

  public int confounderSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
         0: .line 44
            iconst_0
            ireturn
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;

  public int cksumType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
         0: .line 48
            iconst_5
            ireturn
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;

  public boolean isSafe();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
         0: .line 52
            iconst_1
            ireturn
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;

  public int cksumSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
         0: .line 56
            bipush 16
            ireturn
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;

  public int keyType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
         0: .line 60
            iconst_1
            ireturn
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;

  public int keySize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
         0: .line 64
            bipush 8
            ireturn
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;

  public byte[] calculateChecksum(byte[], int);
    descriptor: ([BI)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
        start local 1 // byte[] data
        start local 2 // int size
         0: .line 68
            aconst_null
            areturn
        end local 2 // int size
        end local 1 // byte[] data
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;
            0    1     1  data  [B
            0    1     2  size  I
    MethodParameters:
      Name  Flags
      data  
      size  

  public byte[] calculateKeyedChecksum(byte[], int, byte[], int);
    descriptor: ([BI[BI)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
        start local 1 // byte[] data
        start local 2 // int size
        start local 3 // byte[] key
        start local 4 // int usage
         0: .line 84
            aload 3 /* key */
            iconst_0
            invokestatic javax.crypto.spec.DESKeySpec.isWeak:([BI)Z
            ifeq 4
         1: .line 85
            aload 3 /* key */
            bipush 7
            aload 3 /* key */
            bipush 7
            baload
            sipush 240
            ixor
            i2b
            bastore
         2: .line 87
            goto 4
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
         3: pop
         4: .line 90
      StackMap locals:
      StackMap stack:
            aload 3 /* key */
            arraylength
            newarray 8
            astore 5 /* ivec */
        start local 5 // byte[] ivec
         5: .line 91
            aload 3 /* key */
            iconst_0
            aload 5 /* ivec */
            iconst_0
            aload 3 /* key */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 92
            aload 5 /* ivec */
            aload 1 /* data */
            aload 3 /* key */
            invokestatic sun.security.krb5.internal.crypto.Des.des_cksum:([B[B[B)[B
            astore 6 /* cksum */
        start local 6 // byte[] cksum
         7: .line 93
            aload 6 /* cksum */
            areturn
        end local 6 // byte[] cksum
        end local 5 // byte[] ivec
        end local 4 // int usage
        end local 3 // byte[] key
        end local 2 // int size
        end local 1 // byte[] data
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;
            0    8     1   data  [B
            0    8     2   size  I
            0    8     3    key  [B
            0    8     4  usage  I
            5    8     5   ivec  [B
            7    8     6  cksum  [B
      Exception table:
        from    to  target  type
           0     2       3  Class java.security.InvalidKeyException
    Exceptions:
      throws sun.security.krb5.KrbCryptoException
    MethodParameters:
       Name  Flags
      data   
      size   
      key    
      usage  

  public boolean verifyKeyedChecksum(byte[], int, byte[], byte[], int);
    descriptor: ([BI[B[BI)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
        start local 1 // byte[] data
        start local 2 // int size
        start local 3 // byte[] key
        start local 4 // byte[] checksum
        start local 5 // int usage
         0: .line 98
            aload 0 /* this */
            aload 1 /* data */
            aload 1 /* data */
            arraylength
            aload 3 /* key */
            iload 5 /* usage */
            invokevirtual sun.security.krb5.internal.crypto.DesMacKCksumType.calculateKeyedChecksum:([BI[BI)[B
            astore 6 /* new_cksum */
        start local 6 // byte[] new_cksum
         1: .line 99
            aload 4 /* checksum */
            aload 6 /* new_cksum */
            invokestatic sun.security.krb5.internal.crypto.DesMacKCksumType.isChecksumEqual:([B[B)Z
            ireturn
        end local 6 // byte[] new_cksum
        end local 5 // int usage
        end local 4 // byte[] checksum
        end local 3 // byte[] key
        end local 2 // int size
        end local 1 // byte[] data
        end local 0 // sun.security.krb5.internal.crypto.DesMacKCksumType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lsun/security/krb5/internal/crypto/DesMacKCksumType;
            0    2     1       data  [B
            0    2     2       size  I
            0    2     3        key  [B
            0    2     4   checksum  [B
            0    2     5      usage  I
            1    2     6  new_cksum  [B
    Exceptions:
      throws sun.security.krb5.KrbCryptoException
    MethodParameters:
          Name  Flags
      data      
      size      
      key       
      checksum  
      usage     
}
SourceFile: "DesMacKCksumType.java"