final class sun.security.pkcs11.P11AEADCipher extends javax.crypto.CipherSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.pkcs11.P11AEADCipher
  super_class: javax.crypto.CipherSpi
{
  private static final int MODE_GCM;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

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

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

  private static final java.lang.String ALGO;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "AES"

  private final sun.security.pkcs11.Token token;
    descriptor: Lsun/security/pkcs11/Token;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long mechanism;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int blockMode;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int fixedKeySize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private sun.security.pkcs11.Session session;
    descriptor: Lsun/security/pkcs11/Session;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.pkcs11.P11Key p11Key;
    descriptor: Lsun/security/pkcs11/P11Key;
    flags: (0x0002) ACC_PRIVATE

  private boolean initialized;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean encrypt;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.security.SecureRandom random;
    descriptor: Ljava/security/SecureRandom;
    flags: (0x0002) ACC_PRIVATE

  private java.io.ByteArrayOutputStream dataBuffer;
    descriptor: Ljava/io/ByteArrayOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.ByteArrayOutputStream aadBuffer;
    descriptor: Ljava/io/ByteArrayOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private boolean updateCalled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean requireReinit;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private sun.security.pkcs11.P11Key lastEncKey;
    descriptor: Lsun/security/pkcs11/P11Key;
    flags: (0x0002) ACC_PRIVATE

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

  void <init>(sun.security.pkcs11.Token, java.lang.String, long);
    descriptor: (Lsun/security/pkcs11/Token;Ljava/lang/String;J)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // sun.security.pkcs11.Token token
        start local 2 // java.lang.String algorithm
        start local 3 // long mechanism
         0: .line 108
            aload 0 /* this */
            invokespecial javax.crypto.CipherSpi.<init>:()V
         1: .line 80
            aload 0 /* this */
            aconst_null
            putfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
         2: .line 83
            aload 0 /* this */
            aconst_null
            putfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.initialized:Z
         4: .line 89
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
         5: .line 92
            aload 0 /* this */
            aconst_null
            putfield sun.security.pkcs11.P11AEADCipher.iv:[B
         6: .line 93
            aload 0 /* this */
            iconst_m1
            putfield sun.security.pkcs11.P11AEADCipher.tagLen:I
         7: .line 94
            aload 0 /* this */
            invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
            putfield sun.security.pkcs11.P11AEADCipher.random:Ljava/security/SecureRandom;
         8: .line 97
            aload 0 /* this */
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            putfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
         9: .line 99
            aload 0 /* this */
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            putfield sun.security.pkcs11.P11AEADCipher.aadBuffer:Ljava/io/ByteArrayOutputStream;
        10: .line 100
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
        11: .line 102
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        12: .line 103
            aload 0 /* this */
            aconst_null
            putfield sun.security.pkcs11.P11AEADCipher.lastEncKey:Lsun/security/pkcs11/P11Key;
        13: .line 104
            aload 0 /* this */
            aconst_null
            putfield sun.security.pkcs11.P11AEADCipher.lastEncIv:[B
        14: .line 109
            aload 0 /* this */
            aload 1 /* token */
            putfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
        15: .line 110
            aload 0 /* this */
            lload 3 /* mechanism */
            putfield sun.security.pkcs11.P11AEADCipher.mechanism:J
        16: .line 112
            aload 2 /* algorithm */
            ldc "/"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* algoParts */
        start local 5 // java.lang.String[] algoParts
        17: .line 113
            aload 5 /* algoParts */
            arraylength
            iconst_3
            if_icmpeq 21
        18: .line 114
            new java.security.ProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported Transformation format: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 115
            aload 2 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 114
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 117
      StackMap locals: sun.security.pkcs11.P11AEADCipher sun.security.pkcs11.Token java.lang.String long java.lang.String[]
      StackMap stack:
            aload 5 /* algoParts */
            iconst_0
            aaload
            ldc "AES"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 23
        22: .line 118
            new java.security.ProviderException
            dup
            ldc "Only support AES for AEAD cipher mode"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 120
      StackMap locals:
      StackMap stack:
            aload 5 /* algoParts */
            iconst_0
            aaload
            bipush 95
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* index */
        start local 6 // int index
        24: .line 121
            iload 6 /* index */
            iconst_m1
            if_icmpeq 27
        25: .line 123
            aload 0 /* this */
            aload 5 /* algoParts */
            iconst_0
            aaload
            iload 6 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            iconst_3
            ishr
            putfield sun.security.pkcs11.P11AEADCipher.fixedKeySize:I
        26: .line 124
            goto 28
        27: .line 125
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield sun.security.pkcs11.P11AEADCipher.fixedKeySize:I
        28: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* algoParts */
            iconst_1
            aaload
            invokevirtual sun.security.pkcs11.P11AEADCipher.parseMode:(Ljava/lang/String;)I
            putfield sun.security.pkcs11.P11AEADCipher.blockMode:I
        29: .line 128
            aload 5 /* algoParts */
            iconst_2
            aaload
            ldc "NoPadding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
        30: .line 129
            new java.security.ProviderException
            dup
            ldc "Only NoPadding is supported for AEAD cipher mode"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 131
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int index
        end local 5 // java.lang.String[] algoParts
        end local 3 // long mechanism
        end local 2 // java.lang.String algorithm
        end local 1 // sun.security.pkcs11.Token token
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Lsun/security/pkcs11/P11AEADCipher;
            0   32     1      token  Lsun/security/pkcs11/Token;
            0   32     2  algorithm  Ljava/lang/String;
            0   32     3  mechanism  J
           17   32     5  algoParts  [Ljava/lang/String;
           24   32     6      index  I
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception, java.security.NoSuchAlgorithmException
    MethodParameters:
           Name  Flags
      token      
      algorithm  
      mechanism  

  protected void engineSetMode(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.lang.String mode
         0: .line 136
            new java.security.NoSuchAlgorithmException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String mode
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs11/P11AEADCipher;
            0    1     1  mode  Ljava/lang/String;
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
      Name  Flags
      mode  

  private int parseMode(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.lang.String mode
         0: .line 140
            aload 1 /* mode */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 1 /* mode */
         1: .line 142
            aload 1 /* mode */
            ldc "GCM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 143
            bipush 10
            istore 2 /* result */
        start local 2 // int result
         3: .line 144
            goto 5
        end local 2 // int result
         4: .line 145
      StackMap locals:
      StackMap stack:
            new java.security.NoSuchAlgorithmException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // int result
         5: .line 147
      StackMap locals: int
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // java.lang.String mode
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/security/pkcs11/P11AEADCipher;
            0    6     1    mode  Ljava/lang/String;
            3    4     2  result  I
            5    6     2  result  I
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
      Name  Flags
      mode  

  protected void engineSetPadding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.lang.String padding
         0: .line 155
            new javax.crypto.NoSuchPaddingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported padding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* padding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String padding
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lsun/security/pkcs11/P11AEADCipher;
            0    1     1  padding  Ljava/lang/String;
    Exceptions:
      throws javax.crypto.NoSuchPaddingException
    MethodParameters:
         Name  Flags
      padding  

  protected int engineGetBlockSize();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs11.P11AEADCipher this
         0: .line 160
            bipush 16
            ireturn
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs11/P11AEADCipher;

  protected int engineGetOutputSize(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // int inputLen
         0: .line 165
            aload 0 /* this */
            iload 1 /* inputLen */
            invokevirtual sun.security.pkcs11.P11AEADCipher.doFinalLength:(I)I
            ireturn
        end local 1 // int inputLen
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lsun/security/pkcs11/P11AEADCipher;
            0    1     1  inputLen  I
    MethodParameters:
          Name  Flags
      inputLen  

  protected byte[] engineGetIV();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs11.P11AEADCipher this
         0: .line 170
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
      StackMap locals:
      StackMap stack: byte[]
         2: areturn
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/pkcs11/P11AEADCipher;

  protected java.security.AlgorithmParameters engineGetParameters();
    descriptor: ()Ljava/security/AlgorithmParameters;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.security.pkcs11.P11AEADCipher this
         0: .line 175
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 7
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            ifnonnull 7
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.tagLen:I
            iconst_m1
            if_icmpne 7
         1: .line 176
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.blockMode:I
            tableswitch { // 10 - 10
                   10: 2
              default: 5
          }
         2: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 16
            newarray 8
            putfield sun.security.pkcs11.P11AEADCipher.iv:[B
         3: .line 179
            aload 0 /* this */
            bipush 16
            putfield sun.security.pkcs11.P11AEADCipher.tagLen:I
         4: .line 180
            goto 6
         5: .line 182
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            ldc "Unsupported mode"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.random:Ljava/security/SecureRandom;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         7: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.blockMode:I
            tableswitch { // 10 - 10
                   10: 8
              default: 11
          }
         8: .line 191
      StackMap locals:
      StackMap stack:
            ldc "GCM"
            astore 2 /* apAlgo */
        start local 2 // java.lang.String apAlgo
         9: .line 192
            new javax.crypto.spec.GCMParameterSpec
            dup
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.tagLen:I
            iconst_3
            ishl
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            invokespecial javax.crypto.spec.GCMParameterSpec.<init>:(I[B)V
            astore 1 /* spec */
        start local 1 // java.security.spec.AlgorithmParameterSpec spec
        10: .line 193
            goto 12
        end local 2 // java.lang.String apAlgo
        end local 1 // java.security.spec.AlgorithmParameterSpec spec
        11: .line 195
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            ldc "Unsupported mode"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // java.security.spec.AlgorithmParameterSpec spec
        start local 2 // java.lang.String apAlgo
        12: .line 198
      StackMap locals: java.security.spec.AlgorithmParameterSpec java.lang.String
      StackMap stack:
            aload 2 /* apAlgo */
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
        13: .line 197
            astore 3 /* params */
        start local 3 // java.security.AlgorithmParameters params
        14: .line 199
            aload 3 /* params */
            aload 1 /* spec */
            invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
        15: .line 200
            aload 3 /* params */
        16: areturn
        end local 3 // java.security.AlgorithmParameters params
        end local 2 // java.lang.String apAlgo
        end local 1 // java.security.spec.AlgorithmParameterSpec spec
        17: .line 201
      StackMap locals: sun.security.pkcs11.P11AEADCipher
      StackMap stack: java.security.GeneralSecurityException
            astore 1 /* e */
        start local 1 // java.security.GeneralSecurityException e
        18: .line 204
            new java.security.ProviderException
            dup
            ldc "Could not encode parameters"
            aload 1 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.security.GeneralSecurityException e
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Lsun/security/pkcs11/P11AEADCipher;
           10   11     1    spec  Ljava/security/spec/AlgorithmParameterSpec;
           12   17     1    spec  Ljava/security/spec/AlgorithmParameterSpec;
            9   11     2  apAlgo  Ljava/lang/String;
           12   17     2  apAlgo  Ljava/lang/String;
           14   17     3  params  Ljava/security/AlgorithmParameters;
           18   19     1       e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           7    16      17  Class java.security.GeneralSecurityException

  protected void engineInit(int, java.security.Key, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // int opmode
        start local 2 // java.security.Key key
        start local 3 // java.security.SecureRandom sr
         0: .line 211
            iload 1 /* opmode */
            iconst_2
            if_icmpne 2
         1: .line 212
            new java.security.InvalidKeyException
            dup
            ldc "Parameters required for decryption"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         3: .line 216
            aload 0 /* this */
            iload 1 /* opmode */
            aload 2 /* key */
            aconst_null
            iconst_m1
            aload 3 /* sr */
            invokevirtual sun.security.pkcs11.P11AEADCipher.implInit:(ILjava/security/Key;[BILjava/security/SecureRandom;)V
         4: .line 217
            goto 7
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
         5: astore 4 /* e */
        start local 4 // java.security.InvalidAlgorithmParameterException e
         6: .line 218
            new java.security.InvalidKeyException
            dup
            ldc "init() failed"
            aload 4 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.InvalidAlgorithmParameterException e
         7: .line 220
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.security.SecureRandom sr
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/pkcs11/P11AEADCipher;
            0    8     1  opmode  I
            0    8     2     key  Ljava/security/Key;
            0    8     3      sr  Ljava/security/SecureRandom;
            6    7     4       e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.security.InvalidAlgorithmParameterException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      sr      

  protected 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: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // sun.security.pkcs11.P11AEADCipher 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 sr
         0: .line 226
            iload 1 /* opmode */
            iconst_2
            if_icmpne 4
            aload 3 /* params */
            ifnonnull 4
         1: .line 227
            new java.security.InvalidAlgorithmParameterException
            dup
         2: .line 228
            ldc "Parameters required for decryption"
         3: .line 227
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         5: .line 231
            aconst_null
            astore 5 /* ivValue */
        start local 5 // byte[] ivValue
         6: .line 232
            iconst_m1
            istore 6 /* tagLen */
        start local 6 // int tagLen
         7: .line 233
            aload 3 /* params */
            ifnull 17
         8: .line 234
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.blockMode:I
            tableswitch { // 10 - 10
                   10: 9
              default: 16
          }
         9: .line 236
      StackMap locals: byte[] int
      StackMap stack:
            aload 3 /* params */
            instanceof javax.crypto.spec.GCMParameterSpec
            ifne 13
        10: .line 237
            new java.security.InvalidAlgorithmParameterException
            dup
        11: .line 238
            ldc "Only GCMParameterSpec is supported"
        12: .line 237
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 240
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            checkcast javax.crypto.spec.GCMParameterSpec
            invokevirtual javax.crypto.spec.GCMParameterSpec.getIV:()[B
            astore 5 /* ivValue */
        14: .line 241
            aload 3 /* params */
            checkcast javax.crypto.spec.GCMParameterSpec
            invokevirtual javax.crypto.spec.GCMParameterSpec.getTLen:()I
            iconst_3
            ishr
            istore 6 /* tagLen */
        15: .line 242
            goto 17
        16: .line 244
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            ldc "Unsupported mode"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* opmode */
            aload 2 /* key */
            aload 5 /* ivValue */
            iload 6 /* tagLen */
            aload 4 /* sr */
            invokevirtual sun.security.pkcs11.P11AEADCipher.implInit:(ILjava/security/Key;[BILjava/security/SecureRandom;)V
        18: .line 248
            return
        end local 6 // int tagLen
        end local 5 // byte[] ivValue
        end local 4 // java.security.SecureRandom sr
        end local 3 // java.security.spec.AlgorithmParameterSpec params
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lsun/security/pkcs11/P11AEADCipher;
            0   19     1   opmode  I
            0   19     2      key  Ljava/security/Key;
            0   19     3   params  Ljava/security/spec/AlgorithmParameterSpec;
            0   19     4       sr  Ljava/security/SecureRandom;
            6   19     5  ivValue  [B
            7   19     6   tagLen  I
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      params  
      sr      

  protected void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // sun.security.pkcs11.P11AEADCipher 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 sr
         0: .line 254
            iload 1 /* opmode */
            iconst_2
            if_icmpne 4
            aload 3 /* params */
            ifnonnull 4
         1: .line 255
            new java.security.InvalidAlgorithmParameterException
            dup
         2: .line 256
            ldc "Parameters required for decryption"
         3: .line 255
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         5: .line 260
            aconst_null
            astore 5 /* paramSpec */
        start local 5 // java.security.spec.AlgorithmParameterSpec paramSpec
         6: .line 261
            aload 3 /* params */
            ifnull 12
         7: .line 262
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.blockMode:I
            tableswitch { // 10 - 10
                   10: 8
              default: 11
          }
         8: .line 265
      StackMap locals: java.security.spec.AlgorithmParameterSpec
      StackMap stack:
            aload 3 /* params */
            ldc Ljavax/crypto/spec/GCMParameterSpec;
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
         9: .line 264
            astore 5 /* paramSpec */
        10: .line 266
            goto 12
        11: .line 268
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            ldc "Unsupported mode"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* opmode */
            aload 2 /* key */
            aload 5 /* paramSpec */
            aload 4 /* sr */
            invokevirtual sun.security.pkcs11.P11AEADCipher.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
        end local 5 // java.security.spec.AlgorithmParameterSpec paramSpec
        13: .line 272
            goto 16
      StackMap locals: sun.security.pkcs11.P11AEADCipher int java.security.Key java.security.AlgorithmParameters java.security.SecureRandom
      StackMap stack: java.security.spec.InvalidParameterSpecException
        14: astore 5 /* ex */
        start local 5 // java.security.spec.InvalidParameterSpecException ex
        15: .line 273
            new java.security.InvalidAlgorithmParameterException
            dup
            aload 5 /* ex */
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.security.spec.InvalidParameterSpecException ex
        16: .line 275
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.security.SecureRandom sr
        end local 3 // java.security.AlgorithmParameters params
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lsun/security/pkcs11/P11AEADCipher;
            0   17     1     opmode  I
            0   17     2        key  Ljava/security/Key;
            0   17     3     params  Ljava/security/AlgorithmParameters;
            0   17     4         sr  Ljava/security/SecureRandom;
            6   13     5  paramSpec  Ljava/security/spec/AlgorithmParameterSpec;
           15   16     5         ex  Ljava/security/spec/InvalidParameterSpecException;
      Exception table:
        from    to  target  type
           5    13      14  Class java.security.spec.InvalidParameterSpecException
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      params  
      sr      

  private void implInit(int, java.security.Key, byte[], int, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;[BILjava/security/SecureRandom;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // int opmode
        start local 2 // java.security.Key key
        start local 3 // byte[] iv
        start local 4 // int tagLen
        start local 5 // java.security.SecureRandom sr
         0: .line 281
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
         1: .line 282
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.fixedKeySize:I
            iconst_m1
            if_icmpeq 7
         2: .line 283
            aload 2 /* key */
            instanceof sun.security.pkcs11.P11Key
            ifeq 3
            aload 2 /* key */
            checkcast sun.security.pkcs11.P11Key
            invokevirtual sun.security.pkcs11.P11Key.length:()I
            iconst_3
            ishr
            goto 4
         3: .line 284
      StackMap locals:
      StackMap stack:
            aload 2 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            arraylength
      StackMap locals:
      StackMap stack: int
         4: aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.fixedKeySize:I
         5: .line 283
            if_icmpeq 7
         6: .line 285
            new java.security.InvalidKeyException
            dup
            ldc "Key size is invalid"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            aload 2 /* key */
            ldc "AES"
            invokestatic sun.security.pkcs11.P11SecretKeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
            astore 6 /* newKey */
        start local 6 // sun.security.pkcs11.P11Key newKey
         8: .line 288
            iload 1 /* opmode */
            tableswitch { // 1 - 2
                    1: 9
                    2: 18
              default: 21
          }
         9: .line 290
      StackMap locals: sun.security.pkcs11.P11Key
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
        10: .line 291
            aload 0 /* this */
            aload 3 /* iv */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.lastEncIv:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifeq 12
        11: .line 292
            aload 6 /* newKey */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.lastEncKey:Lsun/security/pkcs11/P11Key;
            if_acmpne 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack: sun.security.pkcs11.P11AEADCipher
        12: iconst_0
        13: .line 291
      StackMap locals: sun.security.pkcs11.P11AEADCipher int java.security.Key byte[] int java.security.SecureRandom sun.security.pkcs11.P11Key
      StackMap stack: sun.security.pkcs11.P11AEADCipher int
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        14: .line 293
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
            ifeq 24
        15: .line 294
            new java.security.InvalidAlgorithmParameterException
            dup
        16: .line 295
            ldc "Cannot reuse iv for GCM encryption"
        17: .line 294
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
        19: .line 300
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        20: .line 301
            goto 24
        21: .line 303
      StackMap locals:
      StackMap stack:
            new java.security.InvalidAlgorithmParameterException
            dup
        22: .line 304
            new java.lang.StringBuilder
            dup
            ldc "Unsupported mode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* opmode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 303
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 308
      StackMap locals:
      StackMap stack:
            aload 5 /* sr */
            ifnull 26
        25: .line 309
            aload 0 /* this */
            aload 5 /* sr */
            putfield sun.security.pkcs11.P11AEADCipher.random:Ljava/security/SecureRandom;
        26: .line 311
      StackMap locals:
      StackMap stack:
            aload 3 /* iv */
            ifnonnull 33
            iload 4 /* tagLen */
            iconst_m1
            if_icmpne 33
        27: .line 313
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.blockMode:I
            tableswitch { // 10 - 10
                   10: 28
              default: 32
          }
        28: .line 315
      StackMap locals:
      StackMap stack:
            bipush 16
            newarray 8
            astore 3 /* iv */
        29: .line 316
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.random:Ljava/security/SecureRandom;
            aload 3 /* iv */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
        30: .line 317
            bipush 16
            istore 4 /* tagLen */
        31: .line 318
            goto 33
        32: .line 320
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            ldc "Unsupported mode"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* iv */
            putfield sun.security.pkcs11.P11AEADCipher.iv:[B
        34: .line 324
            aload 0 /* this */
            iload 4 /* tagLen */
            putfield sun.security.pkcs11.P11AEADCipher.tagLen:I
        35: .line 325
            aload 0 /* this */
            aload 6 /* newKey */
            putfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
        36: .line 327
            aload 0 /* this */
            invokevirtual sun.security.pkcs11.P11AEADCipher.initialize:()V
        37: .line 328
            goto 42
      StackMap locals:
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
        38: astore 7 /* e */
        start local 7 // sun.security.pkcs11.wrapper.PKCS11Exception e
        39: .line 329
            aload 7 /* e */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.getErrorCode:()J
            ldc 113
            lcmp
            ifne 41
        40: .line 330
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "Bad params"
            aload 7 /* e */
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        41: .line 332
      StackMap locals: sun.security.pkcs11.wrapper.PKCS11Exception
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            ldc "Could not initialize cipher"
            aload 7 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // sun.security.pkcs11.wrapper.PKCS11Exception e
        42: .line 334
      StackMap locals:
      StackMap stack:
            return
        end local 6 // sun.security.pkcs11.P11Key newKey
        end local 5 // java.security.SecureRandom sr
        end local 4 // int tagLen
        end local 3 // byte[] iv
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   43     0    this  Lsun/security/pkcs11/P11AEADCipher;
            0   43     1  opmode  I
            0   43     2     key  Ljava/security/Key;
            0   43     3      iv  [B
            0   43     4  tagLen  I
            0   43     5      sr  Ljava/security/SecureRandom;
            8   43     6  newKey  Lsun/security/pkcs11/P11Key;
           39   42     7       e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
          36    37      38  Class sun.security.pkcs11.wrapper.PKCS11Exception
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      iv      
      tagLen  
      sr      

  private void cancelOperation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=3, args_size=1
        start local 0 // sun.security.pkcs11.P11AEADCipher this
         0: .line 338
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.hasObjects:()Z
            ifne 3
         1: .line 339
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Token.killSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            putfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
         2: .line 340
            return
         3: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.pkcs11.P11AEADCipher.doFinalLength:(I)I
            istore 1 /* bufLen */
        start local 1 // int bufLen
         4: .line 344
            iload 1 /* bufLen */
            newarray 8
            astore 2 /* buffer */
        start local 2 // byte[] buffer
         5: .line 346
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 10
         6: .line 347
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.id:()J
            lconst_0
            aload 2 /* buffer */
            iconst_0
            iload 1 /* bufLen */
         7: .line 348
            lconst_0
            aload 2 /* buffer */
            iconst_0
            iload 1 /* bufLen */
         8: .line 347
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Encrypt:(JJ[BIIJ[BII)I
            pop
         9: .line 349
            goto 16
        10: .line 350
      StackMap locals: int byte[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.id:()J
            lconst_0
            aload 2 /* buffer */
            iconst_0
            iload 1 /* bufLen */
        11: .line 351
            lconst_0
            aload 2 /* buffer */
            iconst_0
            iload 1 /* bufLen */
        12: .line 350
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Decrypt:(JJ[BIIJ[BII)I
            pop
        end local 2 // byte[] buffer
        end local 1 // int bufLen
        13: .line 354
            goto 16
      StackMap locals: sun.security.pkcs11.P11AEADCipher
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
        14: astore 1 /* e */
        start local 1 // sun.security.pkcs11.wrapper.PKCS11Exception e
        15: .line 355
            new java.security.ProviderException
            dup
            ldc "Cancel failed"
            aload 1 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // sun.security.pkcs11.wrapper.PKCS11Exception e
        16: .line 357
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lsun/security/pkcs11/P11AEADCipher;
            4   13     1  bufLen  I
            5   13     2  buffer  [B
           15   16     1       e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
           0     2      14  Class sun.security.pkcs11.wrapper.PKCS11Exception
           3    13      14  Class sun.security.pkcs11.wrapper.PKCS11Exception

  private void ensureInitialized();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.pkcs11.P11AEADCipher this
         0: .line 360
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.initialized:Z
            ifeq 2
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.aadBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            ifle 2
         1: .line 362
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
         2: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.initialized:Z
            ifne 4
         3: .line 365
            aload 0 /* this */
            invokevirtual sun.security.pkcs11.P11AEADCipher.initialize:()V
         4: .line 367
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/pkcs11/P11AEADCipher;
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception

  private void initialize();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=6, args_size=1
        start local 0 // sun.security.pkcs11.P11AEADCipher this
         0: .line 370
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            ifnonnull 4
         1: .line 371
            new java.security.ProviderException
            dup
         2: .line 372
            ldc "Operation cannot be performed without calling engineInit first"
         3: .line 371
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
            ifeq 8
         5: .line 376
            new java.lang.IllegalStateException
            dup
         6: .line 377
            ldc "Must use either different key or iv for GCM encryption"
         7: .line 376
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.ensureValid:()V
         9: .line 382
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.aadBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            ifle 10
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.aadBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            goto 11
      StackMap locals:
      StackMap stack:
        10: aconst_null
      StackMap locals:
      StackMap stack: byte[]
        11: astore 1 /* aad */
        start local 1 // byte[] aad
        12: .line 384
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            invokevirtual sun.security.pkcs11.P11Key.getKeyID:()J
            lstore 2 /* p11KeyID */
        start local 2 // long p11KeyID
        13: .line 387
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.blockMode:I
            tableswitch { // 10 - 10
                   10: 14
              default: 18
          }
        14: .line 389
      StackMap locals: byte[] long
      StackMap stack:
            new sun.security.pkcs11.wrapper.CK_MECHANISM
            dup
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.mechanism:J
        15: .line 390
            new sun.security.pkcs11.wrapper.CK_GCM_PARAMS
            dup
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.tagLen:I
            iconst_3
            ishl
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            aload 1 /* aad */
            invokespecial sun.security.pkcs11.wrapper.CK_GCM_PARAMS.<init>:(I[B[B)V
        16: .line 389
            invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(JLsun/security/pkcs11/wrapper/CK_GCM_PARAMS;)V
            astore 4 /* mechWithParams */
        start local 4 // sun.security.pkcs11.wrapper.CK_MECHANISM mechWithParams
        17: .line 391
            goto 19
        end local 4 // sun.security.pkcs11.wrapper.CK_MECHANISM mechWithParams
        18: .line 393
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported mode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.blockMode:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // sun.security.pkcs11.wrapper.CK_MECHANISM mechWithParams
        19: .line 395
      StackMap locals: sun.security.pkcs11.wrapper.CK_MECHANISM
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            ifnonnull 21
        20: .line 396
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getOpSession:()Lsun/security/pkcs11/Session;
            putfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
        21: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 26
        22: .line 399
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 4 /* mechWithParams */
        23: .line 400
            lload 2 /* p11KeyID */
        24: .line 399
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
        25: .line 401
            goto 38
        26: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 4 /* mechWithParams */
        27: .line 403
            lload 2 /* p11KeyID */
        28: .line 402
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
        end local 4 // sun.security.pkcs11.wrapper.CK_MECHANISM mechWithParams
        29: .line 405
            goto 38
      StackMap locals: sun.security.pkcs11.P11AEADCipher byte[] long
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
        30: astore 4 /* e */
        start local 4 // sun.security.pkcs11.wrapper.PKCS11Exception e
        31: .line 406
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            invokevirtual sun.security.pkcs11.P11Key.releaseKeyID:()V
        32: .line 407
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            putfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
        33: .line 408
            aload 4 /* e */
            athrow
        end local 4 // sun.security.pkcs11.wrapper.PKCS11Exception e
        34: .line 409
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        35: .line 410
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.reset:()V
        36: .line 411
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.aadBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.reset:()V
        37: .line 412
            aload 5
            athrow
        38: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.reset:()V
        39: .line 411
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.aadBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.reset:()V
        40: .line 413
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.initialized:Z
        41: .line 414
            return
        end local 2 // long p11KeyID
        end local 1 // byte[] aad
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   42     0            this  Lsun/security/pkcs11/P11AEADCipher;
           12   42     1             aad  [B
           13   42     2        p11KeyID  J
           17   18     4  mechWithParams  Lsun/security/pkcs11/wrapper/CK_MECHANISM;
           19   29     4  mechWithParams  Lsun/security/pkcs11/wrapper/CK_MECHANISM;
           31   34     4               e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
          13    29      30  Class sun.security.pkcs11.wrapper.PKCS11Exception
          13    34      34  any
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception

  private int doFinalLength(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // int inLen
         0: .line 418
            iload 1 /* inLen */
            ifge 2
         1: .line 419
            new java.security.ProviderException
            dup
            ldc "Invalid negative input length"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 422
      StackMap locals:
      StackMap stack:
            iload 1 /* inLen */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            iadd
            istore 2 /* result */
        start local 2 // int result
         3: .line 423
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 5
         4: .line 424
            iload 2 /* result */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.tagLen:I
            iadd
            istore 2 /* result */
         5: .line 429
      StackMap locals: int
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // int inLen
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/security/pkcs11/P11AEADCipher;
            0    6     1   inLen  I
            3    6     2  result  I
    MethodParameters:
       Name  Flags
      inLen  

  private void reset(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // boolean doCancel
         0: .line 434
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.initialized:Z
            ifne 2
         1: .line 435
            return
         2: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            ifnonnull 6
         3: .line 445
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            invokevirtual sun.security.pkcs11.P11Key.releaseKeyID:()V
         4: .line 446
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            putfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
         5: .line 439
            return
         6: .line 441
      StackMap locals:
      StackMap stack:
            iload 1 /* doCancel */
            ifeq 13
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.explicitCancel:Z
            ifeq 13
         7: .line 442
            aload 0 /* this */
            invokevirtual sun.security.pkcs11.P11AEADCipher.cancelOperation:()V
         8: .line 444
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 2
        10: .line 445
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            invokevirtual sun.security.pkcs11.P11Key.releaseKeyID:()V
        11: .line 446
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            putfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
        12: .line 447
            aload 2
            athrow
        13: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            invokevirtual sun.security.pkcs11.P11Key.releaseKeyID:()V
        14: .line 446
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            putfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
        15: .line 448
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.initialized:Z
        16: .line 449
            return
        end local 1 // boolean doCancel
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lsun/security/pkcs11/P11AEADCipher;
            0   17     1  doCancel  Z
      Exception table:
        from    to  target  type
           2     3       9  any
           6     9       9  any
    MethodParameters:
          Name  Flags
      doCancel  

  protected byte[] engineUpdate(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
         0: .line 453
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         1: .line 454
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            invokevirtual sun.security.pkcs11.P11AEADCipher.implUpdate:([BII)I
            pop
         2: .line 455
            iconst_0
            newarray 8
            areturn
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/security/pkcs11/P11AEADCipher;
            0    3     1     in  [B
            0    3     2  inOfs  I
            0    3     3  inLen  I
    MethodParameters:
       Name  Flags
      in     
      inOfs  
      inLen  

  protected int engineUpdate(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
        start local 4 // byte[] out
        start local 5 // int outOfs
         0: .line 461
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         1: .line 462
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            invokevirtual sun.security.pkcs11.P11AEADCipher.implUpdate:([BII)I
            pop
         2: .line 463
            iconst_0
            ireturn
        end local 5 // int outOfs
        end local 4 // byte[] out
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/security/pkcs11/P11AEADCipher;
            0    3     1      in  [B
            0    3     2   inOfs  I
            0    3     3   inLen  I
            0    3     4     out  [B
            0    3     5  outOfs  I
    Exceptions:
      throws javax.crypto.ShortBufferException
    MethodParameters:
        Name  Flags
      in      
      inOfs   
      inLen   
      out     
      outOfs  

  protected int engineUpdate(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.nio.ByteBuffer inBuffer
        start local 2 // java.nio.ByteBuffer outBuffer
         0: .line 470
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         1: .line 471
            aload 0 /* this */
            aload 1 /* inBuffer */
            invokevirtual sun.security.pkcs11.P11AEADCipher.implUpdate:(Ljava/nio/ByteBuffer;)I
            pop
         2: .line 472
            iconst_0
            ireturn
        end local 2 // java.nio.ByteBuffer outBuffer
        end local 1 // java.nio.ByteBuffer inBuffer
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lsun/security/pkcs11/P11AEADCipher;
            0    3     1   inBuffer  Ljava/nio/ByteBuffer;
            0    3     2  outBuffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws javax.crypto.ShortBufferException
    MethodParameters:
           Name  Flags
      inBuffer   
      outBuffer  

  protected synchronized void engineUpdateAAD(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // byte[] src
        start local 2 // int srcOfs
        start local 3 // int srcLen
         0: .line 479
            aload 1 /* src */
            ifnull 1
            iload 2 /* srcOfs */
            iflt 1
            iload 2 /* srcOfs */
            iload 3 /* srcLen */
            iadd
            aload 1 /* src */
            arraylength
            if_icmple 2
         1: .line 480
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid AAD"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
            ifeq 6
         3: .line 483
            new java.lang.IllegalStateException
            dup
         4: .line 484
            ldc "Must use either different key or iv for GCM encryption"
         5: .line 483
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            ifnonnull 8
         7: .line 487
            new java.lang.IllegalStateException
            dup
            ldc "Need to initialize Cipher first"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
            ifeq 12
         9: .line 490
            new java.lang.IllegalStateException
            dup
        10: .line 491
            ldc "Update has been called; no more AAD data"
        11: .line 490
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.aadBuffer:Ljava/io/ByteArrayOutputStream;
            aload 1 /* src */
            iload 2 /* srcOfs */
            iload 3 /* srcLen */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        13: .line 494
            return
        end local 3 // int srcLen
        end local 2 // int srcOfs
        end local 1 // byte[] src
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lsun/security/pkcs11/P11AEADCipher;
            0   14     1     src  [B
            0   14     2  srcOfs  I
            0   14     3  srcLen  I
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      src     
      srcOfs  
      srcLen  

  protected void engineUpdateAAD(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.nio.ByteBuffer src
         0: .line 500
            aload 1 /* src */
            ifnonnull 2
         1: .line 501
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid AAD"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 503
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            newarray 8
            astore 2 /* srcBytes */
        start local 2 // byte[] srcBytes
         3: .line 504
            aload 1 /* src */
            aload 2 /* srcBytes */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
         4: .line 505
            aload 0 /* this */
            aload 2 /* srcBytes */
            iconst_0
            aload 2 /* srcBytes */
            arraylength
            invokevirtual sun.security.pkcs11.P11AEADCipher.engineUpdateAAD:([BII)V
         5: .line 506
            return
        end local 2 // byte[] srcBytes
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/security/pkcs11/P11AEADCipher;
            0    6     1       src  Ljava/nio/ByteBuffer;
            3    6     2  srcBytes  [B
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      src   

  protected byte[] engineDoFinal(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
         0: .line 511
            aload 0 /* this */
            iload 3 /* inLen */
            invokevirtual sun.security.pkcs11.P11AEADCipher.doFinalLength:(I)I
            istore 4 /* minOutLen */
        start local 4 // int minOutLen
         1: .line 513
            iload 4 /* minOutLen */
            newarray 8
            astore 5 /* out */
        start local 5 // byte[] out
         2: .line 514
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            aload 5 /* out */
            iconst_0
            invokevirtual sun.security.pkcs11.P11AEADCipher.engineDoFinal:([BII[BI)I
            istore 6 /* n */
        start local 6 // int n
         3: .line 515
            aload 5 /* out */
            iconst_0
            iload 6 /* n */
            invokestatic sun.security.pkcs11.P11Util.convert:([BII)[B
            astore 8
         4: .line 520
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         5: .line 515
            aload 8
            areturn
        end local 6 // int n
        end local 5 // byte[] out
         6: .line 516
      StackMap locals: sun.security.pkcs11.P11AEADCipher byte[] int int int
      StackMap stack: javax.crypto.ShortBufferException
            astore 5 /* e */
        start local 5 // javax.crypto.ShortBufferException e
         7: .line 518
            new java.security.ProviderException
            dup
            aload 5 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // javax.crypto.ShortBufferException e
         8: .line 519
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
         9: .line 520
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
        10: .line 521
            aload 7
            athrow
        end local 4 // int minOutLen
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lsun/security/pkcs11/P11AEADCipher;
            0   11     1         in  [B
            0   11     2      inOfs  I
            0   11     3      inLen  I
            1   11     4  minOutLen  I
            2    6     5        out  [B
            3    6     6          n  I
            7    8     5          e  Ljavax/crypto/ShortBufferException;
      Exception table:
        from    to  target  type
           1     4       6  Class javax.crypto.ShortBufferException
           1     4       8  any
           6     8       8  any
    Exceptions:
      throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
       Name  Flags
      in     
      inOfs  
      inLen  

  protected int engineDoFinal(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=8, args_size=6
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
        start local 4 // byte[] out
        start local 5 // int outOfs
         0: .line 528
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            aload 4 /* out */
            iload 5 /* outOfs */
            aload 4 /* out */
            arraylength
            iload 5 /* outOfs */
            isub
            invokevirtual sun.security.pkcs11.P11AEADCipher.implDoFinal:([BII[BII)I
            istore 7
         1: .line 530
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         2: .line 528
            iload 7
            ireturn
         3: .line 529
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
         4: .line 530
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         5: .line 531
            aload 6
            athrow
        end local 5 // int outOfs
        end local 4 // byte[] out
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/security/pkcs11/P11AEADCipher;
            0    6     1      in  [B
            0    6     2   inOfs  I
            0    6     3   inLen  I
            0    6     4     out  [B
            0    6     5  outOfs  I
      Exception table:
        from    to  target  type
           0     1       3  any
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
        Name  Flags
      in      
      inOfs   
      inLen   
      out     
      outOfs  

  protected int engineDoFinal(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.nio.ByteBuffer inBuffer
        start local 2 // java.nio.ByteBuffer outBuffer
         0: .line 540
            aload 0 /* this */
            aload 1 /* inBuffer */
            aload 2 /* outBuffer */
            invokevirtual sun.security.pkcs11.P11AEADCipher.implDoFinal:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
            istore 4
         1: .line 542
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         2: .line 540
            iload 4
            ireturn
         3: .line 541
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         4: .line 542
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         5: .line 543
            aload 3
            athrow
        end local 2 // java.nio.ByteBuffer outBuffer
        end local 1 // java.nio.ByteBuffer inBuffer
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/security/pkcs11/P11AEADCipher;
            0    6     1   inBuffer  Ljava/nio/ByteBuffer;
            0    6     2  outBuffer  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
           0     1       3  any
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
           Name  Flags
      inBuffer   
      outBuffer  

  private int implUpdate(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
         0: .line 547
            iload 3 /* inLen */
            ifle 8
         1: .line 548
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.updateCalled:Z
         2: .line 550
            aload 0 /* this */
            invokevirtual sun.security.pkcs11.P11AEADCipher.ensureInitialized:()V
         3: .line 551
            goto 7
      StackMap locals:
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
         4: astore 4 /* e */
        start local 4 // sun.security.pkcs11.wrapper.PKCS11Exception e
         5: .line 553
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
         6: .line 554
            new java.security.ProviderException
            dup
            ldc "update() failed"
            aload 4 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // sun.security.pkcs11.wrapper.PKCS11Exception e
         7: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
         8: .line 559
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lsun/security/pkcs11/P11AEADCipher;
            0    9     1     in  [B
            0    9     2  inOfs  I
            0    9     3  inLen  I
            5    7     4      e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class sun.security.pkcs11.wrapper.PKCS11Exception
    MethodParameters:
       Name  Flags
      in     
      inOfs  
      inLen  

  private int implUpdate(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.nio.ByteBuffer inBuf
         0: .line 563
            aload 1 /* inBuf */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 2 /* inLen */
        start local 2 // int inLen
         1: .line 564
            iload 2 /* inLen */
            ifle 10
         2: .line 566
            aload 0 /* this */
            invokevirtual sun.security.pkcs11.P11AEADCipher.ensureInitialized:()V
         3: .line 567
            goto 7
      StackMap locals: sun.security.pkcs11.P11AEADCipher java.nio.ByteBuffer int
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
         4: astore 3 /* e */
        start local 3 // sun.security.pkcs11.wrapper.PKCS11Exception e
         5: .line 568
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
         6: .line 569
            new java.security.ProviderException
            dup
            ldc "update() failed"
            aload 3 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // sun.security.pkcs11.wrapper.PKCS11Exception e
         7: .line 571
      StackMap locals:
      StackMap stack:
            iload 2 /* inLen */
            newarray 8
            astore 3 /* data */
        start local 3 // byte[] data
         8: .line 572
            aload 1 /* inBuf */
            aload 3 /* data */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
         9: .line 573
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            aload 3 /* data */
            iconst_0
            aload 3 /* data */
            arraylength
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 3 // byte[] data
        10: .line 576
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // int inLen
        end local 1 // java.nio.ByteBuffer inBuf
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lsun/security/pkcs11/P11AEADCipher;
            0   11     1  inBuf  Ljava/nio/ByteBuffer;
            1   11     2  inLen  I
            5    7     3      e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
            8   10     3   data  [B
      Exception table:
        from    to  target  type
           2     3       4  Class sun.security.pkcs11.wrapper.PKCS11Exception
    MethodParameters:
       Name  Flags
      inBuf  

  private int implDoFinal(byte[], int, int, byte[], int, int);
    descriptor: ([BII[BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=12, args_size=7
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
        start local 4 // byte[] out
        start local 5 // int outOfs
        start local 6 // int outLen
         0: .line 583
            aload 0 /* this */
            iload 3 /* inLen */
            invokevirtual sun.security.pkcs11.P11AEADCipher.doFinalLength:(I)I
            istore 7 /* requiredOutLen */
        start local 7 // int requiredOutLen
         1: .line 584
            iload 6 /* outLen */
            iload 7 /* requiredOutLen */
            if_icmpge 3
         2: .line 585
            new javax.crypto.ShortBufferException
            dup
            invokespecial javax.crypto.ShortBufferException.<init>:()V
            athrow
         3: .line 587
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 8 /* doCancel */
        start local 8 // boolean doCancel
         4: .line 589
            aload 0 /* this */
            invokevirtual sun.security.pkcs11.P11AEADCipher.ensureInitialized:()V
         5: .line 590
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            ifle 12
         6: .line 591
            aload 1 /* in */
            ifnull 9
            iload 2 /* inOfs */
            ifle 9
            iload 3 /* inLen */
            ifle 9
         7: .line 592
            iload 2 /* inOfs */
            aload 1 /* in */
            arraylength
            iload 3 /* inLen */
            isub
            if_icmpge 9
         8: .line 593
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
         9: .line 595
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 1 /* in */
        10: .line 596
            iconst_0
            istore 2 /* inOfs */
        11: .line 597
            aload 1 /* in */
            arraylength
            istore 3 /* inLen */
        12: .line 599
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* k */
        start local 9 // int k
        13: .line 600
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 19
        14: .line 601
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.id:()J
            lconst_0
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
        15: .line 602
            lconst_0
            aload 4 /* out */
            iload 5 /* outOfs */
            iload 6 /* outLen */
        16: .line 601
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Encrypt:(JJ[BIIJ[BII)I
            istore 9 /* k */
        17: .line 603
            iconst_0
            istore 8 /* doCancel */
        18: .line 604
            goto 30
        19: .line 606
      StackMap locals: int
      StackMap stack:
            iload 3 /* inLen */
            ifne 26
        20: .line 619
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 24
        21: .line 620
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            putfield sun.security.pkcs11.P11AEADCipher.lastEncKey:Lsun/security/pkcs11/P11Key;
        22: .line 621
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            putfield sun.security.pkcs11.P11AEADCipher.lastEncIv:[B
        23: .line 622
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        24: .line 624
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* doCancel */
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
        25: .line 607
            iconst_0
            ireturn
        26: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.id:()J
            lconst_0
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
        27: .line 610
            lconst_0
            aload 4 /* out */
            iload 5 /* outOfs */
            iload 6 /* outLen */
        28: .line 609
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Decrypt:(JJ[BIIJ[BII)I
            istore 9 /* k */
        29: .line 611
            iconst_0
            istore 8 /* doCancel */
        30: .line 613
      StackMap locals:
      StackMap stack:
            iload 9 /* k */
            istore 11
        31: .line 619
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 35
        32: .line 620
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            putfield sun.security.pkcs11.P11AEADCipher.lastEncKey:Lsun/security/pkcs11/P11Key;
        33: .line 621
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            putfield sun.security.pkcs11.P11AEADCipher.lastEncIv:[B
        34: .line 622
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        35: .line 624
      StackMap locals: sun.security.pkcs11.P11AEADCipher byte[] int int byte[] int int int int int top int
      StackMap stack:
            aload 0 /* this */
            iload 8 /* doCancel */
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
        36: .line 613
            iload 11
            ireturn
        end local 9 // int k
        37: .line 614
      StackMap locals: sun.security.pkcs11.P11AEADCipher byte[] int int byte[] int int int int
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
            astore 9 /* e */
        start local 9 // sun.security.pkcs11.wrapper.PKCS11Exception e
        38: .line 615
            iconst_0
            istore 8 /* doCancel */
        39: .line 616
            aload 0 /* this */
            aload 9 /* e */
            invokevirtual sun.security.pkcs11.P11AEADCipher.handleException:(Lsun/security/pkcs11/wrapper/PKCS11Exception;)V
        40: .line 617
            new java.security.ProviderException
            dup
            ldc "doFinal() failed"
            aload 9 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // sun.security.pkcs11.wrapper.PKCS11Exception e
        41: .line 618
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        42: .line 619
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 46
        43: .line 620
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            putfield sun.security.pkcs11.P11AEADCipher.lastEncKey:Lsun/security/pkcs11/P11Key;
        44: .line 621
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            putfield sun.security.pkcs11.P11AEADCipher.lastEncIv:[B
        45: .line 622
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        46: .line 624
      StackMap locals: sun.security.pkcs11.P11AEADCipher byte[] int int byte[] int int int int top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            iload 8 /* doCancel */
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
        47: .line 625
            aload 10
            athrow
        end local 8 // boolean doCancel
        end local 7 // int requiredOutLen
        end local 6 // int outLen
        end local 5 // int outOfs
        end local 4 // byte[] out
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   48     0            this  Lsun/security/pkcs11/P11AEADCipher;
            0   48     1              in  [B
            0   48     2           inOfs  I
            0   48     3           inLen  I
            0   48     4             out  [B
            0   48     5          outOfs  I
            0   48     6          outLen  I
            1   48     7  requiredOutLen  I
            4   48     8        doCancel  Z
           13   37     9               k  I
           38   41     9               e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
           4    20      37  Class sun.security.pkcs11.wrapper.PKCS11Exception
          26    31      37  Class sun.security.pkcs11.wrapper.PKCS11Exception
           4    20      41  any
          26    31      41  any
          37    41      41  any
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
        Name  Flags
      in      
      inOfs   
      inLen   
      out     
      outOfs  
      outLen  

  private int implDoFinal(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=18, args_size=3
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.nio.ByteBuffer inBuffer
        start local 2 // java.nio.ByteBuffer outBuffer
         0: .line 631
            aload 2 /* outBuffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 3 /* outLen */
        start local 3 // int outLen
         1: .line 632
            aload 1 /* inBuffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 4 /* inLen */
        start local 4 // int inLen
         2: .line 634
            aload 0 /* this */
            iload 4 /* inLen */
            invokevirtual sun.security.pkcs11.P11AEADCipher.doFinalLength:(I)I
            istore 5 /* requiredOutLen */
        start local 5 // int requiredOutLen
         3: .line 635
            iload 3 /* outLen */
            iload 5 /* requiredOutLen */
            if_icmpge 5
         4: .line 636
            new javax.crypto.ShortBufferException
            dup
            invokespecial javax.crypto.ShortBufferException.<init>:()V
            athrow
         5: .line 639
      StackMap locals: int int int
      StackMap stack:
            iconst_1
            istore 6 /* doCancel */
        start local 6 // boolean doCancel
         6: .line 641
            aload 0 /* this */
            invokevirtual sun.security.pkcs11.P11AEADCipher.ensureInitialized:()V
         7: .line 643
            lconst_0
            lstore 7 /* inAddr */
        start local 7 // long inAddr
         8: .line 644
            aconst_null
            astore 9 /* in */
        start local 9 // byte[] in
         9: .line 645
            iconst_0
            istore 10 /* inOfs */
        start local 10 // int inOfs
        10: .line 646
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            ifle 19
        11: .line 647
            iload 4 /* inLen */
            ifle 15
        12: .line 648
            iload 4 /* inLen */
            newarray 8
            astore 11 /* temp */
        start local 11 // byte[] temp
        13: .line 649
            aload 1 /* inBuffer */
            aload 11 /* temp */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        14: .line 650
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            aload 11 /* temp */
            iconst_0
            aload 11 /* temp */
            arraylength
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 11 // byte[] temp
        15: .line 652
      StackMap locals: sun.security.pkcs11.P11AEADCipher java.nio.ByteBuffer java.nio.ByteBuffer int int int int long byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.dataBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 9 /* in */
        16: .line 653
            iconst_0
            istore 10 /* inOfs */
        17: .line 654
            aload 9 /* in */
            arraylength
            istore 4 /* inLen */
        18: .line 655
            goto 29
        19: .line 656
      StackMap locals:
      StackMap stack:
            aload 1 /* inBuffer */
            instanceof sun.nio.ch.DirectBuffer
            ifeq 23
        20: .line 657
            aload 1 /* inBuffer */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            lstore 7 /* inAddr */
        21: .line 658
            aload 1 /* inBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 10 /* inOfs */
        22: .line 659
            goto 29
        23: .line 660
      StackMap locals:
      StackMap stack:
            aload 1 /* inBuffer */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            ifeq 27
        24: .line 661
            aload 1 /* inBuffer */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 9 /* in */
        25: .line 662
            aload 1 /* inBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            aload 1 /* inBuffer */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iadd
            istore 10 /* inOfs */
        26: .line 663
            goto 29
        27: .line 664
      StackMap locals:
      StackMap stack:
            iload 4 /* inLen */
            newarray 8
            astore 9 /* in */
        28: .line 665
            aload 1 /* inBuffer */
            aload 9 /* in */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        29: .line 669
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 11 /* outAddr */
        start local 11 // long outAddr
        30: .line 670
            aconst_null
            astore 13 /* outArray */
        start local 13 // byte[] outArray
        31: .line 671
            iconst_0
            istore 14 /* outOfs */
        start local 14 // int outOfs
        32: .line 672
            aload 2 /* outBuffer */
            instanceof sun.nio.ch.DirectBuffer
            ifeq 36
        33: .line 673
            aload 2 /* outBuffer */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            lstore 11 /* outAddr */
        34: .line 674
            aload 2 /* outBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 14 /* outOfs */
        35: .line 675
            goto 41
        36: .line 676
      StackMap locals: long byte[] int
      StackMap stack:
            aload 2 /* outBuffer */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            ifeq 40
        37: .line 677
            aload 2 /* outBuffer */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 13 /* outArray */
        38: .line 678
            aload 2 /* outBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            aload 2 /* outBuffer */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iadd
            istore 14 /* outOfs */
        39: .line 679
            goto 41
        40: .line 680
      StackMap locals:
      StackMap stack:
            iload 3 /* outLen */
            newarray 8
            astore 13 /* outArray */
        41: .line 684
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 15 /* k */
        start local 15 // int k
        42: .line 685
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 48
        43: .line 686
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.id:()J
            lload 7 /* inAddr */
            aload 9 /* in */
            iload 10 /* inOfs */
            iload 4 /* inLen */
        44: .line 687
            lload 11 /* outAddr */
            aload 13 /* outArray */
            iload 14 /* outOfs */
            iload 3 /* outLen */
        45: .line 686
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Encrypt:(JJ[BIIJ[BII)I
            istore 15 /* k */
        46: .line 688
            iconst_0
            istore 6 /* doCancel */
        47: .line 689
            goto 59
        48: .line 691
      StackMap locals: int
      StackMap stack:
            iload 4 /* inLen */
            ifne 55
        49: .line 705
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 53
        50: .line 706
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            putfield sun.security.pkcs11.P11AEADCipher.lastEncKey:Lsun/security/pkcs11/P11Key;
        51: .line 707
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            putfield sun.security.pkcs11.P11AEADCipher.lastEncIv:[B
        52: .line 708
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        53: .line 710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* doCancel */
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
        54: .line 692
            iconst_0
            ireturn
        55: .line 694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.session:Lsun/security/pkcs11/Session;
            invokevirtual sun.security.pkcs11.Session.id:()J
            lload 7 /* inAddr */
            aload 9 /* in */
            iload 10 /* inOfs */
            iload 4 /* inLen */
        56: .line 695
            lload 11 /* outAddr */
            aload 13 /* outArray */
            iload 14 /* outOfs */
            iload 3 /* outLen */
        57: .line 694
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Decrypt:(JJ[BIIJ[BII)I
            istore 15 /* k */
        58: .line 696
            iconst_0
            istore 6 /* doCancel */
        59: .line 698
      StackMap locals:
      StackMap stack:
            aload 2 /* outBuffer */
            aload 2 /* outBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 15 /* k */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        60: .line 699
            iload 15 /* k */
            istore 17
        61: .line 705
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 65
        62: .line 706
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            putfield sun.security.pkcs11.P11AEADCipher.lastEncKey:Lsun/security/pkcs11/P11Key;
        63: .line 707
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            putfield sun.security.pkcs11.P11AEADCipher.lastEncIv:[B
        64: .line 708
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        65: .line 710
      StackMap locals: sun.security.pkcs11.P11AEADCipher java.nio.ByteBuffer java.nio.ByteBuffer int int int int long byte[] int long byte[] int int top int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* doCancel */
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
        66: .line 699
            iload 17
            ireturn
        end local 15 // int k
        end local 14 // int outOfs
        end local 13 // byte[] outArray
        end local 11 // long outAddr
        end local 10 // int inOfs
        end local 9 // byte[] in
        end local 7 // long inAddr
        67: .line 700
      StackMap locals: sun.security.pkcs11.P11AEADCipher java.nio.ByteBuffer java.nio.ByteBuffer int int int int
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
            astore 7 /* e */
        start local 7 // sun.security.pkcs11.wrapper.PKCS11Exception e
        68: .line 701
            iconst_0
            istore 6 /* doCancel */
        69: .line 702
            aload 0 /* this */
            aload 7 /* e */
            invokevirtual sun.security.pkcs11.P11AEADCipher.handleException:(Lsun/security/pkcs11/wrapper/PKCS11Exception;)V
        70: .line 703
            new java.security.ProviderException
            dup
            ldc "doFinal() failed"
            aload 7 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // sun.security.pkcs11.wrapper.PKCS11Exception e
        71: .line 704
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 16
        72: .line 705
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.encrypt:Z
            ifeq 76
        73: .line 706
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.p11Key:Lsun/security/pkcs11/P11Key;
            putfield sun.security.pkcs11.P11AEADCipher.lastEncKey:Lsun/security/pkcs11/P11Key;
        74: .line 707
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.iv:[B
            putfield sun.security.pkcs11.P11AEADCipher.lastEncIv:[B
        75: .line 708
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs11.P11AEADCipher.requireReinit:Z
        76: .line 710
      StackMap locals: sun.security.pkcs11.P11AEADCipher java.nio.ByteBuffer java.nio.ByteBuffer int int int int top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            iload 6 /* doCancel */
            invokevirtual sun.security.pkcs11.P11AEADCipher.reset:(Z)V
        77: .line 711
            aload 16
            athrow
        end local 6 // boolean doCancel
        end local 5 // int requiredOutLen
        end local 4 // int inLen
        end local 3 // int outLen
        end local 2 // java.nio.ByteBuffer outBuffer
        end local 1 // java.nio.ByteBuffer inBuffer
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   78     0            this  Lsun/security/pkcs11/P11AEADCipher;
            0   78     1        inBuffer  Ljava/nio/ByteBuffer;
            0   78     2       outBuffer  Ljava/nio/ByteBuffer;
            1   78     3          outLen  I
            2   78     4           inLen  I
            3   78     5  requiredOutLen  I
            6   78     6        doCancel  Z
            8   67     7          inAddr  J
            9   67     9              in  [B
           10   67    10           inOfs  I
           13   15    11            temp  [B
           30   67    11         outAddr  J
           31   67    13        outArray  [B
           32   67    14          outOfs  I
           42   67    15               k  I
           68   71     7               e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
           6    49      67  Class sun.security.pkcs11.wrapper.PKCS11Exception
          55    61      67  Class sun.security.pkcs11.wrapper.PKCS11Exception
           6    49      71  any
          55    61      71  any
          67    71      71  any
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
           Name  Flags
      inBuffer   
      outBuffer  

  private void handleException(sun.security.pkcs11.wrapper.PKCS11Exception);
    descriptor: (Lsun/security/pkcs11/wrapper/PKCS11Exception;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // sun.security.pkcs11.wrapper.PKCS11Exception e
         0: .line 717
            aload 1 /* e */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.getErrorCode:()J
            lstore 2 /* errorCode */
        start local 2 // long errorCode
         1: .line 718
            lload 2 /* errorCode */
            ldc 336
            lcmp
            ifne 4
         2: .line 720
            new javax.crypto.ShortBufferException
            dup
            invokespecial javax.crypto.ShortBufferException.<init>:()V
            aload 1 /* e */
            invokevirtual javax.crypto.ShortBufferException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
         3: .line 719
            checkcast javax.crypto.ShortBufferException
            athrow
         4: .line 721
      StackMap locals: long
      StackMap stack:
            lload 2 /* errorCode */
            ldc 33
            lcmp
            ifeq 6
         5: .line 722
            lload 2 /* errorCode */
            ldc 65
            lcmp
            ifne 8
         6: .line 724
      StackMap locals:
      StackMap stack:
            new javax.crypto.IllegalBlockSizeException
            dup
            aload 1 /* e */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.toString:()Ljava/lang/String;
            invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual javax.crypto.IllegalBlockSizeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
         7: .line 723
            checkcast javax.crypto.IllegalBlockSizeException
            athrow
         8: .line 725
      StackMap locals:
      StackMap stack:
            lload 2 /* errorCode */
            ldc 64
            lcmp
            ifeq 10
         9: .line 727
            lload 2 /* errorCode */
            ldc 5
            lcmp
            ifne 12
        10: .line 729
      StackMap locals:
      StackMap stack:
            new javax.crypto.BadPaddingException
            dup
            aload 1 /* e */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.toString:()Ljava/lang/String;
            invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual javax.crypto.BadPaddingException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
        11: .line 728
            checkcast javax.crypto.BadPaddingException
            athrow
        12: .line 731
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long errorCode
        end local 1 // sun.security.pkcs11.wrapper.PKCS11Exception e
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lsun/security/pkcs11/P11AEADCipher;
            0   13     1          e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
            1   13     2  errorCode  J
    Exceptions:
      throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
      Name  Flags
      e     

  protected byte[] engineWrap(java.security.Key);
    descriptor: (Ljava/security/Key;)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.security.Key key
         0: .line 737
            new java.lang.UnsupportedOperationException
            dup
            ldc "engineWrap()"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.Key key
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs11/P11AEADCipher;
            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=3, locals=4, args_size=4
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // byte[] wrappedKey
        start local 2 // java.lang.String wrappedKeyAlgorithm
        start local 3 // int wrappedKeyType
         0: .line 745
            new java.lang.UnsupportedOperationException
            dup
            ldc "engineUnwrap()"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int wrappedKeyType
        end local 2 // java.lang.String wrappedKeyAlgorithm
        end local 1 // byte[] wrappedKey
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0                 this  Lsun/security/pkcs11/P11AEADCipher;
            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=3, locals=3, args_size=2
        start local 0 // sun.security.pkcs11.P11AEADCipher this
        start local 1 // java.security.Key key
         0: .line 752
            aload 0 /* this */
            getfield sun.security.pkcs11.P11AEADCipher.token:Lsun/security/pkcs11/Token;
            aload 1 /* key */
            ldc "AES"
         1: .line 751
            invokestatic sun.security.pkcs11.P11SecretKeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
         2: .line 752
            invokevirtual sun.security.pkcs11.P11Key.length:()I
         3: .line 751
            istore 2 /* n */
        start local 2 // int n
         4: .line 753
            iload 2 /* n */
            ireturn
        end local 2 // int n
        end local 1 // java.security.Key key
        end local 0 // sun.security.pkcs11.P11AEADCipher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/pkcs11/P11AEADCipher;
            0    5     1   key  Ljava/security/Key;
            4    5     2     n  I
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   
}
SourceFile: "P11AEADCipher.java"