Problem
Currently, I'm reading the entire input file in memory, where it is then being encrypted before being written to disk. This uses a lot of memory and might even make it impossible to use the tool for certain tasks, e.g. encrypting a file larger than 50% of RAM.
Possible solutions
Check for compatible approaches that use either chunking (AES-256 is a block cipher, after all) or streaming.