This is to speed-up encryption/decryption of bigger files, since after some threshold we fallback to streamed emulated software AES-GCM which is extremely slow.
This is to reduce memory footprint during encryption/decryption as app tend to crash during multiple concurrent operations on bigger files.
This is also first step towards implementing encrypted video streaming.