Repository files navigation secwasm Project - Oct 2023
Implementation of a security-typesystem following this paper
Security guarantee: termination-insensitive non-interference
Running nix-shell will enter an environment with the required dependencies.
Otherwise, the following manual setup is possible
Ocaml version 5, dune version 3.10
Webassembly binary toolkit: wabt, provides wat2wasm and wasm2wat among others
wasmtime
Nodejs: version 18 or 19
perf-tool for benchmarking, debian package name: linux-perf
Install opam dependencies: cd src/ opam pin add -y . opam install --deps-only secwasm
Run the project with the Makefile in src/
Ocaml formatting tool: opam pin add ocamlformat 0.26.0 opam install ocamlformat
Pre-commit hook to ensure formatting: pip install pre-commit then in the root repo: pre-commit install
See the Makefile for examples:
make test to run the testsuite
make coverage to generate a report of the test coverage
make run to run the static typecheck on an example module
make bubblesort-benchmark for benchmarking the performance penalty of the dynamic checks
make seqmem-benchmark for benchmarking the performance penalty of the dynamic checks
About
An implementation of the SecWasm paper.
Resources
Stars
Watchers
Forks
Languages
OCaml
72.2%
Jupyter Notebook
17.7%
WebAssembly
4.0%
JavaScript
3.2%
Makefile
1.7%
Shell
0.7%
Other
0.5%
You can’t perform that action at this time.