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

  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 92
            aload 0 /* this */
            aload 1 /* os */
            invokespecial java.io.FilterOutputStream.<init>:(Ljava/io/OutputStream;)V
         1: .line 72
            aload 0 /* this */
            iconst_1
            newarray 8
            putfield javax.crypto.CipherOutputStream.ibuffer:[B
         2: .line 78
            aload 0 /* this */
            iconst_0
            putfield javax.crypto.CipherOutputStream.closed:Z
         3: .line 93
            aload 0 /* this */
            aload 1 /* os */
            putfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
         4: .line 94
            aload 0 /* this */
            aload 2 /* c */
            putfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
         5: .line 95
            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    6     0  this  Ljavax/crypto/CipherOutputStream;
            0    6     1    os  Ljava/io/OutputStream;
            0    6     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 107
            aload 0 /* this */
            aload 1 /* os */
            invokespecial java.io.FilterOutputStream.<init>:(Ljava/io/OutputStream;)V
         1: .line 72
            aload 0 /* this */
            iconst_1
            newarray 8
            putfield javax.crypto.CipherOutputStream.ibuffer:[B
         2: .line 78
            aload 0 /* this */
            iconst_0
            putfield javax.crypto.CipherOutputStream.closed:Z
         3: .line 108
            aload 0 /* this */
            aload 1 /* os */
            putfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
         4: .line 109
            aload 0 /* this */
            new javax.crypto.NullCipher
            dup
            invokespecial javax.crypto.NullCipher.<init>:()V
            putfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
         5: .line 110
            return
        end local 1 // java.io.OutputStream os
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljavax/crypto/CipherOutputStream;
            0    6     1    os  Ljava/io/OutputStream;
    MethodParameters:
      Name  Flags
      os    

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // javax.crypto.CipherOutputStream this
        start local 1 // int b
         0: .line 119
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.ibuffer:[B
            iconst_0
            iload 1 /* b */
            i2b
            bastore
         1: .line 120
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.ibuffer:[B
            iconst_0
            iconst_1
            invokevirtual javax.crypto.Cipher.update:([BII)[B
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         2: .line 121
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            ifnull 5
         3: .line 122
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            invokevirtual java.io.OutputStream.write:([B)V
         4: .line 123
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         5: .line 125
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int b
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljavax/crypto/CipherOutputStream;
            0    6     1     b  I
    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 142
            aload 0 /* this */
            aload 1 /* b */
            iconst_0
            aload 1 /* b */
            arraylength
            invokevirtual javax.crypto.CipherOutputStream.write:([BII)V
         1: .line 143
            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=4, 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 155
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual javax.crypto.Cipher.update:([BII)[B
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         1: .line 156
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            ifnull 4
         2: .line 157
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            invokevirtual java.io.OutputStream.write:([B)V
         3: .line 158
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         4: .line 160
      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    5     0  this  Ljavax/crypto/CipherOutputStream;
            0    5     1     b  [B
            0    5     2   off  I
            0    5     3   len  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.crypto.CipherOutputStream this
         0: .line 176
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            ifnull 3
         1: .line 177
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.obuffer:[B
            invokevirtual java.io.OutputStream.write:([B)V
         2: .line 178
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         3: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.output:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
         4: .line 181
            return
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/crypto/CipherOutputStream;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.crypto.CipherOutputStream this
         0: .line 199
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.closed:Z
            ifeq 2
         1: .line 200
            return
         2: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield javax.crypto.CipherOutputStream.closed:Z
         3: .line 205
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.cipher:Ljavax/crypto/Cipher;
            invokevirtual javax.crypto.Cipher.doFinal:()[B
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         4: .line 206
            goto 7
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
         5: pop
         6: .line 207
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.CipherOutputStream.obuffer:[B
         7: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.crypto.CipherOutputStream.flush:()V
         8: .line 211
            goto 10
      StackMap locals:
      StackMap stack: java.io.IOException
         9: pop
        10: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.crypto.CipherOutputStream.out:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
        11: .line 213
            return
        end local 0 // javax.crypto.CipherOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljavax/crypto/CipherOutputStream;
      Exception table:
        from    to  target  type
           3     4       5  Class javax.crypto.IllegalBlockSizeException
           3     4       5  Class javax.crypto.BadPaddingException
           7     8       9  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
}
SourceFile: "CipherOutputStream.java"