TMP_ALLOC(outbuf, block_size * 2);
uint8_t i = 0;
- memcpy(buffer, iv, block_size);
- memcpy(buffer + block_size, src,
- length < block_size ? length : block_size);
+ memcpy(buffer + block_size, iv, block_size);
while (length)
{
+ memcpy(buffer, buffer + block_size, block_size);
+ memcpy(buffer + block_size, src,
+ length < block_size ? length : block_size);
+
for (i = 0; i < length && i < block_size; i++)
f(ctx, block_size, outbuf + i, buffer + i);
src += i;
dst += i;
- memcpy(buffer, buffer + block_size, block_size);
- memcpy(buffer + block_size, src,
- length < block_size ? length : block_size);
-
}
memcpy(iv, buffer + i, block_size);