Debug low-level cryptography code
Cryptography engineer Filippo Valsorda's write-up on Claude Code debugging low-level crypto.
What they did
Filippo Valsorda ran Claude Code (Opus 4.1, no system prompt) on his new Go ML-DSA implementation. His prompt named the test command and code directory, described the failing symptom, and asked it to think hard. It read the code and traced the bug. It also tested a hypothesis with a small test of its own. He then repeated this on two earlier signing bugs, using a fresh session for each.
How it went
It found all three bugs in one shot without help. The Verify bug took minutes: high bits were taken twice. Its proposed fixes were mediocre, so Valsorda threw them away and rewrote them himself.
Worth knowing
Use well-scoped failing tests, start a fresh session for each independent bug, and treat the agent's output as a pointer to the bug, not a fix to merge.
Labels
It read the code and traced the bug.
Filippo Valsorda ran Claude Code (Opus 4.1, no system prompt) on his new Go ML-DSA implementation.
It read the code and traced the bug.
Its proposed fixes were mediocre, so Valsorda threw them away and rewrote them himself.
It read the code and traced the bug. It also tested a hypothesis with a small test of its own.
Cryptography engineer Filippo Valsorda's write-up on Claude Code debugging low-level crypto.
The “Material” label failed its quality check and is not used for selection.
Details
- Agents
- Claude Code
- Source
- Hacker News
- Source date
- Nov 1, 2025
- Accounts
- 1
- In registry since
- Oct 12, 2026