
Projekt Wycheproof testet Kryptobibliotheken gegen bekannte Angriffe.
Project Wycheproof ist ein von der Community verwaltetes Repository mit Testvektoren, die von Entwicklern von Kryptografiebibliotheken genutzt werden können, um gegen bekannte Angriffe, Spezifikationsinkonsistenzen und andere Implementierungsfehler zu testen.
Testvektoren werden als JSON-Testvektordaten mit begleitenden JSON-Schema-Dateien gepflegt, die die Struktur der Testvektordaten dokumentieren.
Es kann hilfreich sein zu untersuchen, wie andere Projekte wie pyca/cryptography Wycheproofs Testvektoren integriert haben.
Project Wycheproof hat Testvektoren für die gängigsten Kryptoalgorithmen, darunter
Die Testvektoren erkennen, ob eine Bibliothek anfällig für viele Angriffe ist, darunter
Wir freuen uns über Beiträge neuer Testvektordaten und Algorithmen.
Wenn Sie mitwirken möchten, lesen Sie bitte CONTRIBUTING und senden Sie uns Pull-Requests. Sie können auch Fehler melden oder neue Tests als GitHub Issues anfordern.
Wir sind dabei, die Entwicklung und Wartung von Project Wycheproof als C2SP-Projekt wiederzubeleben, mit einem erneuten Fokus auf die Testvektordaten. Unsere unmittelbaren Prioritäten sind:
Project Wycheproof ist nach dem Mount Wycheproof benannt, dem kleinsten Berg der Welt. Die Hauptmotivation für das Projekt zum Zeitpunkt seiner Erstellung war es, ein erreichbares Ziel zu haben. Je kleiner der Berg, desto wahrscheinlicher ist es, ihn besteigen zu können.
Wycheproof-Testvektoren werden in irgendeiner Form von einer Reihe wichtiger Kryptografieprojekte und -bibliotheken verwendet. In keiner bestimmten Reihenfolge umfassen diese:
Falls Ihr Projekt Testvektoren von Wycheproof verwendet, können Sie gerne einen PR eröffnen, um es zur obigen Liste hinzuzufügen!
Siehe doc/bugs.md für einige bemerkenswerte historische Fehler, die mit Wycheproofs Test-Harnesses oder Testvektordaten gefunden wurden.
testvectors/-Verzeichnis?Wir haben kürzlich die Verzeichnisse testvectors/ und testvectors_v1/ zu einem einzigen vereinheitlichten Verzeichnis mit einem einheitlichen Schema-Ansatz zusammengeführt.
Benutzer, die die ursprünglichen ("v0") Testvektordaten benötigen, können dieses Repository vom wycheproof-v0-vectors Tag klonen, werden aber ermutigt, auf die Verwendung von testvectors_v1/ umzusteigen, um von zukünftigen Aktualisierungen zu profitieren. Falls Funktionen/Testabdeckungen aus testvectors/ in testvectors_v1/ fehlen oder ein anderes Problem Ihre Aktualisierung blockiert, eröffnen Sie bitte ein Issue, das Ihre Anforderungen beschreibt.
Zum Zeitpunkt der Erstellung dieses Dokuments fehlen den folgenden testvectors_v1-Dateien Schemas:
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.jsonBeiträge von Schemas für die obigen Vektoren wären sehr willkommen.
Einige ältere Dokumentationen zu Dateien, Formaten und Typen sind verfügbar, aber nicht unbedingt auf dem aktuellen Stand der Testvektoren.
Im Allgemeinen ist es vorzuziehen, auf die Schema-Dateien zu verweisen, da diese in CI getestet werden, um sicherzustellen, dass die Vektordateiinhalte mit ihrem angegebenen Schema übereinstimmen.