Skip to content

Initial cargo checkct harness/driver - #732

Merged
tarcieri merged 1 commit into
masterfrom
cargo-checkct
Oct 23, 2026
Merged

tarcieri merged 1 commit into
masterfrom
cargo-checkct

Conversation

@tarcieri

@tarcieri tarcieri commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Adds some initial testing of operations intended to be constant-time using cargo checkct, a wrapper for BINSEC that is able to static analysis looking for constant-time issues.

Namely this checks that i2osp_zeroizing avoids secret-dependent control flow and memory accesses for small fixed-width encoding, padding, and truncation cases.

We currently check RISCV32, Thumb-2, and x86-64, since these are what are supported by cargo checkct. Unlike other places we've deployed this, we can't test Thumb-1 due to use of Arc.

These tests have been configured to run in CI to detect regressions.

See also:

@tarcieri
tarcieri force-pushed the cargo-checkct branch 3 times, most recently from 10230af to 58fbd1f Compare October 23, 2026 13:26
Adds some initial testing of operations intended to be constant-time
using `cargo checkct`, a wrapper for BINSEC that is able to static
analysis looking for constant-time issues.

Namely this checks that `i2osp_zeroizing` avoids secret-dependent
control flow and memory accesses for small fixed-width encoding,
padding, and truncation cases.

We currently check RISCV32, Thumb-2, and x86-64, since these are what
are supported by `cargo checkct`. Unlike other places we've deployed
this, we can't test Thumb-1 due to use of `Arc`.

These tests have been configured to run in CI to detect regressions.
@tarcieri
tarcieri merged commit 681ed56 into master Oct 23, 2026
13 checks passed
@tarcieri
tarcieri deleted the cargo-checkct branch October 23, 2026 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant