final class com.sun.crypto.provider.PKCS12PBECipherCore
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.crypto.provider.PKCS12PBECipherCore
  super_class: java.lang.Object
{
  private com.sun.crypto.provider.CipherCore cipher;
    descriptor: Lcom/sun/crypto/provider/CipherCore;
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.lang.String algo;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

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

  private static final int DEFAULT_SALT_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  private static final int DEFAULT_COUNT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  static final int CIPHER_KEY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int CIPHER_IV;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int MAC_KEY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static byte[] derive(char[], byte[], int, int, int);
    descriptor: ([C[BIII)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=24, args_size=5
        start local 0 // char[] chars
        start local 1 // byte[] salt
        start local 2 // int ic
        start local 3 // int n
        start local 4 // int type
         0: .line 64
            aload 0 /* chars */
            arraylength
            iconst_2
            imul
            istore 5 /* length */
        start local 5 // int length
         1: .line 65
            iload 5 /* length */
            ifeq 3
         2: .line 66
            iinc 5 /* length */ 2
         3: .line 68
      StackMap locals: int
      StackMap stack:
            iload 5 /* length */
            newarray 8
            astore 6 /* passwd */
        start local 6 // byte[] passwd
         4: .line 69
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: iconst_0
            istore 8 /* j */
        start local 8 // int j
         6: goto 10
         7: .line 70
      StackMap locals: byte[] int int
      StackMap stack:
            aload 6 /* passwd */
            iload 8 /* j */
            aload 0 /* chars */
            iload 7 /* i */
            caload
            bipush 8
            iushr
            sipush 255
            iand
            i2b
            bastore
         8: .line 71
            aload 6 /* passwd */
            iload 8 /* j */
            iconst_1
            iadd
            aload 0 /* chars */
            iload 7 /* i */
            caload
            sipush 255
            iand
            i2b
            bastore
         9: .line 69
            iinc 7 /* i */ 1
            iinc 8 /* j */ 2
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            aload 0 /* chars */
            arraylength
            if_icmplt 7
        end local 8 // int j
        end local 7 // int i
        11: .line 73
            bipush 64
            istore 7 /* v */
        start local 7 // int v
        12: .line 74
            bipush 20
            istore 8 /* u */
        start local 8 // int u
        13: .line 75
            iload 3 /* n */
            iload 8 /* u */
            invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.roundup:(II)I
            iload 8 /* u */
            idiv
            istore 9 /* c */
        start local 9 // int c
        14: .line 76
            iload 7 /* v */
            newarray 8
            astore 10 /* D */
        start local 10 // byte[] D
        15: .line 77
            aload 1 /* salt */
            arraylength
            iload 7 /* v */
            invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.roundup:(II)I
            istore 11 /* s */
        start local 11 // int s
        16: .line 78
            aload 6 /* passwd */
            arraylength
            iload 7 /* v */
            invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.roundup:(II)I
            istore 12 /* p */
        start local 12 // int p
        17: .line 79
            iload 11 /* s */
            iload 12 /* p */
            iadd
            newarray 8
            astore 13 /* I */
        start local 13 // byte[] I
        18: .line 80
            iload 3 /* n */
            newarray 8
            astore 14 /* key */
        start local 14 // byte[] key
        19: .line 82
            aload 10 /* D */
            iload 4 /* type */
            i2b
            invokestatic java.util.Arrays.fill:([BB)V
        20: .line 83
            aload 1 /* salt */
            aload 13 /* I */
            iconst_0
            iload 11 /* s */
            invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.concat:([B[BII)V
        21: .line 84
            aload 6 /* passwd */
            aload 13 /* I */
            iload 11 /* s */
            iload 12 /* p */
            invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.concat:([B[BII)V
        22: .line 87
            ldc "SHA1"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 15 /* sha */
        start local 15 // java.security.MessageDigest sha
        23: .line 89
            iload 7 /* v */
            newarray 8
            astore 17 /* B */
        start local 17 // byte[] B
        24: .line 90
            iload 7 /* v */
            newarray 8
            astore 18 /* tmp */
        start local 18 // byte[] tmp
        25: .line 92
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        26: .line 94
      StackMap locals: char[] byte[] int int int int byte[] int int int byte[] int int byte[] byte[] java.security.MessageDigest top byte[] byte[] int
      StackMap stack:
            aload 15 /* sha */
            aload 10 /* D */
            invokevirtual java.security.MessageDigest.update:([B)V
        27: .line 95
            aload 15 /* sha */
            aload 13 /* I */
            invokevirtual java.security.MessageDigest.update:([B)V
        28: .line 96
            aload 15 /* sha */
            invokevirtual java.security.MessageDigest.digest:()[B
            astore 16 /* Ai */
        start local 16 // byte[] Ai
        29: .line 97
            iconst_1
            istore 20 /* r */
        start local 20 // int r
        30: goto 33
        31: .line 98
      StackMap locals: char[] byte[] int int int int byte[] int int int byte[] int int byte[] byte[] java.security.MessageDigest byte[] byte[] byte[] int int
      StackMap stack:
            aload 15 /* sha */
            aload 16 /* Ai */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 16 /* Ai */
        32: .line 97
            iinc 20 /* r */ 1
      StackMap locals:
      StackMap stack:
        33: iload 20 /* r */
            iload 2 /* ic */
            if_icmplt 31
        end local 20 // int r
        34: .line 99
            aload 16 /* Ai */
            iconst_0
            aload 14 /* key */
            iload 8 /* u */
            iload 19 /* i */
            imul
            iload 3 /* n */
            iload 8 /* u */
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        35: .line 100
            iload 19 /* i */
            iconst_1
            iadd
            iload 9 /* c */
            if_icmpne 37
        36: .line 101
            goto 60
        37: .line 102
      StackMap locals:
      StackMap stack:
            aload 16 /* Ai */
            aload 17 /* B */
            iconst_0
            aload 17 /* B */
            arraylength
            invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.concat:([B[BII)V
        38: .line 104
            new java.math.BigInteger
            dup
            iconst_1
            aload 17 /* B */
            invokespecial java.math.BigInteger.<init>:(I[B)V
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 20 /* B1 */
        start local 20 // java.math.BigInteger B1
        39: .line 106
            iconst_0
            istore 21 /* j */
        start local 21 // int j
        40: goto 55
        41: .line 110
      StackMap locals: java.math.BigInteger int
      StackMap stack:
            aload 18 /* tmp */
            arraylength
            iload 7 /* v */
            if_icmpeq 43
        42: .line 111
            iload 7 /* v */
            newarray 8
            astore 18 /* tmp */
        43: .line 112
      StackMap locals:
      StackMap stack:
            aload 13 /* I */
            iload 21 /* j */
            aload 18 /* tmp */
            iconst_0
            iload 7 /* v */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        44: .line 113
            new java.math.BigInteger
            dup
            iconst_1
            aload 18 /* tmp */
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 22 /* Ij */
        start local 22 // java.math.BigInteger Ij
        45: .line 114
            aload 22 /* Ij */
            aload 20 /* B1 */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 22 /* Ij */
        46: .line 115
            aload 22 /* Ij */
            invokevirtual java.math.BigInteger.toByteArray:()[B
            astore 18 /* tmp */
        47: .line 116
            aload 18 /* tmp */
            arraylength
            iload 7 /* v */
            isub
            istore 23 /* trunc */
        start local 23 // int trunc
        48: .line 117
            iload 23 /* trunc */
            iflt 51
        49: .line 118
            aload 18 /* tmp */
            iload 23 /* trunc */
            aload 13 /* I */
            iload 21 /* j */
            iload 7 /* v */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        50: .line 119
            goto 54
      StackMap locals: java.math.BigInteger int
      StackMap stack:
        51: iload 23 /* trunc */
            ifge 54
        52: .line 120
            aload 13 /* I */
            iload 21 /* j */
            iload 21 /* j */
            iload 23 /* trunc */
            ineg
            iadd
            iconst_0
            invokestatic java.util.Arrays.fill:([BIIB)V
        53: .line 121
            aload 18 /* tmp */
            iconst_0
            aload 13 /* I */
            iload 21 /* j */
            iload 23 /* trunc */
            ineg
            iadd
            aload 18 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 23 // int trunc
        end local 22 // java.math.BigInteger Ij
        54: .line 106
      StackMap locals:
      StackMap stack:
            iload 21 /* j */
            iload 7 /* v */
            iadd
            istore 21 /* j */
      StackMap locals:
      StackMap stack:
        55: iload 21 /* j */
            aload 13 /* I */
            arraylength
            if_icmplt 41
        end local 21 // int j
        end local 20 // java.math.BigInteger B1
        56: .line 93
            iinc 19 /* i */ 1
            iload 3 /* n */
            iload 8 /* u */
            isub
            istore 3 /* n */
        end local 16 // byte[] Ai
        57: goto 26
        end local 19 // int i
        end local 18 // byte[] tmp
        end local 17 // byte[] B
        end local 15 // java.security.MessageDigest sha
        58: .line 125
      StackMap locals: char[] byte[] int int int int byte[] int int int byte[] int int byte[] byte[]
      StackMap stack: java.lang.Exception
            astore 15 /* e */
        start local 15 // java.lang.Exception e
        59: .line 126
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "internal error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 15 // java.lang.Exception e
        60: .line 128
      StackMap locals:
      StackMap stack:
            aload 14 /* key */
            areturn
        end local 14 // byte[] key
        end local 13 // byte[] I
        end local 12 // int p
        end local 11 // int s
        end local 10 // byte[] D
        end local 9 // int c
        end local 8 // int u
        end local 7 // int v
        end local 6 // byte[] passwd
        end local 5 // int length
        end local 4 // int type
        end local 3 // int n
        end local 2 // int ic
        end local 1 // byte[] salt
        end local 0 // char[] chars
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   61     0   chars  [C
            0   61     1    salt  [B
            0   61     2      ic  I
            0   61     3       n  I
            0   61     4    type  I
            1   61     5  length  I
            4   61     6  passwd  [B
            5   11     7       i  I
            6   11     8       j  I
           12   61     7       v  I
           13   61     8       u  I
           14   61     9       c  I
           15   61    10       D  [B
           16   61    11       s  I
           17   61    12       p  I
           18   61    13       I  [B
           19   61    14     key  [B
           23   58    15     sha  Ljava/security/MessageDigest;
           29   57    16      Ai  [B
           24   58    17       B  [B
           25   58    18     tmp  [B
           26   58    19       i  I
           30   34    20       r  I
           39   56    20      B1  Ljava/math/BigInteger;
           40   56    21       j  I
           45   54    22      Ij  Ljava/math/BigInteger;
           48   54    23   trunc  I
           59   60    15       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    58      58  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      chars  
      salt   
      ic     
      n      
      type   

  private static int roundup(int, int);
    descriptor: (II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 132
            iload 0 /* x */
            iload 1 /* y */
            iconst_1
            isub
            iadd
            iload 1 /* y */
            idiv
            iload 1 /* y */
            imul
            ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  I
            0    1     1     y  I
    MethodParameters:
      Name  Flags
      x     
      y     

  private static void concat(byte[], byte[], int, int);
    descriptor: ([B[BII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // byte[] src
        start local 1 // byte[] dst
        start local 2 // int start
        start local 3 // int len
         0: .line 136
            iload 3 /* len */
            aload 0 /* src */
            arraylength
            idiv
            istore 4 /* loop */
        start local 4 // int loop
         1: .line 138
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: iconst_0
            istore 5 /* off */
        start local 5 // int off
         3: goto 6
         4: .line 139
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* src */
            iconst_0
            aload 1 /* dst */
            iload 5 /* off */
            iload 2 /* start */
            iadd
            aload 0 /* src */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 138
            iinc 6 /* i */ 1
            iload 5 /* off */
            aload 0 /* src */
            arraylength
            iadd
            istore 5 /* off */
      StackMap locals:
      StackMap stack:
         6: iload 6 /* i */
            iload 4 /* loop */
            if_icmplt 4
         7: .line 140
            aload 0 /* src */
            iconst_0
            aload 1 /* dst */
            iload 5 /* off */
            iload 2 /* start */
            iadd
            iload 3 /* len */
            iload 5 /* off */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 141
            return
        end local 6 // int i
        end local 5 // int off
        end local 4 // int loop
        end local 3 // int len
        end local 2 // int start
        end local 1 // byte[] dst
        end local 0 // byte[] src
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0    src  [B
            0    9     1    dst  [B
            0    9     2  start  I
            0    9     3    len  I
            1    9     4   loop  I
            3    9     5    off  I
            2    9     6      i  I
    MethodParameters:
       Name  Flags
      src    
      dst    
      start  
      len    

  void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // java.lang.String symmCipherAlg
        start local 2 // int defKeySize
         0: .line 143
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            aconst_null
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.algo:Ljava/lang/String;
         2: .line 51
            aload 0 /* this */
            aconst_null
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
         3: .line 52
            aload 0 /* this */
            iconst_0
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
         4: .line 145
            aload 0 /* this */
            aload 1 /* symmCipherAlg */
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.algo:Ljava/lang/String;
         5: .line 146
            aconst_null
            astore 3 /* symmCipher */
        start local 3 // com.sun.crypto.provider.SymmetricCipher symmCipher
         6: .line 147
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.algo:Ljava/lang/String;
            ldc "DESede"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 148
            new com.sun.crypto.provider.DESedeCrypt
            dup
            invokespecial com.sun.crypto.provider.DESedeCrypt.<init>:()V
            astore 3 /* symmCipher */
         8: .line 149
            goto 15
      StackMap locals: com.sun.crypto.provider.PKCS12PBECipherCore java.lang.String int com.sun.crypto.provider.SymmetricCipher
      StackMap stack:
         9: aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.algo:Ljava/lang/String;
            ldc "RC2"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 150
            new com.sun.crypto.provider.RC2Crypt
            dup
            invokespecial com.sun.crypto.provider.RC2Crypt.<init>:()V
            astore 3 /* symmCipher */
        11: .line 151
            goto 15
        12: .line 152
      StackMap locals:
      StackMap stack:
            new java.security.NoSuchAlgorithmException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No Cipher implementation for PBEWithSHA1And"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 153
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.algo:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 152
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* symmCipher */
            invokevirtual com.sun.crypto.provider.SymmetricCipher.getBlockSize:()I
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.blockSize:I
        16: .line 156
            aload 0 /* this */
            new com.sun.crypto.provider.CipherCore
            dup
            aload 3 /* symmCipher */
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.blockSize:I
            invokespecial com.sun.crypto.provider.CipherCore.<init>:(Lcom/sun/crypto/provider/SymmetricCipher;I)V
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
        17: .line 157
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            ldc "CBC"
            invokevirtual com.sun.crypto.provider.CipherCore.setMode:(Ljava/lang/String;)V
        18: .line 159
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            ldc "PKCS5Padding"
            invokevirtual com.sun.crypto.provider.CipherCore.setPadding:(Ljava/lang/String;)V
        19: .line 160
            goto 21
      StackMap locals:
      StackMap stack: javax.crypto.NoSuchPaddingException
        20: pop
        21: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* defKeySize */
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.keySize:I
        22: .line 164
            return
        end local 3 // com.sun.crypto.provider.SymmetricCipher symmCipher
        end local 2 // int defKeySize
        end local 1 // java.lang.String symmCipherAlg
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0   23     1  symmCipherAlg  Ljava/lang/String;
            0   23     2     defKeySize  I
            6   23     3     symmCipher  Lcom/sun/crypto/provider/SymmetricCipher;
      Exception table:
        from    to  target  type
          18    19      20  Class javax.crypto.NoSuchPaddingException
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
               Name  Flags
      symmCipherAlg  
      defKeySize     

  void implSetMode(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // java.lang.String mode
         0: .line 167
            aload 1 /* mode */
            ifnull 4
            aload 1 /* mode */
            ldc "CBC"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 4
         1: .line 168
            new java.security.NoSuchAlgorithmException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid cipher mode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 169
            aload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 168
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 171
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String mode
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    5     1  mode  Ljava/lang/String;
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
      Name  Flags
      mode  

  void implSetPadding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // java.lang.String padding
         0: .line 174
            aload 1 /* padding */
            ifnull 5
         1: .line 175
            aload 1 /* padding */
            ldc "PKCS5Padding"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 5
         2: .line 176
            new javax.crypto.NoSuchPaddingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid padding scheme: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 177
            aload 1 /* padding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 176
            invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String padding
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    6     1  padding  Ljava/lang/String;
    Exceptions:
      throws javax.crypto.NoSuchPaddingException
    MethodParameters:
         Name  Flags
      padding  

  int implGetBlockSize();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
         0: .line 182
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.blockSize:I
            ireturn
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;

  int implGetOutputSize(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // int inLen
         0: .line 186
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            iload 1 /* inLen */
            invokevirtual com.sun.crypto.provider.CipherCore.getOutputSize:(I)I
            ireturn
        end local 1 // int inLen
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    1     1  inLen  I
    MethodParameters:
       Name  Flags
      inLen  

  byte[] implGetIV();
    descriptor: ()[B
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
         0: .line 190
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            invokevirtual com.sun.crypto.provider.CipherCore.getIV:()[B
            areturn
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;

  java.security.AlgorithmParameters implGetParameters();
    descriptor: ()Ljava/security/AlgorithmParameters;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
         0: .line 194
            aconst_null
            astore 1 /* params */
        start local 1 // java.security.AlgorithmParameters params
         1: .line 195
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            ifnonnull 5
         2: .line 199
            aload 0 /* this */
            bipush 20
            newarray 8
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
         3: .line 200
            getstatic com.sun.crypto.provider.SunJCE.RANDOM:Ljava/security/SecureRandom;
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         4: .line 201
            aload 0 /* this */
            sipush 1024
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
         5: .line 203
      StackMap locals: java.security.AlgorithmParameters
      StackMap stack:
            new javax.crypto.spec.PBEParameterSpec
            dup
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
            astore 2 /* pbeSpec */
        start local 2 // javax.crypto.spec.PBEParameterSpec pbeSpec
         6: .line 205
            new java.lang.StringBuilder
            dup
            ldc "PBEWithSHA1And"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 206
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.algo:Ljava/lang/String;
            ldc "RC2"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
            ldc "RC2_40"
            goto 9
      StackMap locals: com.sun.crypto.provider.PKCS12PBECipherCore java.security.AlgorithmParameters javax.crypto.spec.PBEParameterSpec
      StackMap stack: java.lang.StringBuilder
         8: aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.algo:Ljava/lang/String;
      StackMap locals: com.sun.crypto.provider.PKCS12PBECipherCore java.security.AlgorithmParameters javax.crypto.spec.PBEParameterSpec
      StackMap stack: java.lang.StringBuilder java.lang.String
         9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 205
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 206
            ldc "SunJCE"
        12: .line 205
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 1 /* params */
        13: .line 207
            goto 16
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        14: pop
        15: .line 209
            new java.lang.RuntimeException
            dup
            ldc "SunJCE provider is not configured properly"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 212
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            aload 2 /* pbeSpec */
            invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
        17: .line 213
            goto 20
      StackMap locals:
      StackMap stack: java.security.spec.InvalidParameterSpecException
        18: pop
        19: .line 215
            new java.lang.RuntimeException
            dup
            ldc "PBEParameterSpec not supported"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 217
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            areturn
        end local 2 // javax.crypto.spec.PBEParameterSpec pbeSpec
        end local 1 // java.security.AlgorithmParameters params
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            1   21     1   params  Ljava/security/AlgorithmParameters;
            6   21     2  pbeSpec  Ljavax/crypto/spec/PBEParameterSpec;
      Exception table:
        from    to  target  type
           6    13      14  Class java.security.GeneralSecurityException
          16    17      18  Class java.security.spec.InvalidParameterSpecException

  void implInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=10, args_size=5
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // int opmode
        start local 2 // java.security.Key key
        start local 3 // java.security.spec.AlgorithmParameterSpec params
        start local 4 // java.security.SecureRandom random
         0: .line 223
            aconst_null
            astore 5 /* passwdChars */
        start local 5 // char[] passwdChars
         1: .line 224
            aload 0 /* this */
            aconst_null
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
         2: .line 225
            aload 0 /* this */
            iconst_0
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
         3: .line 226
            aload 2 /* key */
            instanceof javax.crypto.interfaces.PBEKey
            ifeq 10
         4: .line 228
            aload 2 /* key */
            checkcast javax.crypto.interfaces.PBEKey
         5: .line 227
            astore 6 /* pbeKey */
        start local 6 // javax.crypto.interfaces.PBEKey pbeKey
         6: .line 229
            aload 6 /* pbeKey */
            invokeinterface javax.crypto.interfaces.PBEKey.getPassword:()[C
            astore 5 /* passwdChars */
         7: .line 230
            aload 0 /* this */
            aload 6 /* pbeKey */
            invokeinterface javax.crypto.interfaces.PBEKey.getSalt:()[B
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
         8: .line 231
            aload 0 /* this */
            aload 6 /* pbeKey */
            invokeinterface javax.crypto.interfaces.PBEKey.getIterationCount:()I
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
        end local 6 // javax.crypto.interfaces.PBEKey pbeKey
         9: .line 232
            goto 23
      StackMap locals: char[]
      StackMap stack:
        10: aload 2 /* key */
            instanceof javax.crypto.SecretKey
            ifeq 22
        11: .line 233
            aload 2 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            astore 6 /* passwdBytes */
        start local 6 // byte[] passwdBytes
        12: .line 234
            aload 6 /* passwdBytes */
            ifnull 14
        13: .line 235
            aload 2 /* key */
            invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
            iconst_1
            iconst_0
            ldc "PBE"
            iconst_0
            iconst_3
            invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
            ifne 15
        14: .line 236
      StackMap locals: byte[]
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            ldc "Missing password"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 238
      StackMap locals:
      StackMap stack:
            aload 6 /* passwdBytes */
            arraylength
            newarray 5
            astore 5 /* passwdChars */
        16: .line 239
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        17: goto 20
        18: .line 240
      StackMap locals: int
      StackMap stack:
            aload 5 /* passwdChars */
            iload 7 /* i */
            aload 6 /* passwdBytes */
            iload 7 /* i */
            baload
            bipush 127
            iand
            i2c
            castore
        19: .line 239
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* i */
            aload 5 /* passwdChars */
            arraylength
            if_icmplt 18
        end local 7 // int i
        end local 6 // byte[] passwdBytes
        21: .line 242
            goto 23
        22: .line 243
      StackMap locals:
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            ldc "SecretKey of PBE type required"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 246
      StackMap locals:
      StackMap stack:
            iload 1 /* opmode */
            iconst_2
            if_icmpeq 25
        24: .line 247
            iload 1 /* opmode */
            iconst_4
            if_icmpne 29
        25: .line 248
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            ifnonnull 29
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            ifnull 26
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
            ifne 29
        26: .line 249
      StackMap locals:
      StackMap stack:
            new java.security.InvalidAlgorithmParameterException
            dup
        27: .line 250
            ldc "Parameters missing"
        28: .line 249
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 253
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            ifnonnull 38
        30: .line 255
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            ifnonnull 36
        31: .line 256
            aload 0 /* this */
            bipush 20
            newarray 8
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
        32: .line 257
            aload 4 /* random */
            ifnull 35
        33: .line 258
            aload 4 /* random */
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
        34: .line 259
            goto 36
        35: .line 260
      StackMap locals:
      StackMap stack:
            getstatic com.sun.crypto.provider.SunJCE.RANDOM:Ljava/security/SecureRandom;
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
        36: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
            ifne 55
            aload 0 /* this */
            sipush 1024
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
        37: .line 264
            goto 55
      StackMap locals:
      StackMap stack:
        38: aload 3 /* params */
            instanceof javax.crypto.spec.PBEParameterSpec
            ifne 42
        39: .line 265
            new java.security.InvalidAlgorithmParameterException
            dup
        40: .line 266
            ldc "PBEParameterSpec type required"
        41: .line 265
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 268
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            checkcast javax.crypto.spec.PBEParameterSpec
            astore 6 /* pbeParams */
        start local 6 // javax.crypto.spec.PBEParameterSpec pbeParams
        43: .line 270
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            ifnull 48
        44: .line 271
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            aload 6 /* pbeParams */
            invokevirtual javax.crypto.spec.PBEParameterSpec.getSalt:()[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifne 49
        45: .line 272
            new java.security.InvalidAlgorithmParameterException
            dup
        46: .line 273
            ldc "Inconsistent value of salt between key and params"
        47: .line 272
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        48: .line 276
      StackMap locals: javax.crypto.spec.PBEParameterSpec
      StackMap stack:
            aload 0 /* this */
            aload 6 /* pbeParams */
            invokevirtual javax.crypto.spec.PBEParameterSpec.getSalt:()[B
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
        49: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
            ifeq 54
        50: .line 279
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
            aload 6 /* pbeParams */
            invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
            if_icmpeq 55
        51: .line 280
            new java.security.InvalidAlgorithmParameterException
            dup
        52: .line 281
            ldc "Different iteration count between key and params"
        53: .line 280
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        54: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* pbeParams */
            invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
            putfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
        end local 6 // javax.crypto.spec.PBEParameterSpec pbeParams
        55: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            arraylength
            bipush 8
            if_icmpge 59
        56: .line 293
            new java.security.InvalidAlgorithmParameterException
            dup
        57: .line 294
            ldc "Salt must be at least 8 bytes long"
        58: .line 293
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        59: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
            ifgt 63
        60: .line 297
            new java.security.InvalidAlgorithmParameterException
            dup
        61: .line 298
            ldc "IterationCount must be a positive number"
        62: .line 297
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        63: .line 300
      StackMap locals:
      StackMap stack:
            aload 5 /* passwdChars */
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
        64: .line 301
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.keySize:I
            iconst_1
        65: .line 300
            invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.derive:([C[BIII)[B
            astore 6 /* derivedKey */
        start local 6 // byte[] derivedKey
        66: .line 302
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 6 /* derivedKey */
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.algo:Ljava/lang/String;
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            astore 7 /* cipherKey */
        start local 7 // javax.crypto.SecretKey cipherKey
        67: .line 303
            aload 5 /* passwdChars */
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.salt:[B
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.iCount:I
            bipush 8
        68: .line 304
            iconst_2
        69: .line 303
            invokestatic com.sun.crypto.provider.PKCS12PBECipherCore.derive:([C[BIII)[B
            astore 8 /* derivedIv */
        start local 8 // byte[] derivedIv
        70: .line 305
            new javax.crypto.spec.IvParameterSpec
            dup
            aload 8 /* derivedIv */
            iconst_0
            bipush 8
            invokespecial javax.crypto.spec.IvParameterSpec.<init>:([BII)V
            astore 9 /* ivSpec */
        start local 9 // javax.crypto.spec.IvParameterSpec ivSpec
        71: .line 308
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            iload 1 /* opmode */
            aload 7 /* cipherKey */
            aload 9 /* ivSpec */
            aload 4 /* random */
            invokevirtual com.sun.crypto.provider.CipherCore.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
        72: .line 309
            return
        end local 9 // javax.crypto.spec.IvParameterSpec ivSpec
        end local 8 // byte[] derivedIv
        end local 7 // javax.crypto.SecretKey cipherKey
        end local 6 // byte[] derivedKey
        end local 5 // char[] passwdChars
        end local 4 // java.security.SecureRandom random
        end local 3 // java.security.spec.AlgorithmParameterSpec params
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   73     0         this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0   73     1       opmode  I
            0   73     2          key  Ljava/security/Key;
            0   73     3       params  Ljava/security/spec/AlgorithmParameterSpec;
            0   73     4       random  Ljava/security/SecureRandom;
            1   73     5  passwdChars  [C
            6    9     6       pbeKey  Ljavax/crypto/interfaces/PBEKey;
           12   21     6  passwdBytes  [B
           17   21     7            i  I
           43   55     6    pbeParams  Ljavax/crypto/spec/PBEParameterSpec;
           66   73     6   derivedKey  [B
           67   73     7    cipherKey  Ljavax/crypto/SecretKey;
           70   73     8    derivedIv  [B
           71   73     9       ivSpec  Ljavax/crypto/spec/IvParameterSpec;
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      params  
      random  

  void implInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // int opmode
        start local 2 // java.security.Key key
        start local 3 // java.security.AlgorithmParameters params
        start local 4 // java.security.SecureRandom random
         0: .line 314
            aconst_null
            astore 5 /* paramSpec */
        start local 5 // java.security.spec.AlgorithmParameterSpec paramSpec
         1: .line 315
            aload 3 /* params */
            ifnull 6
         2: .line 317
            aload 3 /* params */
            ldc Ljavax/crypto/spec/PBEParameterSpec;
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
            astore 5 /* paramSpec */
         3: .line 318
            goto 6
      StackMap locals: com.sun.crypto.provider.PKCS12PBECipherCore int java.security.Key java.security.AlgorithmParameters java.security.SecureRandom java.security.spec.AlgorithmParameterSpec
      StackMap stack: java.security.spec.InvalidParameterSpecException
         4: pop
         5: .line 319
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "requires PBE parameters"
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* opmode */
            aload 2 /* key */
            aload 5 /* paramSpec */
            aload 4 /* random */
            invokevirtual com.sun.crypto.provider.PKCS12PBECipherCore.implInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
         7: .line 323
            return
        end local 5 // java.security.spec.AlgorithmParameterSpec paramSpec
        end local 4 // java.security.SecureRandom random
        end local 3 // java.security.AlgorithmParameters params
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    8     1     opmode  I
            0    8     2        key  Ljava/security/Key;
            0    8     3     params  Ljava/security/AlgorithmParameters;
            0    8     4     random  Ljava/security/SecureRandom;
            1    8     5  paramSpec  Ljava/security/spec/AlgorithmParameterSpec;
      Exception table:
        from    to  target  type
           2     3       4  Class java.security.spec.InvalidParameterSpecException
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      params  
      random  

  void implInit(int, java.security.Key, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // int opmode
        start local 2 // java.security.Key key
        start local 3 // java.security.SecureRandom random
         0: .line 328
            aload 0 /* this */
            iload 1 /* opmode */
            aload 2 /* key */
            aconst_null
            aload 3 /* random */
            invokevirtual com.sun.crypto.provider.PKCS12PBECipherCore.implInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
         1: .line 329
            goto 4
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
         2: pop
         3: .line 330
            new java.security.InvalidKeyException
            dup
            ldc "requires PBE parameters"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 332
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.security.SecureRandom random
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    5     1  opmode  I
            0    5     2     key  Ljava/security/Key;
            0    5     3  random  Ljava/security/SecureRandom;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.InvalidAlgorithmParameterException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      random  

  byte[] implUpdate(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int inLen
         0: .line 335
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            aload 1 /* in */
            iload 2 /* inOff */
            iload 3 /* inLen */
            invokevirtual com.sun.crypto.provider.CipherCore.update:([BII)[B
            areturn
        end local 3 // int inLen
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    1     1     in  [B
            0    1     2  inOff  I
            0    1     3  inLen  I
    MethodParameters:
       Name  Flags
      in     
      inOff  
      inLen  

  int implUpdate(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int inLen
        start local 4 // byte[] out
        start local 5 // int outOff
         0: .line 340
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            aload 1 /* in */
            iload 2 /* inOff */
            iload 3 /* inLen */
            aload 4 /* out */
            iload 5 /* outOff */
            invokevirtual com.sun.crypto.provider.CipherCore.update:([BII[BI)I
            ireturn
        end local 5 // int outOff
        end local 4 // byte[] out
        end local 3 // int inLen
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    1     1      in  [B
            0    1     2   inOff  I
            0    1     3   inLen  I
            0    1     4     out  [B
            0    1     5  outOff  I
    Exceptions:
      throws javax.crypto.ShortBufferException
    MethodParameters:
        Name  Flags
      in      
      inOff   
      inLen   
      out     
      outOff  

  byte[] implDoFinal(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int inLen
         0: .line 345
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            aload 1 /* in */
            iload 2 /* inOff */
            iload 3 /* inLen */
            invokevirtual com.sun.crypto.provider.CipherCore.doFinal:([BII)[B
            areturn
        end local 3 // int inLen
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    1     1     in  [B
            0    1     2  inOff  I
            0    1     3  inLen  I
    Exceptions:
      throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
       Name  Flags
      in     
      inOff  
      inLen  

  int implDoFinal(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int inLen
        start local 4 // byte[] out
        start local 5 // int outOff
         0: .line 351
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            aload 1 /* in */
            iload 2 /* inOff */
            iload 3 /* inLen */
            aload 4 /* out */
            iload 5 /* outOff */
            invokevirtual com.sun.crypto.provider.CipherCore.doFinal:([BII[BI)I
            ireturn
        end local 5 // int outOff
        end local 4 // byte[] out
        end local 3 // int inLen
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    1     1      in  [B
            0    1     2   inOff  I
            0    1     3   inLen  I
            0    1     4     out  [B
            0    1     5  outOff  I
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
        Name  Flags
      in      
      inOff   
      inLen   
      out     
      outOff  

  int implGetKeySize(java.security.Key);
    descriptor: (Ljava/security/Key;)I
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // java.security.Key key
         0: .line 355
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.keySize:I
            ireturn
        end local 1 // java.security.Key key
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    1     1   key  Ljava/security/Key;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  byte[] implWrap(java.security.Key);
    descriptor: (Ljava/security/Key;)[B
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // java.security.Key key
         0: .line 360
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            aload 1 /* key */
            invokevirtual com.sun.crypto.provider.CipherCore.wrap:(Ljava/security/Key;)[B
            areturn
        end local 1 // java.security.Key key
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    1     1   key  Ljava/security/Key;
    Exceptions:
      throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  java.security.Key implUnwrap(byte[], java.lang.String, int);
    descriptor: ([BLjava/lang/String;I)Ljava/security/Key;
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
        start local 1 // byte[] wrappedKey
        start local 2 // java.lang.String wrappedKeyAlgorithm
        start local 3 // int wrappedKeyType
         0: .line 366
            aload 0 /* this */
            getfield com.sun.crypto.provider.PKCS12PBECipherCore.cipher:Lcom/sun/crypto/provider/CipherCore;
            aload 1 /* wrappedKey */
            aload 2 /* wrappedKeyAlgorithm */
         1: .line 367
            iload 3 /* wrappedKeyType */
         2: .line 366
            invokevirtual com.sun.crypto.provider.CipherCore.unwrap:([BLjava/lang/String;I)Ljava/security/Key;
            areturn
        end local 3 // int wrappedKeyType
        end local 2 // java.lang.String wrappedKeyAlgorithm
        end local 1 // byte[] wrappedKey
        end local 0 // com.sun.crypto.provider.PKCS12PBECipherCore this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/sun/crypto/provider/PKCS12PBECipherCore;
            0    3     1           wrappedKey  [B
            0    3     2  wrappedKeyAlgorithm  Ljava/lang/String;
            0    3     3       wrappedKeyType  I
    Exceptions:
      throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    MethodParameters:
                     Name  Flags
      wrappedKey           
      wrappedKeyAlgorithm  
      wrappedKeyType       
}
SourceFile: "PKCS12PBECipherCore.java"
NestMembers:
  com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndDESede  com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndRC2_40
InnerClasses:
  public final PBEWithSHA1AndDESede = com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndDESede of com.sun.crypto.provider.PKCS12PBECipherCore
  public final PBEWithSHA1AndRC2_40 = com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndRC2_40 of com.sun.crypto.provider.PKCS12PBECipherCore