The WASI Core version of WASI-Crypto explicitly supports in-place encryption and decryption.
This is crucial not only for performance, but also for keeping memory usage under control. In environments where memory is limited or billed, using the Component Model version could double memory usage, which may be a deal-breaker.
WASI streams would not solve the problem. Besides introducing significant complexity, they cannot be rewound, so they would not work for constructions that require multiple passes over the data, such as AES-SIV.
The following open issues may help unblock this:
The WASI Core version of WASI-Crypto explicitly supports in-place encryption and decryption.
This is crucial not only for performance, but also for keeping memory usage under control. In environments where memory is limited or billed, using the Component Model version could double memory usage, which may be a deal-breaker.
WASI streams would not solve the problem. Besides introducing significant complexity, they cannot be rewound, so they would not work for constructions that require multiple passes over the data, such as AES-SIV.
The following open issues may help unblock this: