wycheproof

Validates cryptographic implementations against Wycheproof test vectors for known attacks and edge cases.

Updated Apr 5, 2026
One-click install
npx skills add https://github.com/marumo333/atrox --skill wycheproof-marumo333
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: wycheproof
Source: https://github.com/marumo333/atrox/tree/main/.claude/skills/trailofbits/plugins/testing-handbook-skills/skills/wycheproof
Command: npx skills add https://github.com/marumo333/atrox --skill wycheproof-marumo333

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Cryptographic implementations are notoriously difficult to get right, and small bugs can expose private keys, allow signature forgery, or create consensus problems. This Skill guides you through using the Wycheproof test vector collection to systematically validate crypto code against known attacks and edge cases. ## Core Features & Use Cases - Test Vector Integration: Add Wycheproof as a git submodule or fetch specific JSON test vectors for algorithms like AES-GCM, ECDSA, ECDH, RSA, and ChaCha20-Poly1305. - Testing Harness Patterns: Parse test vectors and write parameterized test harnesses in Python/pytest or JavaScript/Mocha that handle valid, invalid, and acceptable result types. - Vulnerability Detection: Catch signature malleability, invalid DER encoding, invalid curve attacks, padding oracles, and tag forgery, as demonstrated by real CVEs found in the elliptic npm package. - Use Case: You are auditing a JavaScript library's EdDSA implementation. Use this Skill to load ed25519_test.json, generate parameterized tests, and discover that the library accepts signatures with trailing zeros (signature malleability). ## Quick Start Ask the AI to set up Wycheproof test vectors for your AES-GCM implementation and write a pytest harness that validates both encryption and decryption against all test cases.

Frequently Asked Questions about wycheproof

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test a cryptographic implementation with Wycheproof test vectors?▼

Add Wycheproof as a git submodule or fetch specific JSON files from the testvectors_v1 folder, then parse the test groups and write parameterized tests. Each test vector has a result field (valid, invalid, acceptable) that determines the expected outcome.

What cryptographic algorithms does Wycheproof cover?▼

Wycheproof covers AES-GCM, AES-EAX, ChaCha20-Poly1305, ECDSA, EdDSA, RSA-PSS, RSA-PKCS1, ECDH, X25519, X448, HMAC, and HKDF. It supports curves including secp256k1, secp256r1, secp384r1, secp521r1, ed25519, and ed448.

What is the difference between testvectors and testvectors_v1 in Wycheproof?▼

Both folders contain similar test vector files, but testvectors_v1 includes more detailed information per test case. The v1 format is recommended for new integrations.

When should I not use Wycheproof for crypto testing?▼

Wycheproof does not cover timing side-channels, so use constant-time testing tools for that. It also only covers established algorithms, so use fuzzing to find new unknown bugs or to test custom experimental cryptography.

What vulnerabilities can Wycheproof test vectors detect?▼

Wycheproof detects signature malleability, invalid DER encoding acceptance, invalid curve attacks in ECDH, padding oracle issues in RSA-PKCS1, and authentication tag forgery in AEAD ciphers. It has found real CVEs in OpenJDK, Bouncy Castle, and the elliptic npm package.

How do I keep Wycheproof test vectors up to date in CI?▼

Use a git submodule and update it in CI before running tests, or run a fetch script that downloads the latest JSON files from the repository. Scheduled weekly or monthly updates help catch newly added test vectors.