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 underlyingOutputStreamEncryptioninstance.
-
-
Field Summary
Fields Modifier and Type Field Description private AESGCMCiphercipherprivate booleanfinishedprivate static java.security.SecureRandomrng-
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 voidfinish()Finishes and dispose all resources used for writing in encrypted stream.voidwrite(byte[] b, int off, int len)Writeslenbytes from the specified byte array starting at offsetoffto 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- theOutputStreaminstance 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.IOExceptionWriteslenbytes from the specified byte array starting at offsetoffto this output stream. The general contract forwrite(b, off, len)is that some bytes in the arraybare 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
writemethod ofOutputStreamcalls 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
offis negative, orlenis negative, oroff+lenis greater than the length of the arrayb, then an IndexOutOfBoundsException is thrown.- Specified by:
writein 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, anIOExceptionis 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:
finishin classOutputStreamEncryption
-
-