Kani
s2n-quic
uses the Kani Rust Verifier tool for verifying properties throughout various places in the codebase. The Kani test harnesses are written using bolero, which is also capable of running them as concrete tests.
Getting started
First, you will need make sure you install Rust
and Kani
on your system.
Install Rust
The easiest way to install Rust is via rustup. Otherwise, check your system's package manager for recommended installation methods.
Install Kani
Kani is installed with cargo
:
$ cargo install kani-verifier
$ cargo-kani setup
Running Kani proofs
After installing Rust
and Kani
, you can run the s2n-quic
proof harnesses. These are currently all located in the s2n-quic-core
crate:
$ cd quic/s2n-quic-core
$ cargo kani --tests
Listing Kani proofs
You can find all of the kani harnesses by searching for kani::proof
$ cd quic/s2n-quic-core
$ grep -Rn 'kani::proof' .
< LIST OF LOCATIONS WITH KANI PROOFS >