Go to file
Jack Grigg 4505cb8438 Improve the ZIP 32 arbitrary key derivation test vectors
When using them, I forgot that `bytes(range(32))` doesn't generate an
all-zeroes seed of length 32, so I was using the wrong seed with the
test vectors and they were failing. We now embed that seed in the test
vectors, along with the context string (to make it clear that there is
no trailing null byte) and the IKM (which is what clued me into the seed
being wrong).
2024-11-13 07:14:35 +00:00
.github/workflows
test-vectors Improve the ZIP 32 arbitrary key derivation test vectors 2024-11-13 07:14:35 +00:00
zcash_test_vectors Improve the ZIP 32 arbitrary key derivation test vectors 2024-11-13 07:14:35 +00:00
.gitignore
COPYING.md
LICENSE-APACHE
LICENSE-MIT
README.md
orchard_vesta.py
poetry.lock
pyproject.toml Add test vectors for ZIP 32 arbitrary key derivation 2024-11-02 05:15:28 +00:00
regenerate.sh Add test vectors for ZIP 32 arbitrary key derivation 2024-11-02 05:15:28 +00:00

README.md

Zcash Python test vectors

Code to generate test vectors for various parts of Zcash.

The generated test vectors are checked into the repository:

  • test-vectors/json/: JSON format.
  • test-vectors/rust/: Rust format, suitable for copying into a Rust library or application to use from #[cfg(test)] code.
  • test-vectors/zcash/: Bitcoin-flavoured JSON format (where 256-bit values are encoded as byte-reversed hex strings), for use in zcashd unit tests.

To generate the test vectors yourself (for example, to generate a larger set after adjusting:

  • Install poetry.
  • poetry install
  • poetry run SCRIPT_NAME [-t json|rust|zcash]
    • SCRIPT_NAME is one of the scripts listed in pyproject.toml.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.