-
Notifications
You must be signed in to change notification settings - Fork 16
Description
The test vectors contain a lot of fields that are freely generated by the creator. These degrees of freedom could be removed by defining a deterministic pseudo-random generator from which they should be derived. For example, I implemented a scheme in MLSpp where each test vector creates a seed value as Extract("", <type of test vector>), and then the fields in the test vector are populated by calling ExpandWithLabel from that seed.
Generating test vectors deterministically makes it easier to look at diffs between test vectors. In many cases, this will allow verification that two implementations generate the same test vectors, in addition to verifying a generate/verify round-trip. (The exception being cases where the client injects randomness, e.g., randomized signature schemes or reuse_guard.)