in src/main/java/org/apache/commons/crypto/stream/CryptoOutputStream.java [376:396]
public void write(final byte[] array, int off, int len) throws IOException {
checkStream();
Objects.requireNonNull(array, "array");
final int arrayLength = array.length;
if (off < 0 || len < 0 || off > arrayLength || len > arrayLength - off) {
throw new IndexOutOfBoundsException();
}
while (len > 0) {
final int remaining = inBuffer.remaining();
if (len < remaining) {
inBuffer.put(array, off, len);
len = 0;
} else {
inBuffer.put(array, off, remaining);
off += remaining;
len -= remaining;
encrypt();
}
}
}