Package org.apache.poi.poifs.crypt
Class ChunkedCipherOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- org.apache.poi.poifs.crypt.ChunkedCipherOutputStream
-
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
@Internal public abstract class ChunkedCipherOutputStream extends FilterOutputStream
-
-
Constructor Summary
Constructors Constructor Description ChunkedCipherOutputStream(OutputStream stream, int chunkSize)
ChunkedCipherOutputStream(DirectoryNode dir, int chunkSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
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 encryptionvoid
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
-
-
-
-
Constructor Detail
-
ChunkedCipherOutputStream
public ChunkedCipherOutputStream(DirectoryNode dir, int chunkSize) throws IOException, GeneralSecurityException
- Throws:
IOException
GeneralSecurityException
-
ChunkedCipherOutputStream
public ChunkedCipherOutputStream(OutputStream stream, int chunkSize) throws IOException, GeneralSecurityException
- Throws:
IOException
GeneralSecurityException
-
-
Method Detail
-
initCipherForBlock
public final Cipher initCipherForBlock(int block, boolean lastChunk) throws IOException, GeneralSecurityException
- Throws:
IOException
GeneralSecurityException
-
write
public void write(int b) throws IOException
- Overrides:
write
in classFilterOutputStream
- Throws:
IOException
-
write
public void write(byte[] b) throws IOException
- Overrides:
write
in classFilterOutputStream
- Throws:
IOException
-
write
public void write(byte[] b, int off, int len) throws IOException
- Overrides:
write
in classFilterOutputStream
- Throws:
IOException
-
writePlain
public void writePlain(byte[] b, int off, int len) throws IOException
- Throws:
IOException
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classFilterOutputStream
- Throws:
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 recordisPlain
-true
if the record is unencrypted
-
-