public class javax.crypto.CipherOutputStream extends java.io.FilterOutputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.crypto.CipherOutputStream
  super_class: java.io.FilterOutputStream
{
  private javax.crypto.Cipher cipher;
    descriptor: Ljavax/crypto/Cipher;
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream output;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private void ensureCapacity(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.crypto.CipherOutputStream this
        start local 1 // int inLen
         0: .line 95
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
            iload 1 /* inLen */
            invokevirtual javax.crypto.Cipher.getOutputSize:(I)I
            istore 2 /* minLen */
        start local 2 // int minLen
         1: .line 96
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            ifnull 2
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            arraylength
            iload 2 /* minLen */
            if_icmpge 3
         2: .line 97
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* minLen */
            newarray 8
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         3: .line 99
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int minLen
        end local 1 // int inLen
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljavax/crypto/CipherOutputStream;
            0    4     1   inLen  I
            1    4     2  minLen  I
    MethodParameters:
       Name  Flags
      inLen  

  public void <init>(java.io.OutputStream, javax.crypto.Cipher);
    descriptor: (Ljava/io/OutputStream;Ljavax/crypto/Cipher;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javax.crypto.CipherOutputStream this
        start local 1 // java.io.OutputStream os
        start local 2 // javax.crypto.Cipher c
         0: .line 113
            aload 0 /* this */
            aload 1 /* os */
            invokespecial java.io.FilterOutputStream.<init>:(Ljava/io/OutputStream;)V
         1: .line 80
            aload 0 /* this */
            iconst_1
            newarray 8
            putfield javax.crypto.CipherOutputStream.ibuffer:[B
         2: .line 83
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield javax.crypto.CipherOutputStream.closed:Z
         4: .line 114
            aload 0 /* this */
            aload 1 /* os */
            putfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
         5: .line 115
            aload 0 /* this */
            aload 2 /* c */
            putfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
         6: .line 116
            return
        end local 2 // javax.crypto.Cipher c
        end local 1 // java.io.OutputStream os
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljavax/crypto/CipherOutputStream;
            0    7     1    os  Ljava/io/OutputStream;
            0    7     2     c  Ljavax/crypto/Cipher;
    MethodParameters:
      Name  Flags
      os    
      c     

  protected void <init>(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.crypto.CipherOutputStream this
        start local 1 // java.io.OutputStream os
         0: .line 128
            aload 0 /* this */
            aload 1 /* os */
            invokespecial java.io.FilterOutputStream.<init>:(Ljava/io/OutputStream;)V
         1: .line 80
            aload 0 /* this */
            iconst_1
            newarray 8
            putfield javax.crypto.CipherOutputStream.ibuffer:[B
         2: .line 83
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield javax.crypto.CipherOutputStream.closed:Z
         4: .line 129
            aload 0 /* this */
            aload 1 /* os */
            putfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
         5: .line 130
            aload 0 /* this */
            new javax.crypto.NullCipher
            dup
            invokespecial javax.crypto.NullCipher.<init>:()V
            putfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
         6: .line 131
            return
        end local 1 // java.io.OutputStream os
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljavax/crypto/CipherOutputStream;
            0    7     1    os  Ljava/io/OutputStream;
    MethodParameters:
      Name  Flags
      os    

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // javax.crypto.CipherOutputStream this
        start local 1 // int b
         0: .line 141
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.ibuffer:[B
            iconst_0
            iload 1 /* b */
            i2b
            bastore
         1: .line 142
            aload 0 /* this */
            iconst_1
            invokevirtual javax.crypto.CipherOutputStream.ensureCapacity:(I)V
         2: .line 144
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.ibuffer:[B
            iconst_0
            iconst_1
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            invokevirtual javax.crypto.Cipher.update:([BII[B)I
            istore 2 /* ostored */
        start local 2 // int ostored
         3: .line 145
            iload 2 /* ostored */
            ifle 8
         4: .line 146
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            iconst_0
            iload 2 /* ostored */
            invokevirtual java.io.OutputStream.write:([BII)V
        end local 2 // int ostored
         5: .line 148
            goto 8
      StackMap locals:
      StackMap stack: javax.crypto.ShortBufferException
         6: astore 2 /* sbe */
        start local 2 // javax.crypto.ShortBufferException sbe
         7: .line 150
            new java.io.IOException
            dup
            aload 2 /* sbe */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // javax.crypto.ShortBufferException sbe
         8: .line 152
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int b
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljavax/crypto/CipherOutputStream;
            0    9     1        b  I
            3    5     2  ostored  I
            7    8     2      sbe  Ljavax/crypto/ShortBufferException;
      Exception table:
        from    to  target  type
           2     5       6  Class javax.crypto.ShortBufferException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  public void write(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javax.crypto.CipherOutputStream this
        start local 1 // byte[] b
         0: .line 170
            aload 0 /* this */
            aload 1 /* b */
            iconst_0
            aload 1 /* b */
            arraylength
            invokevirtual javax.crypto.CipherOutputStream.write:([BII)V
         1: .line 171
            return
        end local 1 // byte[] b
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/crypto/CipherOutputStream;
            0    2     1     b  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // javax.crypto.CipherOutputStream this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 184
            aload 0 /* this */
            iload 3 /* len */
            invokevirtual javax.crypto.CipherOutputStream.ensureCapacity:(I)V
         1: .line 186
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            invokevirtual javax.crypto.Cipher.update:([BII[B)I
            istore 4 /* ostored */
        start local 4 // int ostored
         2: .line 187
            iload 4 /* ostored */
            ifle 7
         3: .line 188
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            iconst_0
            iload 4 /* ostored */
            invokevirtual java.io.OutputStream.write:([BII)V
        end local 4 // int ostored
         4: .line 190
            goto 7
      StackMap locals:
      StackMap stack: javax.crypto.ShortBufferException
         5: astore 4 /* e */
        start local 4 // javax.crypto.ShortBufferException e
         6: .line 192
            new java.io.IOException
            dup
            aload 4 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // javax.crypto.ShortBufferException e
         7: .line 194
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljavax/crypto/CipherOutputStream;
            0    8     1        b  [B
            0    8     2      off  I
            0    8     3      len  I
            2    4     4  ostored  I
            6    7     4        e  Ljavax/crypto/ShortBufferException;
      Exception table:
        from    to  target  type
           1     4       5  Class javax.crypto.ShortBufferException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.crypto.CipherOutputStream this
         0: .line 213
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
         1: .line 214
            return
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/crypto/CipherOutputStream;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // javax.crypto.CipherOutputStream this
         0: .line 233
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.closed:Z
            ifeq 2
         1: .line 234
            return
         2: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield javax.crypto.CipherOutputStream.closed:Z
         3: .line 238
            aload 0 /* this */
            iconst_0
            invokevirtual javax.crypto.CipherOutputStream.ensureCapacity:(I)V
         4: .line 240
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            iconst_0
            invokevirtual javax.crypto.Cipher.doFinal:([BI)I
            istore 1 /* ostored */
        start local 1 // int ostored
         5: .line 241
            iload 1 /* ostored */
            ifle 9
         6: .line 242
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            iconst_0
            iload 1 /* ostored */
            invokevirtual java.io.OutputStream.write:([BII)V
        end local 1 // int ostored
         7: .line 244
            goto 9
         8: .line 245
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            pop
         9: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.CipherOutputStream.obuffer:[B
        10: .line 249
            aload 0 /* this */
            invokevirtual javax.crypto.CipherOutputStream.flush:()V
        11: .line 250
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        12: pop
        13: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
        14: .line 252
            return
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Ljavax/crypto/CipherOutputStream;
            5    7     1  ostored  I
      Exception table:
        from    to  target  type
           4     7       8  Class javax.crypto.IllegalBlockSizeException
           4     7       8  Class javax.crypto.BadPaddingException
           4     7       8  Class javax.crypto.ShortBufferException
          10    11      12  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
}
SourceFile: "CipherOutputStream.java"