public abstract class javax.crypto.CipherSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: javax.crypto.CipherSpi
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.crypto.CipherSpi this
         0: .line 230
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/crypto/CipherSpi;

  protected abstract void engineSetMode(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
      Name  Flags
      mode  

  protected abstract void engineSetPadding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws javax.crypto.NoSuchPaddingException
    MethodParameters:
         Name  Flags
      padding  

  protected abstract int engineGetBlockSize();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int engineGetOutputSize(int);
    descriptor: (I)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      inputLen  

  protected abstract byte[] engineGetIV();
    descriptor: ()[B
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract java.security.AlgorithmParameters engineGetParameters();
    descriptor: ()Ljava/security/AlgorithmParameters;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void engineInit(int, java.security.Key, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      random  

  protected abstract void engineInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      params  
      random  

  protected abstract void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      params  
      random  

  protected abstract byte[] engineUpdate(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      input        
      inputOffset  
      inputLen     

  protected abstract int engineUpdate(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws javax.crypto.ShortBufferException
    MethodParameters:
              Name  Flags
      input         
      inputOffset   
      inputLen      
      output        
      outputOffset  

  protected int engineUpdate(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // javax.crypto.CipherSpi this
        start local 1 // java.nio.ByteBuffer input
        start local 2 // java.nio.ByteBuffer output
         0: .line 555
            aload 0 /* this */
            aload 1 /* input */
            aload 2 /* output */
            iconst_1
            invokevirtual javax.crypto.CipherSpi.bufferCrypt:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Z)I
         1: ireturn
         2: .line 556
      StackMap locals:
      StackMap stack: javax.crypto.IllegalBlockSizeException
            pop
         3: .line 558
            new java.security.ProviderException
            dup
            ldc "Internal error in update()"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 559
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            pop
         5: .line 561
            new java.security.ProviderException
            dup
            ldc "Internal error in update()"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.nio.ByteBuffer output
        end local 1 // java.nio.ByteBuffer input
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljavax/crypto/CipherSpi;
            0    6     1   input  Ljava/nio/ByteBuffer;
            0    6     2  output  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.crypto.IllegalBlockSizeException
           0     1       4  Class javax.crypto.BadPaddingException
    Exceptions:
      throws javax.crypto.ShortBufferException
    MethodParameters:
        Name  Flags
      input   
      output  

  protected abstract byte[] engineDoFinal(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
             Name  Flags
      input        
      inputOffset  
      inputLen     

  protected abstract int engineDoFinal(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
              Name  Flags
      input         
      inputOffset   
      inputLen      
      output        
      outputOffset  

  protected int engineDoFinal(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // javax.crypto.CipherSpi this
        start local 1 // java.nio.ByteBuffer input
        start local 2 // java.nio.ByteBuffer output
         0: .line 730
            aload 0 /* this */
            aload 1 /* input */
            aload 2 /* output */
            iconst_0
            invokevirtual javax.crypto.CipherSpi.bufferCrypt:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Z)I
            ireturn
        end local 2 // java.nio.ByteBuffer output
        end local 1 // java.nio.ByteBuffer input
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljavax/crypto/CipherSpi;
            0    1     1   input  Ljava/nio/ByteBuffer;
            0    1     2  output  Ljava/nio/ByteBuffer;
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
        Name  Flags
      input   
      output  

  static int getTempArraySize(int);
    descriptor: (I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int totalSize
         0: .line 737
            sipush 4096
            iload 0 /* totalSize */
            invokestatic java.lang.Math.min:(II)I
            ireturn
        end local 0 // int totalSize
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  totalSize  I
    MethodParameters:
           Name  Flags
      totalSize  

  private int bufferCrypt(java.nio.ByteBuffer, java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=17, args_size=4
        start local 0 // javax.crypto.CipherSpi this
        start local 1 // java.nio.ByteBuffer input
        start local 2 // java.nio.ByteBuffer output
        start local 3 // boolean isUpdate
         0: .line 747
            aload 1 /* input */
            ifnull 1
            aload 2 /* output */
            ifnonnull 4
         1: .line 748
      StackMap locals:
      StackMap stack:
            new java.lang.NullPointerException
            dup
         2: .line 749
            ldc "Input and output buffers must not be null"
         3: .line 748
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 751
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 4 /* inPos */
        start local 4 // int inPos
         5: .line 752
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 5 /* inLimit */
        start local 5 // int inLimit
         6: .line 753
            iload 5 /* inLimit */
            iload 4 /* inPos */
            isub
            istore 6 /* inLen */
        start local 6 // int inLen
         7: .line 754
            iload 3 /* isUpdate */
            ifeq 9
            iload 6 /* inLen */
            ifne 9
         8: .line 755
            iconst_0
            ireturn
         9: .line 757
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* inLen */
            invokevirtual javax.crypto.CipherSpi.engineGetOutputSize:(I)I
            istore 7 /* outLenNeeded */
        start local 7 // int outLenNeeded
        10: .line 759
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iload 7 /* outLenNeeded */
            if_icmpge 14
        11: .line 760
            new javax.crypto.ShortBufferException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Need at least "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* outLenNeeded */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        12: .line 761
            ldc " bytes of space in output buffer"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 760
            invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 764
      StackMap locals: int
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            istore 8 /* a1 */
        start local 8 // boolean a1
        15: .line 765
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            istore 9 /* a2 */
        start local 9 // boolean a2
        16: .line 766
            iconst_0
            istore 10 /* total */
        start local 10 // int total
        17: .line 768
            iload 9 /* a2 */
            ifeq 45
        18: .line 769
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 12 /* outArray */
        start local 12 // byte[] outArray
        19: .line 770
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 13 /* outPos */
        start local 13 // int outPos
        20: .line 771
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iload 13 /* outPos */
            iadd
            istore 14 /* outOfs */
        start local 14 // int outOfs
        21: .line 773
            iload 8 /* a1 */
            ifeq 30
        22: .line 774
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 11 /* inArray */
        start local 11 // byte[] inArray
        23: .line 775
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iload 4 /* inPos */
            iadd
            istore 15 /* inOfs */
        start local 15 // int inOfs
        24: .line 776
            iload 3 /* isUpdate */
            ifeq 27
        25: .line 777
            aload 0 /* this */
            aload 11 /* inArray */
            iload 15 /* inOfs */
            iload 6 /* inLen */
            aload 12 /* outArray */
            iload 14 /* outOfs */
            invokevirtual javax.crypto.CipherSpi.engineUpdate:([BII[BI)I
            istore 10 /* total */
        26: .line 778
            goto 28
        27: .line 779
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int byte[] byte[] int int int
      StackMap stack:
            aload 0 /* this */
            aload 11 /* inArray */
            iload 15 /* inOfs */
            iload 6 /* inLen */
            aload 12 /* outArray */
            iload 14 /* outOfs */
            invokevirtual javax.crypto.CipherSpi.engineDoFinal:([BII[BI)I
            istore 10 /* total */
        28: .line 781
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            iload 5 /* inLimit */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        end local 15 // int inOfs
        29: .line 782
            goto 43
        end local 11 // byte[] inArray
        30: .line 783
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int top byte[] int int
      StackMap stack:
            iload 6 /* inLen */
            invokestatic javax.crypto.CipherSpi.getTempArraySize:(I)I
            newarray 8
            astore 11 /* inArray */
        start local 11 // byte[] inArray
        31: .line 785
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int byte[] byte[] int int
      StackMap stack:
            iload 6 /* inLen */
            aload 11 /* inArray */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 15 /* chunk */
        start local 15 // int chunk
        32: .line 786
            iload 15 /* chunk */
            ifle 34
        33: .line 787
            aload 1 /* input */
            aload 11 /* inArray */
            iconst_0
            iload 15 /* chunk */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        34: .line 790
      StackMap locals: int
      StackMap stack:
            iload 3 /* isUpdate */
            ifne 35
            iload 6 /* inLen */
            iload 15 /* chunk */
            if_icmple 37
        35: .line 791
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* inArray */
            iconst_0
            iload 15 /* chunk */
            aload 12 /* outArray */
            iload 14 /* outOfs */
            invokevirtual javax.crypto.CipherSpi.engineUpdate:([BII[BI)I
            istore 16 /* n */
        start local 16 // int n
        36: .line 792
            goto 38
        end local 16 // int n
        37: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* inArray */
            iconst_0
            iload 15 /* chunk */
            aload 12 /* outArray */
            iload 14 /* outOfs */
            invokevirtual javax.crypto.CipherSpi.engineDoFinal:([BII[BI)I
            istore 16 /* n */
        start local 16 // int n
        38: .line 795
      StackMap locals: int
      StackMap stack:
            iload 10 /* total */
            iload 16 /* n */
            iadd
            istore 10 /* total */
        39: .line 796
            iload 14 /* outOfs */
            iload 16 /* n */
            iadd
            istore 14 /* outOfs */
        40: .line 797
            iload 6 /* inLen */
            iload 15 /* chunk */
            isub
            istore 6 /* inLen */
        end local 16 // int n
        end local 15 // int chunk
        41: .line 798
            iload 6 /* inLen */
        42: .line 784
            ifgt 31
        43: .line 800
      StackMap locals:
      StackMap stack:
            aload 2 /* output */
            iload 13 /* outPos */
            iload 10 /* total */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        end local 14 // int outOfs
        end local 13 // int outPos
        44: .line 801
            goto 71
        end local 12 // byte[] outArray
        end local 11 // byte[] inArray
        45: .line 802
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int
      StackMap stack:
            iload 8 /* a1 */
            ifeq 57
        46: .line 803
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 11 /* inArray */
        start local 11 // byte[] inArray
        47: .line 804
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iload 4 /* inPos */
            iadd
            istore 13 /* inOfs */
        start local 13 // int inOfs
        48: .line 805
            iload 3 /* isUpdate */
            ifeq 51
        49: .line 806
            aload 0 /* this */
            aload 11 /* inArray */
            iload 13 /* inOfs */
            iload 6 /* inLen */
            invokevirtual javax.crypto.CipherSpi.engineUpdate:([BII)[B
            astore 12 /* outArray */
        start local 12 // byte[] outArray
        50: .line 807
            goto 52
        end local 12 // byte[] outArray
        51: .line 808
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int byte[] top int
      StackMap stack:
            aload 0 /* this */
            aload 11 /* inArray */
            iload 13 /* inOfs */
            iload 6 /* inLen */
            invokevirtual javax.crypto.CipherSpi.engineDoFinal:([BII)[B
            astore 12 /* outArray */
        start local 12 // byte[] outArray
        52: .line 810
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int byte[] byte[] int
      StackMap stack:
            aload 1 /* input */
            iload 5 /* inLimit */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        53: .line 811
            aload 12 /* outArray */
            ifnull 71
            aload 12 /* outArray */
            arraylength
            ifeq 71
        54: .line 812
            aload 2 /* output */
            aload 12 /* outArray */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
        55: .line 813
            aload 12 /* outArray */
            arraylength
            istore 10 /* total */
        end local 13 // int inOfs
        56: .line 815
            goto 71
        end local 12 // byte[] outArray
        end local 11 // byte[] inArray
        57: .line 816
      StackMap locals:
      StackMap stack:
            iload 6 /* inLen */
            invokestatic javax.crypto.CipherSpi.getTempArraySize:(I)I
            newarray 8
            astore 11 /* inArray */
        start local 11 // byte[] inArray
        58: .line 818
      StackMap locals: byte[]
      StackMap stack:
            iload 6 /* inLen */
            aload 11 /* inArray */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* chunk */
        start local 13 // int chunk
        59: .line 819
            iload 13 /* chunk */
            ifle 61
        60: .line 820
            aload 1 /* input */
            aload 11 /* inArray */
            iconst_0
            iload 13 /* chunk */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        61: .line 823
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int byte[] top int
      StackMap stack:
            iload 3 /* isUpdate */
            ifne 62
            iload 6 /* inLen */
            iload 13 /* chunk */
            if_icmple 64
        62: .line 824
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* inArray */
            iconst_0
            iload 13 /* chunk */
            invokevirtual javax.crypto.CipherSpi.engineUpdate:([BII)[B
            astore 12 /* outArray */
        start local 12 // byte[] outArray
        63: .line 825
            goto 65
        end local 12 // byte[] outArray
        64: .line 826
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* inArray */
            iconst_0
            iload 13 /* chunk */
            invokevirtual javax.crypto.CipherSpi.engineDoFinal:([BII)[B
            astore 12 /* outArray */
        start local 12 // byte[] outArray
        65: .line 828
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int byte[] byte[] int
      StackMap stack:
            aload 12 /* outArray */
            ifnull 68
            aload 12 /* outArray */
            arraylength
            ifeq 68
        66: .line 829
            aload 2 /* output */
            aload 12 /* outArray */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
        67: .line 830
            iload 10 /* total */
            aload 12 /* outArray */
            arraylength
            iadd
            istore 10 /* total */
        68: .line 832
      StackMap locals:
      StackMap stack:
            iload 6 /* inLen */
            iload 13 /* chunk */
            isub
            istore 6 /* inLen */
        end local 13 // int chunk
        69: .line 833
            iload 6 /* inLen */
        70: .line 817
            ifgt 58
        71: .line 836
      StackMap locals:
      StackMap stack:
            iload 10 /* total */
            ireturn
        end local 12 // byte[] outArray
        end local 11 // byte[] inArray
        end local 10 // int total
        end local 9 // boolean a2
        end local 8 // boolean a1
        end local 7 // int outLenNeeded
        end local 6 // int inLen
        end local 5 // int inLimit
        end local 4 // int inPos
        end local 3 // boolean isUpdate
        end local 2 // java.nio.ByteBuffer output
        end local 1 // java.nio.ByteBuffer input
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   72     0          this  Ljavax/crypto/CipherSpi;
            0   72     1         input  Ljava/nio/ByteBuffer;
            0   72     2        output  Ljava/nio/ByteBuffer;
            0   72     3      isUpdate  Z
            5   72     4         inPos  I
            6   72     5       inLimit  I
            7   72     6         inLen  I
           10   72     7  outLenNeeded  I
           15   72     8            a1  Z
           16   72     9            a2  Z
           17   72    10         total  I
           23   30    11       inArray  [B
           31   45    11       inArray  [B
           47   57    11       inArray  [B
           58   72    11       inArray  [B
           19   45    12      outArray  [B
           50   51    12      outArray  [B
           52   57    12      outArray  [B
           63   64    12      outArray  [B
           65   72    12      outArray  [B
           20   44    13        outPos  I
           21   44    14        outOfs  I
           24   29    15         inOfs  I
           32   41    15         chunk  I
           36   37    16             n  I
           38   41    16             n  I
           48   56    13         inOfs  I
           59   69    13         chunk  I
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
          Name  Flags
      input     
      output    
      isUpdate  

  protected byte[] engineWrap(java.security.Key);
    descriptor: (Ljava/security/Key;)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.crypto.CipherSpi this
        start local 1 // java.security.Key key
         0: .line 868
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.security.Key key
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/crypto/CipherSpi;
            0    1     1   key  Ljava/security/Key;
    Exceptions:
      throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  protected java.security.Key engineUnwrap(byte[], java.lang.String, int);
    descriptor: ([BLjava/lang/String;I)Ljava/security/Key;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // javax.crypto.CipherSpi this
        start local 1 // byte[] wrappedKey
        start local 2 // java.lang.String wrappedKeyAlgorithm
        start local 3 // int wrappedKeyType
         0: .line 908
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 3 // int wrappedKeyType
        end local 2 // java.lang.String wrappedKeyAlgorithm
        end local 1 // byte[] wrappedKey
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0                 this  Ljavax/crypto/CipherSpi;
            0    1     1           wrappedKey  [B
            0    1     2  wrappedKeyAlgorithm  Ljava/lang/String;
            0    1     3       wrappedKeyType  I
    Exceptions:
      throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    MethodParameters:
                     Name  Flags
      wrappedKey           
      wrappedKeyAlgorithm  
      wrappedKeyType       

  protected int engineGetKeySize(java.security.Key);
    descriptor: (Ljava/security/Key;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.crypto.CipherSpi this
        start local 1 // java.security.Key key
         0: .line 926
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.security.Key key
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/crypto/CipherSpi;
            0    1     1   key  Ljava/security/Key;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  protected void engineUpdateAAD(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // javax.crypto.CipherSpi this
        start local 1 // byte[] src
        start local 2 // int offset
        start local 3 // int len
         0: .line 954
            new java.lang.UnsupportedOperationException
            dup
         1: .line 955
            ldc "The underlying Cipher implementation does not support this method"
         2: .line 954
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int len
        end local 2 // int offset
        end local 1 // byte[] src
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljavax/crypto/CipherSpi;
            0    3     1     src  [B
            0    3     2  offset  I
            0    3     3     len  I
    MethodParameters:
        Name  Flags
      src     
      offset  
      len     

  protected void engineUpdateAAD(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.crypto.CipherSpi this
        start local 1 // java.nio.ByteBuffer src
         0: .line 987
            new java.lang.UnsupportedOperationException
            dup
         1: .line 988
            ldc "The underlying Cipher implementation does not support this method"
         2: .line 987
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.nio.ByteBuffer src
        end local 0 // javax.crypto.CipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/crypto/CipherSpi;
            0    3     1   src  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      src   
}
SourceFile: "CipherSpi.java"