Web49
Web49 copied to clipboard
libsodium tests/benchmarks are segfaulting/producing wrong results
Hi!
I'd like to add web49
to the lists of runtimes libsodium can support for testing wasm32-wasi
.
web49
currently doesn't implement wasi_random_get
, which I added a simple implementation for.
But in benchmark mode, it's not even required by most tests.
However, many tests, when run under web49
, either cause the interpreter to segfault, or return incorrect values.
For example scalarmult.wasm
segfaults, and xchacha20.wasm
trips on many assertions due to incorrect computations.
The benchmark files used for the most recent round of the libsodium benchmark can be downloaded here.
These benchmarks, or the test files that are faster to execute and still trigger the issues with web49
, can be created simply by running the zig build -Drelease-fast -Dtarget=wasm32-wasi
command in the root directory of the libsodium source code.
zig by default uses multiple values, which has a few bugs right now.
Currently working on Multiple Values support, it kinda requires a bit of a big refactor.
Instead of immediately crashing auth.wasm
now crashes after 500ms, Progress!
Ill comment more when they all or almost all work.