wycheproof

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

Updated Mar 22, 2026
One-click install
npx skills add https://github.com/TECH-HY/SKILLS --skill wycheproof-tech-hy
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: wycheproof
Source: https://github.com/TECH-HY/SKILLS/tree/main/skills/wycheproof
Command: npx skills add https://github.com/TECH-HY/SKILLS --skill wycheproof-tech-hy

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Cryptographic implementations are notoriously difficult to get right, and subtle bugs in signature validation, encoding, or padding can expose private keys or enable forgery. This Skill guides you through testing crypto code against the Wycheproof test vector collection to catch known vulnerabilities before they ship. ## Core Features & Use Cases - Test Vector Integration: Add Wycheproof as a git submodule or fetch specific JSON test files, then parse test groups filtered by key size, IV size, or curve. - Testing Harness Patterns: Ready-to-adapt pytest and Mocha examples that handle valid, invalid, and acceptable result flags for algorithms like AES-GCM, ECDSA, ECDH, EdDSA, and RSA. - 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 maintain a JavaScript library implementing EdDSA signatures. Use this Skill to load ed25519_test.json, generate parameterized tests, and discover that your implementation accepts signatures with trailing zeros. ## 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 my crypto implementation with Wycheproof test vectors?

Add the Wycheproof repository as a git submodule or fetch specific JSON files from testvectors_v1. Parse the testGroups, filter by your implementation's parameters like key size, then write parameterized tests that verify valid cases pass and invalid cases are rejected.

What algorithms does Wycheproof cover?

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

What is the difference between testvectors and testvectors_v1?

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

What do valid, invalid, and acceptable results mean in Wycheproof?

Valid means the test must succeed, invalid means it must be rejected, and acceptable means the implementation may pass it but the input has non-ideal attributes worth investigating. Test all three result types, not just valid cases.

When should I not use Wycheproof for crypto testing?

Wycheproof does not cover timing side-channels, unknown new bugs, or custom experimental algorithms. Use constant-time testing tools for side-channels and fuzzing tools like cryptofuzz to discover novel edge cases.