in encryption/src/main/java/org/apache/solr/encryption/crypto/EncryptingOutputStream.java [166:186]
public void write(byte[] b, int offset, int length) throws IOException {
if (offset < 0 || length < 0 || offset + length > b.length) {
throw new IllegalArgumentException("Invalid write buffer parameters (offset=" + offset
+ ", length=" + length
+ ", arrayLength=" + b.length + ")");
}
while (length > 0) {
int remaining = inBuffer.length - inSize;
if (length < remaining) {
System.arraycopy(b, offset, inBuffer, inSize, length);
inSize += length;
break;
} else {
System.arraycopy(b, offset, inBuffer, inSize, remaining);
inSize += remaining;
offset += remaining;
length -= remaining;
encryptBufferAndWrite();
}
}
}