package freenet.crypt;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
public class RandomShortWriteOutputStream extends FilterOutputStream {
private final Random random;
public RandomShortWriteOutputStream(OutputStream os, Random random) {
super(os);
this.random = random;
}
@Override
public void write(int b) throws IOException {
out.write(b);
}
@Override
public void write(byte[] buf) throws IOException {
write(buf, 0, buf.length);
}
@Override
public void write(byte[] buf, int offset, int length) throws IOException {
if(length > 2 && random.nextBoolean()) {
int split = random.nextInt(length);
out.write(buf, offset, split);
out.write(buf, offset+split, length-split);
} else {
out.write(buf, offset, length);
}
}
}