net.i2p.crypto
Class AESOutputStream
java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
net.i2p.crypto.AESOutputStream
- public class AESOutputStream
- extends java.io.FilterOutputStream
This writes everything as CBC with PKCS#5 padding, but each block is padded
so as soon as a block is received it can be decrypted (rather than wait for
an arbitrary number of blocks to arrive). That means that each block sent
will contain exactly one padding byte (unless it was flushed with
numBytes % (BLOCK_SIZE-1) != 0, in which case that last block will be padded
with up to 15 bytes). So we have an expansion factor of 6.25%. c'est la vie
Fields inherited from class java.io.FilterOutputStream |
out |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
EXPANSION_FACTOR
public static final float EXPANSION_FACTOR
- See Also:
- Constant Field Values
AESOutputStream
public AESOutputStream(I2PAppContext context,
java.io.OutputStream source,
SessionKey key,
byte[] iv)
write
public void write(int val)
throws java.io.IOException
- Throws:
java.io.IOException
write
public void write(byte[] src)
throws java.io.IOException
- Throws:
java.io.IOException
write
public void write(byte[] src,
int off,
int len)
throws java.io.IOException
- Throws:
java.io.IOException
close
public void close()
throws java.io.IOException
- Throws:
java.io.IOException
flush
public void flush()
throws java.io.IOException
- Throws:
java.io.IOException