wycheproof icon indicating copy to clipboard operation
wycheproof copied to clipboard

Source code for the test vector generation

Open bleichenbacher-daniel opened this issue 9 months ago • 2 comments

What happened to the release of the code for the test vector generation?

A release of the code for generating the test vectors has been discussed in every meeting I had with people involved in the project and each time the release was claimed to be imminent. Yet even after 2 years we don't have access to the code.

In many cases having the code would simplify the continuation of the project a lot easier. Here are a few examples where fixing an issue would have been trivial, but the lack of access to the code required unnecessary, extra work: https://github.com/C2SP/wycheproof/issues/100 https://github.com/C2SP/wycheproof/issues/101 https://github.com/C2SP/wycheproof/issues/123

Many of the tasks done now (e.g. changing the test vector format) are much simpler with my code. Additionally it would guarantee that schemas, documentation and test vectors match. A significant portion of the work I'm doing https://github.com/bleichenbacher-daniel/Rooterberg involves implementing the same thing a second time.

bleichenbacher-daniel avatar Mar 20 '25 09:03 bleichenbacher-daniel

I'm working on this

sirdarckcat avatar May 03 '25 06:05 sirdarckcat

Thanks a lot for doing this.

bleichenbacher-daniel avatar May 04 '25 20:05 bleichenbacher-daniel

I forgot to update this comment.

https://github.com/sirdarckcat/wycheproof/commit/a618662e01e6deb460948b96954a7f887492b3c8

I can just send that as a PR if you want?

sirdarckcat avatar Jul 09 '25 06:07 sirdarckcat

Per #149 the purpose of Wycheproof is to just dump test cases without caring about the generator code, however in my experience the code is important to understand the test cases and without it, it is very hard to use them.

For the sake of helping anyone that might need the code, I left it here: https://github.com/C2SP/wycheproof/commit/a618662e01e6deb460948b96954a7f887492b3c8

For anyone else finding this message in the future, you may be interested on the reimplementation of the Wycheproof project here from Daniel Bleichenbacher: https://github.com/bleichenbacher-daniel/Rooterberg - it's actively maintained and has new test vectors missing from Wycheproof.

sirdarckcat avatar Jul 15 '25 11:07 sirdarckcat

Wonderful, thank you! I rebased that commit on the latest Copybara export to avoid confusion, and tagged it google-wycheproof/v0.9 (based on https://github.com/C2SP/wycheproof/blob/google-wycheproof/v0.9/src/test_vector.py#L285-L288) to have a stable reference for it, and to avoid it being garbage collected by GitHub now that you deleted https://github.com/sirdarckcat/wycheproof.

FiloSottile avatar Jul 15 '25 12:07 FiloSottile

I'm reopening this issue, since it is very much unclear what caused the delay of the release. As a result I have replicated a major part of the test vector generation code. Hence the delay has caused a lot of harm. Being able to understand the reasons for the delay is essential to prevent further issues and duplication of work. It is essential for a potential reorganization of the project that allows to progress more productively.

bleichenbacher-daniel avatar Jul 19 '25 06:07 bleichenbacher-daniel

I think it was two reasons:

  • the code was not ready (license headers, quick double checking of the code) for release when the C2SP transfer discussions happened, so the maintainance of that code wasn't discussed.
  • the new maintainers of the project don't have any interest on the code, which means that there wasn't a clear plan on what to do with the code.

Preparing the code for release was easy, someone just had to do it, and I just did it. Pushing the code to a random fork/commit for archeological reasons is ultimately "less than ideal" but at least something.

sirdarckcat avatar Jul 19 '25 06:07 sirdarckcat

Thanks a lot for the response and thanks for the efforts helping out with the issue.

I think it was two reasons:

* the code was not ready (license headers, quick double checking of the code) for release when the C2SP transfer discussions happened, so the maintainance of that code wasn't discussed.

Thyla told me in April 2024 that all obstacles have been cleared that would prevent the release of the code. And of course the main issue was simply access to the code and not maintenance.

* the new maintainers of the project don't have any interest on the code, which means that there wasn't a clear plan on what to do with the code.

This contradicts for example https://github.com/C2SP/wycheproof/issues/113#issuecomment-2042278642 and essentially everything I have been told over the years. Hence it is important to discuss this issue out, since a project that is supposed to be a community project cannot function if it is harmed by misinformation.

Preparing the code for release was easy, someone just had to do it, and I just did it. Pushing the code to a random fork/commit for archeological reasons is ultimately "less than ideal" but at least something.

I don't have any issues with the place of the code. There are of course more important issues.

PS. Can someone please reopen this issue. Discussing major roadblocks as this one is important for the progress of the project.

bleichenbacher-daniel avatar Jul 21 '25 07:07 bleichenbacher-daniel

Friendly ping.

bleichenbacher-daniel avatar Sep 30 '25 05:09 bleichenbacher-daniel