Class ChunkedCipherOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    @Internal
    public abstract class ChunkedCipherOutputStream
    extends java.io.FilterOutputStream
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      javax.crypto.Cipher initCipherForBlock​(int block, boolean lastChunk)  
      void setNextRecordSize​(int recordSize, boolean isPlain)
      Some ciphers (actually just XOR) are based on the record size, which needs to be set before encryption
      void write​(byte[] b)  
      void write​(byte[] b, int off, int len)  
      void write​(int b)  
      void writePlain​(byte[] b, int off, int len)  
      • Methods inherited from class java.io.FilterOutputStream

        flush
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ChunkedCipherOutputStream

        public ChunkedCipherOutputStream​(DirectoryNode dir,
                                         int chunkSize)
                                  throws java.io.IOException,
                                         java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • ChunkedCipherOutputStream

        public ChunkedCipherOutputStream​(java.io.OutputStream stream,
                                         int chunkSize)
                                  throws java.io.IOException,
                                         java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
    • Method Detail

      • initCipherForBlock

        public final javax.crypto.Cipher initCipherForBlock​(int block,
                                                            boolean lastChunk)
                                                     throws java.io.IOException,
                                                            java.security.GeneralSecurityException
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • write

        public void write​(int b)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] b)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • writePlain

        public void writePlain​(byte[] b,
                               int off,
                               int len)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • setNextRecordSize

        public void setNextRecordSize​(int recordSize,
                                      boolean isPlain)
        Some ciphers (actually just XOR) are based on the record size, which needs to be set before encryption
        Parameters:
        recordSize - the size of the next record
        isPlain - true if the record is unencrypted