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 768
      StackMap locals: int
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            istore 8 /* a1 */
        start local 8 // boolean a1
        15: .line 769
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            istore 9 /* a2 */
        start local 9 // boolean a2
        16: .line 770
            iconst_0
            istore 10 /* total */
        start local 10 // int total
        17: .line 772
            iload 8 /* a1 */
            ifeq 50
        18: .line 773
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 11 /* inArray */
        start local 11 // byte[] inArray
        19: .line 774
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iload 4 /* inPos */
            iadd
            istore 12 /* inOfs */
        start local 12 // int inOfs
        20: .line 776
            iload 9 /* a2 */
            ifeq 40
        21: .line 777
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 13 /* outArray */
        start local 13 // byte[] outArray
        22: .line 778
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 14 /* outPos */
        start local 14 // int outPos
        23: .line 779
            aload 2 /* output */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iload 14 /* outPos */
            iadd
            istore 15 /* outOfs */
        start local 15 // int outOfs
        24: .line 784
            iconst_0
            istore 16 /* useTempOut */
        start local 16 // boolean useTempOut
        25: .line 785
            aload 11 /* inArray */
            aload 13 /* outArray */
            if_acmpne 30
        26: .line 786
            iload 12 /* inOfs */
            iload 15 /* outOfs */
            if_icmpge 30
            iload 15 /* outOfs */
            iload 12 /* inOfs */
            iload 6 /* inLen */
            iadd
            if_icmpge 30
        27: .line 787
            iconst_1
            istore 16 /* useTempOut */
        28: .line 788
            iload 7 /* outLenNeeded */
            newarray 8
            astore 13 /* outArray */
        29: .line 789
            iconst_0
            istore 15 /* outOfs */
        30: .line 791
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int byte[] int byte[] int int int
      StackMap stack:
            iload 3 /* isUpdate */
            ifeq 33
        31: .line 792
            aload 0 /* this */
            aload 11 /* inArray */
            iload 12 /* inOfs */
            iload 6 /* inLen */
            aload 13 /* outArray */
            iload 15 /* outOfs */
            invokevirtual javax.crypto.CipherSpi.engineUpdate:([BII[BI)I
            istore 10 /* total */
        32: .line 793
            goto 34
        33: .line 794
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* inArray */
            iload 12 /* inOfs */
            iload 6 /* inLen */
            aload 13 /* outArray */
            iload 15 /* outOfs */
            invokevirtual javax.crypto.CipherSpi.engineDoFinal:([BII[BI)I
            istore 10 /* total */
        34: .line 796
      StackMap locals:
      StackMap stack:
            iload 16 /* useTempOut */
            ifeq 37
        35: .line 797
            aload 2 /* output */
            aload 13 /* outArray */
            iload 15 /* outOfs */
            iload 10 /* total */
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
        36: .line 798
            goto 38
        37: .line 800
      StackMap locals:
      StackMap stack:
            aload 2 /* output */
            iload 14 /* outPos */
            iload 10 /* total */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        38: .line 803
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            iload 5 /* inLimit */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        end local 16 // boolean useTempOut
        end local 15 // int outOfs
        end local 14 // int outPos
        end local 13 // byte[] outArray
        39: .line 804
            goto 67
        40: .line 805
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int byte[] int
      StackMap stack:
            aconst_null
            astore 13 /* outArray */
        start local 13 // byte[] outArray
        41: .line 806
            iload 3 /* isUpdate */
            ifeq 44
        42: .line 807
            aload 0 /* this */
            aload 11 /* inArray */
            iload 12 /* inOfs */
            iload 6 /* inLen */
            invokevirtual javax.crypto.CipherSpi.engineUpdate:([BII)[B
            astore 13 /* outArray */
        43: .line 808
            goto 45
        44: .line 809
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            aload 11 /* inArray */
            iload 12 /* inOfs */
            iload 6 /* inLen */
            invokevirtual javax.crypto.CipherSpi.engineDoFinal:([BII)[B
            astore 13 /* outArray */
        45: .line 811
      StackMap locals:
      StackMap stack:
            aload 13 /* outArray */
            ifnull 48
            aload 13 /* outArray */
            arraylength
            ifeq 48
        46: .line 812
            aload 2 /* output */
            aload 13 /* outArray */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
        47: .line 813
            aload 13 /* outArray */
            arraylength
            istore 10 /* total */
        48: .line 816
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            iload 5 /* inLimit */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        end local 13 // byte[] outArray
        end local 12 // int inOfs
        end local 11 // byte[] inArray
        49: .line 818
            goto 67
        50: .line 821
      StackMap locals:
      StackMap stack:
            iload 7 /* outLenNeeded */
            newarray 8
            astore 11 /* tempOut */
        start local 11 // byte[] tempOut
        51: .line 822
            iconst_0
            istore 12 /* outOfs */
        start local 12 // int outOfs
        52: .line 824
            iload 6 /* inLen */
            invokestatic javax.crypto.CipherSpi.getTempArraySize:(I)I
            newarray 8
            astore 13 /* tempIn */
        start local 13 // byte[] tempIn
        53: .line 826
      StackMap locals: byte[] int byte[]
      StackMap stack:
            iload 6 /* inLen */
            aload 13 /* tempIn */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* chunk */
        start local 14 // int chunk
        54: .line 827
            iload 14 /* chunk */
            ifle 56
        55: .line 828
            aload 1 /* input */
            aload 13 /* tempIn */
            iconst_0
            iload 14 /* chunk */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        56: .line 831
      StackMap locals: int
      StackMap stack:
            iload 3 /* isUpdate */
            ifne 57
            iload 6 /* inLen */
            iload 14 /* chunk */
            if_icmple 59
        57: .line 832
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* tempIn */
            iconst_0
            iload 14 /* chunk */
            aload 11 /* tempOut */
            iload 12 /* outOfs */
            invokevirtual javax.crypto.CipherSpi.engineUpdate:([BII[BI)I
            istore 15 /* n */
        start local 15 // int n
        58: .line 833
            goto 60
        end local 15 // int n
        59: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* tempIn */
            iconst_0
            iload 14 /* chunk */
            aload 11 /* tempOut */
            iload 12 /* outOfs */
            invokevirtual javax.crypto.CipherSpi.engineDoFinal:([BII[BI)I
            istore 15 /* n */
        start local 15 // int n
        60: .line 836
      StackMap locals: int
      StackMap stack:
            iload 12 /* outOfs */
            iload 15 /* n */
            iadd
            istore 12 /* outOfs */
        61: .line 837
            iload 10 /* total */
            iload 15 /* n */
            iadd
            istore 10 /* total */
        62: .line 838
            iload 6 /* inLen */
            iload 14 /* chunk */
            isub
            istore 6 /* inLen */
        end local 15 // int n
        end local 14 // int chunk
        63: .line 839
            iload 6 /* inLen */
        64: .line 825
            ifgt 53
        65: .line 840
            iload 10 /* total */
            ifle 67
        66: .line 841
            aload 2 /* output */
            aload 11 /* tempOut */
            iconst_0
            iload 10 /* total */
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
        end local 13 // byte[] tempIn
        end local 12 // int outOfs
        end local 11 // byte[] tempOut
        67: .line 845
      StackMap locals: javax.crypto.CipherSpi java.nio.ByteBuffer java.nio.ByteBuffer int int int int int int int int
      StackMap stack:
            iload 10 /* total */
            ireturn
        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   68     0          this  Ljavax/crypto/CipherSpi;
            0   68     1         input  Ljava/nio/ByteBuffer;
            0   68     2        output  Ljava/nio/ByteBuffer;
            0   68     3      isUpdate  Z
            5   68     4         inPos  I
            6   68     5       inLimit  I
            7   68     6         inLen  I
           10   68     7  outLenNeeded  I
           15   68     8            a1  Z
           16   68     9            a2  Z
           17   68    10         total  I
           19   49    11       inArray  [B
           20   49    12         inOfs  I
           22   39    13      outArray  [B
           23   39    14        outPos  I
           24   39    15        outOfs  I
           25   39    16    useTempOut  Z
           41   49    13      outArray  [B
           51   67    11       tempOut  [B
           52   67    12        outOfs  I
           53   67    13        tempIn  [B
           54   63    14         chunk  I
           58   59    15             n  I
           60   63    15             n  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 877
            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 917
            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 935
            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 963
            new java.lang.UnsupportedOperationException
            dup
         1: .line 964
            ldc "The underlying Cipher implementation does not support this method"
         2: .line 963
            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 996
            new java.lang.UnsupportedOperationException
            dup
         1: .line 997
            ldc "The underlying Cipher implementation does not support this method"
         2: .line 996
            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"