
Проект Wycheproof проверяет криптографические библиотеки на известные атаки.
Project Wycheproof — это управляемый сообществом репозиторий тестовых векторов, которые могут использоваться разработчиками криптографических библиотек для проверки на известные атаки, несоответствия спецификациям и другие различные ошибки реализации.
Тестовые векторы поддерживаются в виде данных JSON, с сопутствующими файлами JSON-схем, которые документируют структуру данных тестовых векторов.
Вам может быть полезно изучить, как другие проекты, такие как pyca/cryptography, интегрировали тестовые векторы Wycheproof.
Project Wycheproof содержит тестовые векторы для самых популярных криптографических алгоритмов, включая
Тестовые векторы позволяют определить, уязвима ли библиотека к множеству атак, включая
Мы приветствуем вклад новых данных тестовых векторов и алгоритмов.
Если вы хотите внести свой вклад, пожалуйста, прочитайте CONTRIBUTING и отправьте нам pull request'ы. Вы также можете сообщать об ошибках или запрашивать новые тесты через GitHub issues.
Мы находимся в процессе возрождения разработки и поддержки Project Wycheproof как проекта C2SP с обновлённым фокусом на данные тестовых векторов.
Наш ближайший приоритет — добавление дополнительного покрытия алгоритмов и тестовых случаев в данные тестовых векторов.
Project Wycheproof назван в честь горы Уайчпруф, самой маленькой горы в мире. Основной мотивацией проекта на момент его создания было иметь достижимую цель. Чем меньше гора, тем выше вероятность, что её удастся покорить.
Тестовые векторы Wycheproof в той или иной форме используются рядом важных криптографических проектов и библиотек. В произвольном порядке к ним относятся:
Если ваш проект использует тестовые векторы из Wycheproof, не стесняйтесь открыть PR, чтобы добавить его в список выше!
См. doc/bugs.md для некоторых заметных исторических ошибок, найденных с использованием тестовых стендов Wycheproof или данных тестовых векторов.
testvectors/?Недавно мы объединили директории testvectors/ и testvectors_v1/ в
единую унифицированную директорию с одним согласованным подходом к схемам.
Пользователи, которым нужны оригинальные ("v0") данные тестовых векторов, могут клонировать этот репозиторий из
тега wycheproof-v0-vectors, но им рекомендуется рассмотреть обновление до
использования testvectors_v1/, чтобы воспользоваться будущими обновлениями. Если есть функции/покрытие тестами
из testvectors/, отсутствующие в testvectors_v1/, или есть другая
проблема, блокирующая ваше обновление, пожалуйста, откройте issue с описанием ваших потребностей.
Доступна некоторая устаревшая документация по файлам, форматам и типам, но она не обязательно синхронизирована с текущим состоянием тестовых векторов.
В целом, предпочитайте обращаться к файлам схем, поскольку они проверяются в CI, чтобы убедиться, что содержимое файлов векторов соответствует заявленной схеме.
Исторически Wycheproof также включал тестовые стенды (например, для реализаций криптографии на Java и
Javascript), которые тестировали различные атаки
непосредственно против реализаций. После перехода к поддержке сообществом
эти стенды [были удалены][harness-rm] (но всё ещё существуют в истории git
для заинтересованных лиц на [cd27d64]). Наш текущий фокус —
на независимых от реализации тестовых векторах.