Install any skill in seconds. Free to start, no credit card required.
Get Started Free →trailofbits/constant-time-analysis
Detects timing side-channel vulnerabilities in cryptographic code.
Passed 18 of 20 test cases with the skill, and 11 of 20 without it.
and 9 more in the full report
8 fixed12 passed either way2 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
In our Ruby on Rails application `session_verifier.rb`, static analysis flagged string comparison `==` on secret session tokens. Which standard Ruby OpenSSL method provides secure constant-time comparison?
| Checked | Without skill | With skill |
|---|---|---|
| Recommends OpenSSL.secure_compare for constant-time comparison in Ruby | Missed | Passed |
The instructions your model reads when the skill loads.
Compile the code, inspect the emitted assembly or bytecode for variable-time instructions, then decide which of the flagged operations actually touch secrets. The compilation step is mechanical; the triage step is the work.
/ or % to a value derived from a key, plaintext, nonce, or tokensign, verify, encrypt, decrypt, derive_keyconstant-time-testing skill from the testing-handbook-skills plugin, which covers dudect and statistical approaches and may not be installed. This skill inspects compiler output statically and never executes the code under test.Read the guide for the target language before interpreting any findings; each one lists that language's dangerous instructions and the idiomatic constant-time replacements.
| Guide | Languages |
|---|---|
| references/compiled.md | C, C++, Go, Rust |
| references/swift.md | Swift |
| references/vm-compiled.md | Java, C# |
| references/kotlin.md | Kotlin |
| references/php.md | PHP |
| references/javascript.md | JavaScript, TypeScript |
| references/python.md | Python |
| references/ruby.md | Ruby |
The analyzer takes one file and detects the language from its extension. Always pass --warnings:
uv run {baseDir}/ct_analyzer/analyzer.py --warnings <source_file>
test cases passed, vs 11 / 20 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.