Package com.itextpdf.kernel.crypto
Class OutputStreamAesGcmEncryption
- java.lang.Object
-
- java.io.OutputStream
-
- com.itextpdf.kernel.crypto.OutputStreamEncryption
-
- com.itextpdf.kernel.crypto.OutputStreamAesGcmEncryption
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class OutputStreamAesGcmEncryption extends OutputStreamEncryption
An output stream accepts output bytes and sends them to underlyingOutputStreamEncryption
instance.
-
-
Field Summary
Fields Modifier and Type Field Description private AESGCMCipher
cipher
private boolean
finished
private static java.security.SecureRandom
rng
-
Fields inherited from class com.itextpdf.kernel.crypto.OutputStreamEncryption
out
-
-
Constructor Summary
Constructors Constructor Description OutputStreamAesGcmEncryption(java.io.OutputStream out, byte[] key, byte[] noncePart)
Creates a new instance ofOutputStreamAesGcmEncryption
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
finish()
Finishes and dispose all resources used for writing in encrypted stream.void
write(byte[] b, int off, int len)
Writeslen
bytes from the specified byte array starting at offsetoff
to this output stream.-
Methods inherited from class com.itextpdf.kernel.crypto.OutputStreamEncryption
close, flush, write, write
-
-
-
-
Field Detail
-
cipher
private final AESGCMCipher cipher
-
finished
private boolean finished
-
rng
private static final java.security.SecureRandom rng
-
-
Constructor Detail
-
OutputStreamAesGcmEncryption
public OutputStreamAesGcmEncryption(java.io.OutputStream out, byte[] key, byte[] noncePart)
Creates a new instance ofOutputStreamAesGcmEncryption
.- Parameters:
out
- theOutputStream
instance to be used as the destination for the encrypted contentkey
- the byte array containing the key for encryptionnoncePart
- a 7 byte nonce
-
-
Method Detail
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException
Writeslen
bytes from the specified byte array starting at offsetoff
to this output stream. The general contract forwrite(b, off, len)
is that some bytes in the arrayb
are written to the output stream in order; elementb[off]
is the first byte written andb[off+len-1]
is the last byte written by this operation.The
write
method ofOutputStream
calls the write method of one argument on each of the bytes to be written out. Subclasses are encouraged to override this method and provide a more efficient implementation.If
off
is negative, orlen
is negative, oroff+len
is greater than the length of the arrayb
, then an IndexOutOfBoundsException is thrown.- Specified by:
write
in classOutputStreamEncryption
- Parameters:
b
- the dataoff
- the start offset in the datalen
- the number of bytes to write- Throws:
java.io.IOException
- if an I/O error occurs. In particular, anIOException
is thrown if the output stream is closed
-
finish
public void finish()
Finishes and dispose all resources used for writing in encrypted stream. Input data that may have been buffered during a previous update operation is processed, with padding (if requested) being applied and authentication tag is appended.- Specified by:
finish
in classOutputStreamEncryption
-
-