Skills

Constant Time Analysis

Detects timing side-channel vulnerabilities in cryptographic code.

Install

npx skills add trailofbits/skills --skill constant-time-analysis -g -a claude-code -y
Repository
trailofbits/skills7.9k
Category
Security
Updated
7d ago
License
CC-BY-SA-4.0
Context cost
Mediumabout 3,000 tokens
Runs scripts
No, instructions only

What it does

Detects timing side-channel vulnerabilities in cryptographic code. Use when implementing or reviewing crypto code, encountering division on secrets, secret-dependent branches, or constant-time programming questions in C, C++, Go, Rust, Swift, Java, Kotlin, C#, PHP, JavaScript, TypeScript, Python, or Ruby.

Constant-Time Analysis

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.

When to Use

  • Implementing or reviewing a signature, encryption, KEM, or key derivation routine
  • Code applies / or % to a value derived from a key, plaintext, nonce, or token
  • The user mentions "constant-time", "timing attack", "side-channel", or "KyberSlash"
  • Reviewing functions named sign, verify, encrypt, decrypt, derive_key

When NOT to Use

  • Measuring timing variance on a running binary, use the constant-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.
  • Non-cryptographic code, or crypto code where every input is public
  • High-level API usage where a vetted library owns the constant-time guarantees
  • Cache and other microarchitectural side channels, the assembly view cannot see them

Language Routing

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.

GuideLanguages
references/compiled.mdC, C++, Go, Rust
references/swift.mdSwift
references/vm-compiled.mdJava, C#
references/kotlin.mdKotlin
references/php.mdPHP
references/javascript.mdJavaScript, TypeScript
references/python.mdPython
references/ruby.mdRuby

Running the Analyzer

Read the whole SKILL.md on GitHub

More in Security