Class RydeEncoder

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

    @NotThreadSafe
    public final class RydeEncoder
    extends java.io.FilterOutputStream
    Stream that performs the full RyDE encryption.

    The RyDE format has 2 files:

    • the "data" file, encoded in data -> tar -> PgpFile -> compression -> encryption
    • the signature of the resulting file

    Hence, the encoder needs to receive 2 OutputStreams - one for the data and one for the signature.

    Because of the external tar file encoding - the encoder must know the total length of the data from the start. This is a bit annoying, but necessary.

    • Field Summary

      • Fields inherited from class java.io.FilterOutputStream

        out
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void write​(byte[] b, int off, int len)
      Call the underlying 3 input write.
      • Methods inherited from class java.io.FilterOutputStream

        flush, write, write
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Call the underlying 3 input write.

        FilterInputStream implements the 3 input write using a for loop over the single-byte write. For efficiency reasons, we want it to use the 3 input write instead.

        Overrides:
        write in class java.io.FilterOutputStream
        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