I need to build a web application that encrypts large files (10GB+) using AES encryption. Given the size of these files, they cannot be loaded entirely into memory.
I want to process them as streams to handle encryption. However, the native crypto APIs provided by Javascript currently do not support stream processing.
Additionally, it’s recommended to avoid web-assembly based crypto implementations due to potential side-channel attacks and their inability to take advantage of AES hardware acceleration.
Given these constrains, how can I encrypt large file streams using AES encryption in the browser?