public class sun.security.krb5.EncryptionKey implements java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.krb5.EncryptionKey
  super_class: java.lang.Object
{
  public static final sun.security.krb5.EncryptionKey NULL_KEY;
    descriptor: Lsun/security/krb5/EncryptionKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

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

  private byte[] keyValue;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer kvno;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 71
            new sun.security.krb5.EncryptionKey
            dup
            iconst_0
            newarray 8
            iconst_0
            aconst_null
            invokespecial sun.security.krb5.EncryptionKey.<init>:([BILjava/lang/Integer;)V
         1: .line 70
            putstatic sun.security.krb5.EncryptionKey.NULL_KEY:Lsun/security/krb5/EncryptionKey;
         2: .line 77
            getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
            putstatic sun.security.krb5.EncryptionKey.DEBUG:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public synchronized int getEType();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.EncryptionKey this
         0: .line 80
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            ireturn
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/EncryptionKey;

  public final java.lang.Integer getKeyVersionNumber();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.EncryptionKey this
         0: .line 84
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.kvno:Ljava/lang/Integer;
            areturn
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/EncryptionKey;

  public final byte[] getBytes();
    descriptor: ()[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.EncryptionKey this
         0: .line 93
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            areturn
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/EncryptionKey;

  public synchronized java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // sun.security.krb5.EncryptionKey this
         0: .line 97
            new sun.security.krb5.EncryptionKey
            dup
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.kvno:Ljava/lang/Integer;
            invokespecial sun.security.krb5.EncryptionKey.<init>:([BILjava/lang/Integer;)V
            areturn
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/EncryptionKey;

  public static sun.security.krb5.EncryptionKey[] acquireSecretKeys(sun.security.krb5.PrincipalName, java.lang.String);
    descriptor: (Lsun/security/krb5/PrincipalName;Ljava/lang/String;)[Lsun/security/krb5/EncryptionKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.krb5.PrincipalName princ
        start local 1 // java.lang.String keytab
         0: .line 113
            aload 0 /* princ */
            ifnonnull 4
         1: .line 114
            new java.lang.IllegalArgumentException
            dup
         2: .line 115
            ldc "Cannot have null pricipal name to look in keytab."
         3: .line 114
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 119
      StackMap locals:
      StackMap stack:
            aload 1 /* keytab */
            invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:(Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
            astore 2 /* ktab */
        start local 2 // sun.security.krb5.internal.ktab.KeyTab ktab
         5: .line 120
            aload 2 /* ktab */
            aload 0 /* princ */
            invokevirtual sun.security.krb5.internal.ktab.KeyTab.readServiceKeys:(Lsun/security/krb5/PrincipalName;)[Lsun/security/krb5/EncryptionKey;
            areturn
        end local 2 // sun.security.krb5.internal.ktab.KeyTab ktab
        end local 1 // java.lang.String keytab
        end local 0 // sun.security.krb5.PrincipalName princ
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0   princ  Lsun/security/krb5/PrincipalName;
            0    6     1  keytab  Ljava/lang/String;
            5    6     2    ktab  Lsun/security/krb5/internal/ktab/KeyTab;
    MethodParameters:
        Name  Flags
      princ   
      keytab  

  public static sun.security.krb5.EncryptionKey acquireSecretKey(sun.security.krb5.PrincipalName, char[], int, sun.security.krb5.internal.PAData$SaltAndParams);
    descriptor: (Lsun/security/krb5/PrincipalName;[CILsun/security/krb5/internal/PAData$SaltAndParams;)Lsun/security/krb5/EncryptionKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // sun.security.krb5.PrincipalName cname
        start local 1 // char[] password
        start local 2 // int etype
        start local 3 // sun.security.krb5.internal.PAData$SaltAndParams snp
         0: .line 137
            aload 3 /* snp */
            ifnull 6
         1: .line 138
            aload 3 /* snp */
            getfield sun.security.krb5.internal.PAData$SaltAndParams.salt:Ljava/lang/String;
            ifnull 2
            aload 3 /* snp */
            getfield sun.security.krb5.internal.PAData$SaltAndParams.salt:Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* cname */
            invokevirtual sun.security.krb5.PrincipalName.getSalt:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 4 /* salt */
        start local 4 // java.lang.String salt
         4: .line 139
            aload 3 /* snp */
            getfield sun.security.krb5.internal.PAData$SaltAndParams.params:[B
            astore 5 /* s2kparams */
        start local 5 // byte[] s2kparams
         5: .line 140
            goto 8
        end local 5 // byte[] s2kparams
        end local 4 // java.lang.String salt
         6: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* cname */
            invokevirtual sun.security.krb5.PrincipalName.getSalt:()Ljava/lang/String;
            astore 4 /* salt */
        start local 4 // java.lang.String salt
         7: .line 142
            aconst_null
            astore 5 /* s2kparams */
        start local 5 // byte[] s2kparams
         8: .line 144
      StackMap locals: java.lang.String byte[]
      StackMap stack:
            aload 1 /* password */
            aload 4 /* salt */
            iload 2 /* etype */
            aload 5 /* s2kparams */
            invokestatic sun.security.krb5.EncryptionKey.acquireSecretKey:([CLjava/lang/String;I[B)Lsun/security/krb5/EncryptionKey;
            areturn
        end local 5 // byte[] s2kparams
        end local 4 // java.lang.String salt
        end local 3 // sun.security.krb5.internal.PAData$SaltAndParams snp
        end local 2 // int etype
        end local 1 // char[] password
        end local 0 // sun.security.krb5.PrincipalName cname
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0      cname  Lsun/security/krb5/PrincipalName;
            0    9     1   password  [C
            0    9     2      etype  I
            0    9     3        snp  Lsun/security/krb5/internal/PAData$SaltAndParams;
            4    6     4       salt  Ljava/lang/String;
            7    9     4       salt  Ljava/lang/String;
            5    6     5  s2kparams  [B
            8    9     5  s2kparams  [B
    Exceptions:
      throws sun.security.krb5.KrbException
    MethodParameters:
          Name  Flags
      cname     
      password  
      etype     
      snp       

  public static sun.security.krb5.EncryptionKey acquireSecretKey(char[], java.lang.String, int, byte[]);
    descriptor: ([CLjava/lang/String;I[B)Lsun/security/krb5/EncryptionKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // char[] password
        start local 1 // java.lang.String salt
        start local 2 // int etype
        start local 3 // byte[] s2kparams
         0: .line 159
            new sun.security.krb5.EncryptionKey
            dup
         1: .line 160
            aload 0 /* password */
            aload 1 /* salt */
            aload 3 /* s2kparams */
            iload 2 /* etype */
            invokestatic sun.security.krb5.EncryptionKey.stringToKey:([CLjava/lang/String;[BI)[B
         2: .line 161
            iload 2 /* etype */
            aconst_null
         3: .line 159
            invokespecial sun.security.krb5.EncryptionKey.<init>:([BILjava/lang/Integer;)V
            areturn
        end local 3 // byte[] s2kparams
        end local 2 // int etype
        end local 1 // java.lang.String salt
        end local 0 // char[] password
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0   password  [C
            0    4     1       salt  Ljava/lang/String;
            0    4     2      etype  I
            0    4     3  s2kparams  [B
    Exceptions:
      throws sun.security.krb5.KrbException
    MethodParameters:
           Name  Flags
      password   
      salt       
      etype      
      s2kparams  

  public static sun.security.krb5.EncryptionKey[] acquireSecretKeys(char[], java.lang.String);
    descriptor: ([CLjava/lang/String;)[Lsun/security/krb5/EncryptionKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=5, args_size=2
        start local 0 // char[] password
        start local 1 // java.lang.String salt
         0: .line 180
            ldc "default_tkt_enctypes"
            invokestatic sun.security.krb5.internal.crypto.EType.getDefaults:(Ljava/lang/String;)[I
            astore 2 /* etypes */
        start local 2 // int[] etypes
         1: .line 182
            aload 2 /* etypes */
            arraylength
            anewarray sun.security.krb5.EncryptionKey
            astore 3 /* encKeys */
        start local 3 // sun.security.krb5.EncryptionKey[] encKeys
         2: .line 183
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 16
         4: .line 184
      StackMap locals: int[] sun.security.krb5.EncryptionKey[] int
      StackMap stack:
            aload 2 /* etypes */
            iload 4 /* i */
            iaload
            invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I)Z
            ifeq 10
         5: .line 185
            aload 3 /* encKeys */
            iload 4 /* i */
            new sun.security.krb5.EncryptionKey
            dup
         6: .line 186
            aload 0 /* password */
            aload 1 /* salt */
            aconst_null
            aload 2 /* etypes */
            iload 4 /* i */
            iaload
            invokestatic sun.security.krb5.EncryptionKey.stringToKey:([CLjava/lang/String;[BI)[B
         7: .line 187
            aload 2 /* etypes */
            iload 4 /* i */
            iaload
            aconst_null
            invokespecial sun.security.krb5.EncryptionKey.<init>:([BILjava/lang/Integer;)V
         8: .line 185
            aastore
         9: .line 188
            goto 15
        10: .line 189
      StackMap locals:
      StackMap stack:
            getstatic sun.security.krb5.EncryptionKey.DEBUG:Z
            ifeq 15
        11: .line 190
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Encryption Type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 191
            aload 2 /* etypes */
            iload 4 /* i */
            iaload
            invokestatic sun.security.krb5.internal.crypto.EType.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 192
            ldc " is not supported/enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 190
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 183
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            aload 2 /* etypes */
            arraylength
            if_icmplt 4
        end local 4 // int i
        17: .line 196
            aload 3 /* encKeys */
            areturn
        end local 3 // sun.security.krb5.EncryptionKey[] encKeys
        end local 2 // int[] etypes
        end local 1 // java.lang.String salt
        end local 0 // char[] password
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0  password  [C
            0   18     1      salt  Ljava/lang/String;
            1   18     2    etypes  [I
            2   18     3   encKeys  [Lsun/security/krb5/EncryptionKey;
            3   17     4         i  I
    Exceptions:
      throws sun.security.krb5.KrbException
    MethodParameters:
          Name  Flags
      password  
      salt      

  public void <init>(byte[], int, java.lang.Integer);
    descriptor: ([BILjava/lang/Integer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.security.krb5.EncryptionKey this
        start local 1 // byte[] keyValue
        start local 2 // int keyType
        start local 3 // java.lang.Integer kvno
         0: .line 200
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 204
            aload 1 /* keyValue */
            ifnull 5
         2: .line 205
            aload 0 /* this */
            aload 1 /* keyValue */
            arraylength
            newarray 8
            putfield sun.security.krb5.EncryptionKey.keyValue:[B
         3: .line 206
            aload 1 /* keyValue */
            iconst_0
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iconst_0
            aload 1 /* keyValue */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 207
            goto 6
         5: .line 208
      StackMap locals: sun.security.krb5.EncryptionKey byte[] int java.lang.Integer
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "EncryptionKey: Key bytes cannot be null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* keyType */
            putfield sun.security.krb5.EncryptionKey.keyType:I
         7: .line 212
            aload 0 /* this */
            aload 3 /* kvno */
            putfield sun.security.krb5.EncryptionKey.kvno:Ljava/lang/Integer;
         8: .line 213
            return
        end local 3 // java.lang.Integer kvno
        end local 2 // int keyType
        end local 1 // byte[] keyValue
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lsun/security/krb5/EncryptionKey;
            0    9     1  keyValue  [B
            0    9     2   keyType  I
            0    9     3      kvno  Ljava/lang/Integer;
    MethodParameters:
          Name  Flags
      keyValue  
      keyType   
      kvno      

  public void <init>(int, byte[]);
    descriptor: (I[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.krb5.EncryptionKey this
        start local 1 // int keyType
        start local 2 // byte[] keyValue
         0: .line 225
            aload 0 /* this */
            aload 2 /* keyValue */
            iload 1 /* keyType */
            aconst_null
            invokespecial sun.security.krb5.EncryptionKey.<init>:([BILjava/lang/Integer;)V
         1: .line 226
            return
        end local 2 // byte[] keyValue
        end local 1 // int keyType
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/security/krb5/EncryptionKey;
            0    2     1   keyType  I
            0    2     2  keyValue  [B
    MethodParameters:
          Name  Flags
      keyType   
      keyValue  

  private static byte[] stringToKey(char[], java.lang.String, byte[], int);
    descriptor: ([CLjava/lang/String;[BI)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // char[] password
        start local 1 // java.lang.String salt
        start local 2 // byte[] s2kparams
        start local 3 // int keyType
         0: .line 231
            aload 1 /* salt */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 4 /* slt */
        start local 4 // char[] slt
         1: .line 232
            aload 0 /* password */
            arraylength
            aload 4 /* slt */
            arraylength
            iadd
            newarray 5
            astore 5 /* pwsalt */
        start local 5 // char[] pwsalt
         2: .line 233
            aload 0 /* password */
            iconst_0
            aload 5 /* pwsalt */
            iconst_0
            aload 0 /* password */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 234
            aload 4 /* slt */
            iconst_0
            aload 5 /* pwsalt */
            aload 0 /* password */
            arraylength
            aload 4 /* slt */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 235
            aload 4 /* slt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
         5: .line 238
            iload 3 /* keyType */
            lookupswitch { // 8
                    1: 6
                    3: 6
                   16: 9
                   17: 15
                   18: 18
                   19: 21
                   20: 24
                   23: 12
              default: 27
          }
         6: .line 241
      StackMap locals: char[] char[]
      StackMap stack:
            aload 5 /* pwsalt */
            invokestatic sun.security.krb5.internal.crypto.Des.string_to_key_bytes:([C)[B
            astore 9
         7: .line 271
            aload 5 /* pwsalt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
         8: .line 241
            aload 9
            areturn
         9: .line 244
      StackMap locals:
      StackMap stack:
            aload 5 /* pwsalt */
            invokestatic sun.security.krb5.internal.crypto.Des3.stringToKey:([C)[B
            astore 9
        10: .line 271
            aload 5 /* pwsalt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
        11: .line 244
            aload 9
            areturn
        12: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* password */
            invokestatic sun.security.krb5.internal.crypto.ArcFourHmac.stringToKey:([C)[B
            astore 9
        13: .line 271
            aload 5 /* pwsalt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
        14: .line 247
            aload 9
            areturn
        15: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* password */
            aload 1 /* salt */
            aload 2 /* s2kparams */
            invokestatic sun.security.krb5.internal.crypto.Aes128.stringToKey:([CLjava/lang/String;[B)[B
            astore 9
        16: .line 271
            aload 5 /* pwsalt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
        17: .line 250
            aload 9
            areturn
        18: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* password */
            aload 1 /* salt */
            aload 2 /* s2kparams */
            invokestatic sun.security.krb5.internal.crypto.Aes256.stringToKey:([CLjava/lang/String;[B)[B
            astore 9
        19: .line 271
            aload 5 /* pwsalt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
        20: .line 253
            aload 9
            areturn
        21: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* password */
            aload 1 /* salt */
            aload 2 /* s2kparams */
            invokestatic sun.security.krb5.internal.crypto.Aes128Sha2.stringToKey:([CLjava/lang/String;[B)[B
            astore 9
        22: .line 271
            aload 5 /* pwsalt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
        23: .line 256
            aload 9
            areturn
        24: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* password */
            aload 1 /* salt */
            aload 2 /* s2kparams */
            invokestatic sun.security.krb5.internal.crypto.Aes256Sha2.stringToKey:([CLjava/lang/String;[B)[B
            astore 9
        25: .line 271
            aload 5 /* pwsalt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
        26: .line 259
            aload 9
            areturn
        27: .line 262
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "encryption type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        28: .line 263
            iload 3 /* keyType */
            invokestatic sun.security.krb5.internal.crypto.EType.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 262
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 266
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 6 /* e */
        start local 6 // java.security.GeneralSecurityException e
        31: .line 267
            new sun.security.krb5.KrbCryptoException
            dup
            aload 6 /* e */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
            astore 7 /* ke */
        start local 7 // sun.security.krb5.KrbCryptoException ke
        32: .line 268
            aload 7 /* ke */
            aload 6 /* e */
            invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        33: .line 269
            aload 7 /* ke */
            athrow
        end local 7 // sun.security.krb5.KrbCryptoException ke
        end local 6 // java.security.GeneralSecurityException e
        34: .line 270
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        35: .line 271
            aload 5 /* pwsalt */
            bipush 48
            invokestatic java.util.Arrays.fill:([CC)V
        36: .line 272
            aload 8
            athrow
        end local 5 // char[] pwsalt
        end local 4 // char[] slt
        end local 3 // int keyType
        end local 2 // byte[] s2kparams
        end local 1 // java.lang.String salt
        end local 0 // char[] password
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   37     0   password  [C
            0   37     1       salt  Ljava/lang/String;
            0   37     2  s2kparams  [B
            0   37     3    keyType  I
            1   37     4        slt  [C
            2   37     5     pwsalt  [C
           31   34     6          e  Ljava/security/GeneralSecurityException;
           32   34     7         ke  Lsun/security/krb5/KrbCryptoException;
      Exception table:
        from    to  target  type
           5     7      30  Class java.security.GeneralSecurityException
           9    10      30  Class java.security.GeneralSecurityException
          12    13      30  Class java.security.GeneralSecurityException
          15    16      30  Class java.security.GeneralSecurityException
          18    19      30  Class java.security.GeneralSecurityException
          21    22      30  Class java.security.GeneralSecurityException
          24    25      30  Class java.security.GeneralSecurityException
          27    30      30  Class java.security.GeneralSecurityException
           5     7      34  any
           9    10      34  any
          12    13      34  any
          15    16      34  any
          18    19      34  any
          21    22      34  any
          24    25      34  any
          27    34      34  any
    Exceptions:
      throws sun.security.krb5.KrbCryptoException
    MethodParameters:
           Name  Flags
      password   
      salt       
      s2kparams  
      keyType    

  public void <init>(char[], java.lang.String, java.lang.String);
    descriptor: ([CLjava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.security.krb5.EncryptionKey this
        start local 1 // char[] password
        start local 2 // java.lang.String salt
        start local 3 // java.lang.String algorithm
         0: .line 276
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 280
            aload 3 /* algorithm */
            ifnull 3
            aload 3 /* algorithm */
            ldc "DES"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 3
         2: .line 281
            aload 3 /* algorithm */
            ldc "des-cbc-md5"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 282
      StackMap locals: sun.security.krb5.EncryptionKey char[] java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield sun.security.krb5.EncryptionKey.keyType:I
         4: .line 283
            goto 39
      StackMap locals:
      StackMap stack:
         5: aload 3 /* algorithm */
            ldc "des-cbc-crc"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 284
            aload 0 /* this */
            iconst_1
            putfield sun.security.krb5.EncryptionKey.keyType:I
         7: .line 285
            goto 39
      StackMap locals:
      StackMap stack:
         8: aload 3 /* algorithm */
            ldc "DESede"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 10
         9: .line 286
            aload 3 /* algorithm */
            ldc "des3-cbc-sha1-kd"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 16
            putfield sun.security.krb5.EncryptionKey.keyType:I
        11: .line 288
            goto 39
      StackMap locals:
      StackMap stack:
        12: aload 3 /* algorithm */
            ldc "AES128"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 14
        13: .line 289
            aload 3 /* algorithm */
            ldc "aes128-cts-hmac-sha1-96"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 16
        14: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 17
            putfield sun.security.krb5.EncryptionKey.keyType:I
        15: .line 291
            goto 39
      StackMap locals:
      StackMap stack:
        16: aload 3 /* algorithm */
            ldc "ArcFourHmac"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 18
        17: .line 292
            aload 3 /* algorithm */
            ldc "rc4-hmac"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 20
        18: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 23
            putfield sun.security.krb5.EncryptionKey.keyType:I
        19: .line 294
            goto 39
      StackMap locals:
      StackMap stack:
        20: aload 3 /* algorithm */
            ldc "AES256"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 22
        21: .line 295
            aload 3 /* algorithm */
            ldc "aes256-cts-hmac-sha1-96"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 27
        22: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 18
            putfield sun.security.krb5.EncryptionKey.keyType:I
        23: .line 298
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I)Z
            ifne 39
        24: .line 299
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Algorithm "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 300
            ldc " not enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 299
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 302
      StackMap locals:
      StackMap stack:
            aload 3 /* algorithm */
            ldc "aes128-cts-hmac-sha256-128"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 30
        28: .line 303
            aload 0 /* this */
            bipush 19
            putfield sun.security.krb5.EncryptionKey.keyType:I
        29: .line 304
            goto 39
      StackMap locals:
      StackMap stack:
        30: aload 3 /* algorithm */
            ldc "aes256-cts-hmac-sha384-192"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 36
        31: .line 305
            aload 0 /* this */
            bipush 20
            putfield sun.security.krb5.EncryptionKey.keyType:I
        32: .line 307
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I)Z
            ifne 39
        33: .line 308
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Algorithm "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 309
            ldc " not enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        35: .line 308
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 312
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Algorithm "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 313
            ldc " not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 312
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* password */
            aload 2 /* salt */
            aconst_null
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            invokestatic sun.security.krb5.EncryptionKey.stringToKey:([CLjava/lang/String;[BI)[B
            putfield sun.security.krb5.EncryptionKey.keyValue:[B
        40: .line 317
            aload 0 /* this */
            aconst_null
            putfield sun.security.krb5.EncryptionKey.kvno:Ljava/lang/Integer;
        41: .line 318
            return
        end local 3 // java.lang.String algorithm
        end local 2 // java.lang.String salt
        end local 1 // char[] password
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   42     0       this  Lsun/security/krb5/EncryptionKey;
            0   42     1   password  [C
            0   42     2       salt  Ljava/lang/String;
            0   42     3  algorithm  Ljava/lang/String;
    Exceptions:
      throws sun.security.krb5.KrbCryptoException
    MethodParameters:
           Name  Flags
      password   
      salt       
      algorithm  

  public void <init>(sun.security.krb5.EncryptionKey);
    descriptor: (Lsun/security/krb5/EncryptionKey;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.krb5.EncryptionKey this
        start local 1 // sun.security.krb5.EncryptionKey key
         0: .line 326
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 328
            aload 0 /* this */
            aload 1 /* key */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            arraylength
            invokestatic sun.security.krb5.Confounder.bytes:(I)[B
            putfield sun.security.krb5.EncryptionKey.keyValue:[B
         2: .line 329
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 330
      StackMap locals: sun.security.krb5.EncryptionKey sun.security.krb5.EncryptionKey int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iload 2 /* i */
            dup2
            baload
            aload 1 /* key */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iload 2 /* i */
            baload
            ixor
            i2b
            bastore
         5: .line 329
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            arraylength
            if_icmplt 4
        end local 2 // int i
         7: .line 332
            aload 0 /* this */
            aload 1 /* key */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            putfield sun.security.krb5.EncryptionKey.keyType:I
         8: .line 337
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            iconst_3
            if_icmpeq 10
         9: .line 338
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            iconst_1
            if_icmpne 14
        10: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iconst_0
            invokestatic javax.crypto.spec.DESKeySpec.isParityAdjusted:([BI)Z
            ifne 12
        11: .line 341
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            invokestatic sun.security.krb5.internal.crypto.Des.set_parity:([B)[B
            putfield sun.security.krb5.EncryptionKey.keyValue:[B
        12: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iconst_0
            invokestatic javax.crypto.spec.DESKeySpec.isWeak:([BI)Z
            ifeq 14
        13: .line 345
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            bipush 7
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            bipush 7
            baload
            sipush 240
            ixor
            i2b
            bastore
        14: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            bipush 16
            if_icmpne 30
        15: .line 351
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iconst_0
            invokestatic javax.crypto.spec.DESedeKeySpec.isParityAdjusted:([BI)Z
            ifne 17
        16: .line 352
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            invokestatic sun.security.krb5.internal.crypto.Des3.parityFix:([B)[B
            putfield sun.security.krb5.EncryptionKey.keyValue:[B
        17: .line 355
      StackMap locals:
      StackMap stack:
            bipush 8
            newarray 8
            astore 2 /* oneKey */
        start local 2 // byte[] oneKey
        18: .line 356
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        19: goto 24
        20: .line 357
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iload 3 /* i */
            aload 2 /* oneKey */
            iconst_0
            bipush 8
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 358
            aload 2 /* oneKey */
            iconst_0
            invokestatic javax.crypto.spec.DESKeySpec.isWeak:([BI)Z
            ifeq 23
        22: .line 359
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iload 3 /* i */
            bipush 7
            iadd
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iload 3 /* i */
            bipush 7
            iadd
            baload
            sipush 240
            ixor
            i2b
            bastore
        23: .line 356
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 8
      StackMap locals:
      StackMap stack:
        24: iload 3 /* i */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            arraylength
            if_icmplt 20
        end local 3 // int i
        end local 2 // byte[] oneKey
        25: .line 363
            goto 30
      StackMap locals: sun.security.krb5.EncryptionKey sun.security.krb5.EncryptionKey
      StackMap stack: java.security.GeneralSecurityException
        26: astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        27: .line 364
            new sun.security.krb5.KrbCryptoException
            dup
            aload 2 /* e */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
            astore 3 /* ke */
        start local 3 // sun.security.krb5.KrbCryptoException ke
        28: .line 365
            aload 3 /* ke */
            aload 2 /* e */
            invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        29: .line 366
            aload 3 /* ke */
            athrow
        end local 3 // sun.security.krb5.KrbCryptoException ke
        end local 2 // java.security.GeneralSecurityException e
        30: .line 368
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.krb5.EncryptionKey key
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0    this  Lsun/security/krb5/EncryptionKey;
            0   31     1     key  Lsun/security/krb5/EncryptionKey;
            3    7     2       i  I
           18   25     2  oneKey  [B
           19   25     3       i  I
           27   30     2       e  Ljava/security/GeneralSecurityException;
           28   30     3      ke  Lsun/security/krb5/KrbCryptoException;
      Exception table:
        from    to  target  type
           8    25      26  Class java.security.GeneralSecurityException
    Exceptions:
      throws sun.security.krb5.KrbCryptoException
    MethodParameters:
      Name  Flags
      key   

  public void <init>(sun.security.util.DerValue);
    descriptor: (Lsun/security/util/DerValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.krb5.EncryptionKey this
        start local 1 // sun.security.util.DerValue encoding
         0: .line 381
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 383
            aload 1 /* encoding */
            invokevirtual sun.security.util.DerValue.getTag:()B
            bipush 48
            if_icmpeq 3
         2: .line 384
            new sun.security.krb5.Asn1Exception
            dup
            sipush 906
            invokespecial sun.security.krb5.Asn1Exception.<init>:(I)V
            athrow
         3: .line 386
      StackMap locals: sun.security.krb5.EncryptionKey sun.security.util.DerValue
      StackMap stack:
            aload 1 /* encoding */
            invokevirtual sun.security.util.DerValue.getData:()Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 2 /* der */
        start local 2 // sun.security.util.DerValue der
         4: .line 387
            aload 2 /* der */
            invokevirtual sun.security.util.DerValue.getTag:()B
            bipush 31
            iand
            ifne 7
         5: .line 388
            aload 0 /* this */
            aload 2 /* der */
            invokevirtual sun.security.util.DerValue.getData:()Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            putfield sun.security.krb5.EncryptionKey.keyType:I
         6: .line 389
            goto 8
         7: .line 391
      StackMap locals: sun.security.util.DerValue
      StackMap stack:
            new sun.security.krb5.Asn1Exception
            dup
            sipush 906
            invokespecial sun.security.krb5.Asn1Exception.<init>:(I)V
            athrow
         8: .line 392
      StackMap locals:
      StackMap stack:
            aload 1 /* encoding */
            invokevirtual sun.security.util.DerValue.getData:()Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 2 /* der */
         9: .line 393
            aload 2 /* der */
            invokevirtual sun.security.util.DerValue.getTag:()B
            bipush 31
            iand
            iconst_1
            if_icmpne 12
        10: .line 394
            aload 0 /* this */
            aload 2 /* der */
            invokevirtual sun.security.util.DerValue.getData:()Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            putfield sun.security.krb5.EncryptionKey.keyValue:[B
        11: .line 395
            goto 13
        12: .line 397
      StackMap locals:
      StackMap stack:
            new sun.security.krb5.Asn1Exception
            dup
            sipush 906
            invokespecial sun.security.krb5.Asn1Exception.<init>:(I)V
            athrow
        13: .line 398
      StackMap locals:
      StackMap stack:
            aload 2 /* der */
            invokevirtual sun.security.util.DerValue.getData:()Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifle 15
        14: .line 399
            new sun.security.krb5.Asn1Exception
            dup
            sipush 906
            invokespecial sun.security.krb5.Asn1Exception.<init>:(I)V
            athrow
        15: .line 401
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.security.util.DerValue der
        end local 1 // sun.security.util.DerValue encoding
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lsun/security/krb5/EncryptionKey;
            0   16     1  encoding  Lsun/security/util/DerValue;
            4   16     2       der  Lsun/security/util/DerValue;
    Exceptions:
      throws sun.security.krb5.Asn1Exception, java.io.IOException
    MethodParameters:
          Name  Flags
      encoding  

  public synchronized byte[] asn1Encode();
    descriptor: ()[B
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.security.krb5.EncryptionKey this
         0: .line 426
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 1 /* bytes */
        start local 1 // sun.security.util.DerOutputStream bytes
         1: .line 427
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* temp */
        start local 2 // sun.security.util.DerOutputStream temp
         2: .line 428
            aload 2 /* temp */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            invokevirtual sun.security.util.DerOutputStream.putInteger:(I)V
         3: .line 429
            aload 1 /* bytes */
            bipush -128
            iconst_1
         4: .line 430
            iconst_0
         5: .line 429
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
         6: .line 430
            aload 2 /* temp */
         7: .line 429
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
         8: .line 431
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* temp */
         9: .line 432
            aload 2 /* temp */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        10: .line 433
            aload 1 /* bytes */
            bipush -128
            iconst_1
        11: .line 434
            iconst_1
        12: .line 433
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
        13: .line 434
            aload 2 /* temp */
        14: .line 433
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        15: .line 435
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* temp */
        16: .line 436
            aload 2 /* temp */
            bipush 48
            aload 1 /* bytes */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        17: .line 437
            aload 2 /* temp */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            areturn
        end local 2 // sun.security.util.DerOutputStream temp
        end local 1 // sun.security.util.DerOutputStream bytes
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lsun/security/krb5/EncryptionKey;
            1   18     1  bytes  Lsun/security/util/DerOutputStream;
            2   18     2   temp  Lsun/security/util/DerOutputStream;
    Exceptions:
      throws sun.security.krb5.Asn1Exception, java.io.IOException

  public synchronized void destroy();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.krb5.EncryptionKey this
         0: .line 441
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            ifnull 6
         1: .line 442
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 5
         3: .line 443
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iload 1 /* i */
            iconst_0
            bastore
         4: .line 442
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            arraylength
            if_icmplt 3
        end local 1 // int i
         6: .line 444
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/krb5/EncryptionKey;
            2    6     1     i  I

  public static sun.security.krb5.EncryptionKey parse(sun.security.util.DerInputStream, byte, boolean);
    descriptor: (Lsun/security/util/DerInputStream;BZ)Lsun/security/krb5/EncryptionKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.security.util.DerInputStream data
        start local 1 // byte explicitTag
        start local 2 // boolean optional
         0: .line 466
            iload 2 /* optional */
            ifeq 3
            aload 0 /* data */
            invokevirtual sun.security.util.DerInputStream.peekByte:()I
            i2b
            bipush 31
            iand
         1: .line 467
            iload 1 /* explicitTag */
            if_icmpeq 3
         2: .line 468
            aconst_null
            areturn
         3: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* data */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 3 /* der */
        start local 3 // sun.security.util.DerValue der
         4: .line 471
            iload 1 /* explicitTag */
            aload 3 /* der */
            invokevirtual sun.security.util.DerValue.getTag:()B
            bipush 31
            iand
            if_icmpeq 6
         5: .line 472
            new sun.security.krb5.Asn1Exception
            dup
            sipush 906
            invokespecial sun.security.krb5.Asn1Exception.<init>:(I)V
            athrow
         6: .line 474
      StackMap locals: sun.security.util.DerValue
      StackMap stack:
            aload 3 /* der */
            invokevirtual sun.security.util.DerValue.getData:()Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 4 /* subDer */
        start local 4 // sun.security.util.DerValue subDer
         7: .line 475
            new sun.security.krb5.EncryptionKey
            dup
            aload 4 /* subDer */
            invokespecial sun.security.krb5.EncryptionKey.<init>:(Lsun/security/util/DerValue;)V
            areturn
        end local 4 // sun.security.util.DerValue subDer
        end local 3 // sun.security.util.DerValue der
        end local 2 // boolean optional
        end local 1 // byte explicitTag
        end local 0 // sun.security.util.DerInputStream data
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         data  Lsun/security/util/DerInputStream;
            0    8     1  explicitTag  B
            0    8     2     optional  Z
            4    8     3          der  Lsun/security/util/DerValue;
            7    8     4       subDer  Lsun/security/util/DerValue;
    Exceptions:
      throws sun.security.krb5.Asn1Exception, java.io.IOException
    MethodParameters:
             Name  Flags
      data         
      explicitTag  
      optional     

  public synchronized void writeKey(sun.security.krb5.internal.ccache.CCacheOutputStream);
    descriptor: (Lsun/security/krb5/internal/ccache/CCacheOutputStream;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.krb5.EncryptionKey this
        start local 1 // sun.security.krb5.internal.ccache.CCacheOutputStream cos
         0: .line 490
            aload 1 /* cos */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.write16:(I)V
         1: .line 492
            aload 1 /* cos */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.write16:(I)V
         2: .line 493
            aload 1 /* cos */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            arraylength
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.write32:(I)V
         3: .line 494
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 495
      StackMap locals: int
      StackMap stack:
            aload 1 /* cos */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            iload 2 /* i */
            baload
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.write8:(I)V
         6: .line 494
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            arraylength
            if_icmplt 5
        end local 2 // int i
         8: .line 497
            return
        end local 1 // sun.security.krb5.internal.ccache.CCacheOutputStream cos
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/krb5/EncryptionKey;
            0    9     1   cos  Lsun/security/krb5/internal/ccache/CCacheOutputStream;
            4    8     2     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      cos   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // sun.security.krb5.EncryptionKey this
         0: .line 500
            new java.lang.String
            dup
            new java.lang.StringBuilder
            dup
            ldc "EncryptionKey: keyType="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyType:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         1: .line 501
            ldc " kvno="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.kvno:Ljava/lang/Integer;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 502
            ldc " keyValue (hex dump)="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 503
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            ifnull 4
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            arraylength
            ifne 5
         4: .line 504
      StackMap locals: sun.security.krb5.EncryptionKey
      StackMap stack: new 0 new 0 java.lang.StringBuilder
            ldc " Empty Key"
            goto 8
      StackMap locals: sun.security.krb5.EncryptionKey
      StackMap stack: new 0 new 0 java.lang.StringBuilder
         5: new java.lang.StringBuilder
            dup
            bipush 10
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 505
            getstatic sun.security.krb5.internal.Krb5.hexDumper:Lsun/security/util/HexDumpEncoder;
            aload 0 /* this */
            getfield sun.security.krb5.EncryptionKey.keyValue:[B
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 506
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 503
      StackMap locals: sun.security.krb5.EncryptionKey
      StackMap stack: new 0 new 0 java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 500
            invokespecial java.lang.String.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // sun.security.krb5.EncryptionKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/krb5/EncryptionKey;

  public static sun.security.krb5.EncryptionKey findKey(int, sun.security.krb5.EncryptionKey[]);
    descriptor: (I[Lsun/security/krb5/EncryptionKey;)Lsun/security/krb5/EncryptionKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int etype
        start local 1 // sun.security.krb5.EncryptionKey[] keys
         0: .line 514
            iload 0 /* etype */
            aconst_null
            aload 1 /* keys */
            invokestatic sun.security.krb5.EncryptionKey.findKey:(ILjava/lang/Integer;[Lsun/security/krb5/EncryptionKey;)Lsun/security/krb5/EncryptionKey;
            areturn
        end local 1 // sun.security.krb5.EncryptionKey[] keys
        end local 0 // int etype
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  etype  I
            0    1     1   keys  [Lsun/security/krb5/EncryptionKey;
    Exceptions:
      throws sun.security.krb5.KrbException
    MethodParameters:
       Name  Flags
      etype  
      keys   

  private static boolean versionMatches(java.lang.Integer, java.lang.Integer);
    descriptor: (Ljava/lang/Integer;Ljava/lang/Integer;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Integer v1
        start local 1 // java.lang.Integer v2
         0: .line 528
            aload 0 /* v1 */
            ifnull 1
            aload 0 /* v1 */
            invokevirtual java.lang.Integer.intValue:()I
            ifeq 1
            aload 1 /* v2 */
            ifnull 1
            aload 1 /* v2 */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 2
         1: .line 529
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 531
      StackMap locals:
      StackMap stack:
            aload 0 /* v1 */
            aload 1 /* v2 */
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Integer v2
        end local 0 // java.lang.Integer v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    v1  Ljava/lang/Integer;
            0    3     1    v2  Ljava/lang/Integer;
    MethodParameters:
      Name  Flags
      v1    
      v2    

  public static sun.security.krb5.EncryptionKey findKey(int, java.lang.Integer, sun.security.krb5.EncryptionKey[]);
    descriptor: (ILjava/lang/Integer;[Lsun/security/krb5/EncryptionKey;)Lsun/security/krb5/EncryptionKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // int etype
        start local 1 // java.lang.Integer kvno
        start local 2 // sun.security.krb5.EncryptionKey[] keys
         0: .line 542
            iload 0 /* etype */
            invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I)Z
            ifne 4
         1: .line 543
            new sun.security.krb5.KrbException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Encryption type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 544
            iload 0 /* etype */
            invokestatic sun.security.krb5.internal.crypto.EType.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is not supported/enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 543
            invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 548
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* etypeFound */
        start local 4 // boolean etypeFound
         5: .line 552
            iconst_0
            istore 5 /* kvno_found */
        start local 5 // int kvno_found
         6: .line 553
            aconst_null
            astore 6 /* key_found */
        start local 6 // sun.security.krb5.EncryptionKey key_found
         7: .line 555
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         8: goto 20
         9: .line 556
      StackMap locals: int java.lang.Integer sun.security.krb5.EncryptionKey[] top int int sun.security.krb5.EncryptionKey int
      StackMap stack:
            aload 2 /* keys */
            iload 7 /* i */
            aaload
            invokevirtual sun.security.krb5.EncryptionKey.getEType:()I
            istore 3 /* ktype */
        start local 3 // int ktype
        10: .line 557
            iload 3 /* ktype */
            invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I)Z
            ifeq 19
        11: .line 558
            aload 2 /* keys */
            iload 7 /* i */
            aaload
            invokevirtual sun.security.krb5.EncryptionKey.getKeyVersionNumber:()Ljava/lang/Integer;
            astore 8 /* kv */
        start local 8 // java.lang.Integer kv
        12: .line 559
            iload 0 /* etype */
            iload 3 /* ktype */
            if_icmpne 19
        13: .line 560
            iconst_1
            istore 4 /* etypeFound */
        14: .line 561
            aload 1 /* kvno */
            aload 8 /* kv */
            invokestatic sun.security.krb5.EncryptionKey.versionMatches:(Ljava/lang/Integer;Ljava/lang/Integer;)Z
            ifeq 16
        15: .line 562
            aload 2 /* keys */
            iload 7 /* i */
            aaload
            areturn
        16: .line 563
      StackMap locals: int java.lang.Integer sun.security.krb5.EncryptionKey[] int int int sun.security.krb5.EncryptionKey int java.lang.Integer
      StackMap stack:
            aload 8 /* kv */
            invokevirtual java.lang.Integer.intValue:()I
            iload 5 /* kvno_found */
            if_icmple 19
        17: .line 565
            aload 2 /* keys */
            iload 7 /* i */
            aaload
            astore 6 /* key_found */
        18: .line 566
            aload 8 /* kv */
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* kvno_found */
        end local 8 // java.lang.Integer kv
        19: .line 555
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
        end local 3 // int ktype
      StackMap locals: int java.lang.Integer sun.security.krb5.EncryptionKey[] top int int sun.security.krb5.EncryptionKey int
      StackMap stack:
        20: iload 7 /* i */
            aload 2 /* keys */
            arraylength
            if_icmplt 9
        end local 7 // int i
        21: .line 574
            iload 0 /* etype */
            iconst_1
            if_icmpeq 23
        22: .line 575
            iload 0 /* etype */
            iconst_3
            if_icmpne 37
        23: .line 576
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        24: goto 36
        25: .line 577
      StackMap locals: int
      StackMap stack:
            aload 2 /* keys */
            iload 7 /* i */
            aaload
            invokevirtual sun.security.krb5.EncryptionKey.getEType:()I
            istore 3 /* ktype */
        start local 3 // int ktype
        26: .line 578
            iload 3 /* ktype */
            iconst_1
            if_icmpeq 28
        27: .line 579
            iload 3 /* ktype */
            iconst_3
            if_icmpne 35
        28: .line 580
      StackMap locals: int java.lang.Integer sun.security.krb5.EncryptionKey[] int int int sun.security.krb5.EncryptionKey int
      StackMap stack:
            aload 2 /* keys */
            iload 7 /* i */
            aaload
            invokevirtual sun.security.krb5.EncryptionKey.getKeyVersionNumber:()Ljava/lang/Integer;
            astore 8 /* kv */
        start local 8 // java.lang.Integer kv
        29: .line 581
            iconst_1
            istore 4 /* etypeFound */
        30: .line 582
            aload 1 /* kvno */
            aload 8 /* kv */
            invokestatic sun.security.krb5.EncryptionKey.versionMatches:(Ljava/lang/Integer;Ljava/lang/Integer;)Z
            ifeq 32
        31: .line 583
            new sun.security.krb5.EncryptionKey
            dup
            iload 0 /* etype */
            aload 2 /* keys */
            iload 7 /* i */
            aaload
            invokevirtual sun.security.krb5.EncryptionKey.getBytes:()[B
            invokespecial sun.security.krb5.EncryptionKey.<init>:(I[B)V
            areturn
        32: .line 584
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 8 /* kv */
            invokevirtual java.lang.Integer.intValue:()I
            iload 5 /* kvno_found */
            if_icmple 35
        33: .line 585
            new sun.security.krb5.EncryptionKey
            dup
            iload 0 /* etype */
            aload 2 /* keys */
            iload 7 /* i */
            aaload
            invokevirtual sun.security.krb5.EncryptionKey.getBytes:()[B
            invokespecial sun.security.krb5.EncryptionKey.<init>:(I[B)V
            astore 6 /* key_found */
        34: .line 586
            aload 8 /* kv */
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* kvno_found */
        end local 8 // java.lang.Integer kv
        35: .line 576
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
        end local 3 // int ktype
      StackMap locals: int java.lang.Integer sun.security.krb5.EncryptionKey[] top int int sun.security.krb5.EncryptionKey int
      StackMap stack:
        36: iload 7 /* i */
            aload 2 /* keys */
            arraylength
            if_icmplt 25
        end local 7 // int i
        37: .line 591
      StackMap locals:
      StackMap stack:
            iload 4 /* etypeFound */
            ifeq 39
        38: .line 592
            aload 6 /* key_found */
            areturn
        39: .line 596
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // sun.security.krb5.EncryptionKey key_found
        end local 5 // int kvno_found
        end local 4 // boolean etypeFound
        end local 2 // sun.security.krb5.EncryptionKey[] keys
        end local 1 // java.lang.Integer kvno
        end local 0 // int etype
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   40     0       etype  I
            0   40     1        kvno  Ljava/lang/Integer;
            0   40     2        keys  [Lsun/security/krb5/EncryptionKey;
           10   20     3       ktype  I
           26   36     3       ktype  I
            5   40     4  etypeFound  Z
            6   40     5  kvno_found  I
            7   40     6   key_found  Lsun/security/krb5/EncryptionKey;
            8   21     7           i  I
           12   19     8          kv  Ljava/lang/Integer;
           24   37     7           i  I
           29   35     8          kv  Ljava/lang/Integer;
    Exceptions:
      throws sun.security.krb5.KrbException
    MethodParameters:
       Name  Flags
      etype  
      kvno   
      keys   
}
SourceFile: "EncryptionKey.java"
InnerClasses:
  public SaltAndParams = sun.security.krb5.internal.PAData$SaltAndParams of sun.security.krb5.internal.PAData