
Le projet Wycheproof teste les bibliothèques cryptographiques contre des attaques connues.
Le projet Wycheproof est un référentiel géré par la communauté de vecteurs de test que les développeurs de bibliothèques cryptographiques peuvent utiliser pour tester leurs implémentations contre des attaques connues, des incohérences de spécification et divers autres bogues d'implémentation.
Les vecteurs de test sont maintenus sous forme de données JSON de vecteurs de test, accompagnées de fichiers schéma JSON qui documentent la structure des données des vecteurs de test.
Il peut être utile d'examiner comment d'autres projets comme pyca/cryptography ont intégré les vecteurs de test de Wycheproof.
Le projet Wycheproof fournit des vecteurs de test pour les algorithmes cryptographiques les plus populaires, notamment
Les vecteurs de test permettent de détecter si une bibliothèque est vulnérable à de nombreuses attaques, notamment
Nous encourageons la contribution de nouvelles données de vecteurs de test et de nouveaux algorithmes.
Si vous souhaitez contribuer, veuillez lire CONTRIBUTING et nous envoyer des pull requests. Vous pouvez également signaler des bogues ou demander de nouveaux tests via les issues GitHub.
Nous sommes en train de redynamiser le développement et la maintenance du projet Wycheproof en tant que projet C2SP, avec un accent renouvelé sur les données des vecteurs de test. Nos priorités immédiates sont :
Le projet Wycheproof tire son nom du mont Wycheproof, la plus petite montagne du monde. La principale motivation du projet à sa création était de se fixer un objectif réalisable. Plus la montagne est petite, plus il est probable de pouvoir la gravir.
Les vecteurs de test de Wycheproof sont utilisés sous une forme ou une autre par un certain nombre de projets et bibliothèques cryptographiques importants. Sans ordre particulier, on trouve notamment :
Si votre projet utilise des vecteurs de test de Wycheproof, n'hésitez pas à ouvrir une PR pour l'ajouter à la liste ci-dessus !
Consultez doc/bugs.md pour découvrir quelques bogues historiques notables découverts à l'aide des harnais de test de Wycheproof ou des données de vecteurs de test.
testvectors/ ?Nous avons récemment fusionné les répertoires testvectors/ et testvectors_v1/ en un répertoire unique et unifié, avec une approche uniforme des schémas.
Les utilisateurs ayant besoin des données de vecteurs de test d'origine (« v0 ») peuvent cloner ce dépôt à partir de l'étiquette wycheproof-v0-vectors, mais sont encouragés à envisager une mise à jour vers testvectors_v1/ pour bénéficier des évolutions futures. Si certaines fonctionnalités/couvertures de test de testvectors/ sont absentes de testvectors_v1/, ou si un autre problème bloque votre mise à jour, veuillez ouvrir une issue décrivant vos besoins.
Au moment de la rédaction de ce document, les fichiers testvectors_v1 suivants sont dépourvus de schémas :
testvectors_v1/aes_ff1_base*_test.jsontestvectors_v1/aes_ff1_radix*_test.jsontestvectors_v1/ecdsa_secp256k1_sha256_bitcoin_test.jsontestvectors_v1/pbes2_hmacsha*_aes_*_test.jsontestvectors_v1/pbkdf2_hmacsha*_test.jsontestvectors_v1/rsa_pss_*_sha*_mgf*_params_test.jsontestvectors_v1/rsa_pss_misc_params_test.jsonDes contributions de schémas pour les vecteurs ci-dessus seraient les bienvenues.