Commit Graph

117 Commits

Author SHA1 Message Date
Jack Grigg a44f9f6c90
Fix chunk() output when given zero-length data 2018-08-23 14:25:41 +01:00
Simon 60db123206
Implement ZIP 243 test vectors.
Co-authored-by: Jack Grigg <jack@z.cash>
2018-08-23 14:23:08 +01:00
str4d 4e8e7425a2
Merge pull request #5 from str4d/zip-143
ZIP 143 test vectors
2018-08-22 20:22:40 +01:00
Jack Grigg 17d146b5a9
Refactor Rust output rendering to support reformatting
Used to convert a -1 for JSON to Option::None in Rust
2018-08-21 20:13:11 +01:00
Jack Grigg a9676cc9b4
Render Vec<u8> data correctly 2018-08-21 19:44:02 +01:00
Jack Grigg af98406307
Use snake_case for ZIP 143 test vector part names 2018-08-21 19:37:16 +01:00
Jack Grigg acdfe06c87
Implement CompactSize helper 2018-08-20 12:26:48 +01:00
Jack Grigg 07b7a6e8d8
Don't reverse 32-byte transactions in Zcash output 2018-08-20 12:26:48 +01:00
Jack Grigg 9448eeeee5
Implement JoinSplits in ZIP 143 test vectors 2018-08-20 12:26:48 +01:00
Ariel Gabizon 704a2ac14d
Implement ZIP 143 test vector generation
No support for JoinSplits yet.

Co-authored-by: Jack Grigg <jack@z.cash>
2018-08-20 12:26:43 +01:00
Jack Grigg fb4e0d6efe
Implement helper class for generating random values 2018-08-20 12:04:03 +01:00
Daira Hopwood 07dc43fd90 cm -> cmu
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-08-03 15:41:32 +01:00
Daira Hopwood 726688e6cc
Merge pull request #7 from daira/daira-zip32
Implement ZIP 32
2018-08-03 14:29:12 +01:00
Daira Hopwood 0fa7ce1127 Remove unused beos2bsp, and add a test assertion comparing leos2ip with lebs2ip o leos2bsp.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-08-03 14:05:42 +01:00
Daira Hopwood 8a6331e0a6 Add FF1 test vectors matching @str4d's Rust implementation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-08-03 14:03:51 +01:00
Daira Hopwood d7228cc68f Correct the encoding of depth.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-31 19:22:25 +01:00
Daira Hopwood 45a21dc05c Rust identifiers must be lowercase.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-31 19:18:34 +01:00
Daira Hopwood 2a6b7c7733 Don't recompute len(tweak).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-31 19:14:38 +01:00
Daira Hopwood 7c392675b8 Add ZIP 32 implementation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
Daira Hopwood c67d4b1fc2 Add FF1 implementation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
Daira Hopwood f024c7dd8f Extract some SpendingKey methods into mixins that will be used by ZIP 32 classes.
Also use hex, not octal byte constants.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
Daira Hopwood 61f7f70e7a Add diversify_hash function rather than repeating the personalization.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
Daira Hopwood 5c00456ae5 Add more conversion utility functions.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
Daira Hopwood bfcc98b327 Add a '-t json' option that gives JSON output without reversing 32-byte test vectors.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
Daira Hopwood 5394ee1a15 Style nit: don't use list comprehensions for side-effecting code.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
Daira Hopwood 3dfe532bac Support printing test vectors of Option type (needed for diversifiers).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
Daira Hopwood c8036959ad Add assertions that we are running under Python 3.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-25 01:16:22 +01:00
str4d cbdb16ed55
Merge pull request #6 from daira/daira-misc-improvements
Additions to .gitignore; rename CRS to URS; add test vectors for Pedersen generators
2018-07-25 00:44:25 +02:00
Daira Hopwood 013efd4c87 Add test vectors for the first 4 Pedersen hash generators.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-03 15:04:41 +01:00
Daira Hopwood 4806d8494b Rename CRS to URS, matching version beta-21 of Sapling spec.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-03 15:04:41 +01:00
Daira Hopwood 3aa38fb3c9 Avoid shadowing a variable name.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-03 15:04:41 +01:00
Daira Hopwood 64664bc614 Additions to .gitignore.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-07-03 15:04:41 +01:00
str4d 0e854b1ddd
Merge pull request #4 from str4d/json-output
Implement Zcash test vector output format
2018-06-13 23:09:49 +12:00
Jack Grigg dd66ed8fec
Explicitly make the JSON output Bitcoin-flavoured (32-byte values reversed)
Also renames the 'json' output type to 'zcash' to make it more obvious.
2018-06-13 11:48:17 +12:00
Jack Grigg 145fe37af5
Implement JSON output 2018-06-05 20:36:37 +12:00
Jack Grigg 68263af2b5
Extract sapling_key_components Rust rendering 2018-06-05 17:30:16 +12:00
Jack Grigg d5d7d70a65
Extract sapling_signatures Rust rendering 2018-06-05 17:12:24 +12:00
Jack Grigg 9f4a41dcf3
Extract sapling_generators Rust rendering 2018-06-05 16:46:08 +12:00
Jack Grigg 7e37b8cc24
Move chunk() into tv_output module 2018-06-05 16:10:43 +12:00
str4d 9edd16e17a
Merge pull request #2 from daira/refactor-field-errors
Refactor error handling
2018-06-05 16:06:47 +12:00
str4d 41d250ed0c
Merge pull request #1 from str4d/to_scalar
Implement ToScalar from spec, and small refactor to match spec more closely
2018-06-05 09:05:46 +12:00
Daira Hopwood 74aeee659b Use a ValueError exception to represent out-of-range field element representations.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-06-04 14:36:37 +01:00
Jack Grigg 739ec65c52
Implement ToScalar from spec, and small refactor to match spec more closely
Test vectors from sapling_key_components.py and sapling_signatures.py are not
altered by this commit.
2018-06-05 00:33:50 +12:00
Jack Grigg 1fbb3b2036 Alter definition of layer in merkle_crh to match the spec 2018-05-19 08:08:38 +12:00
Jack Grigg c795bb6ef7 Add comments to test vector output linking to source 2018-05-19 07:48:49 +12:00
Jack Grigg 7aebe58a58 Add note nullifiers to key component test vectors 2018-05-19 07:47:22 +12:00
Jack Grigg 51206901cc Add note commitments to key component test vectors 2018-05-19 07:19:09 +12:00
Jack Grigg ef17e5bc26 Reject encoded points with v not in the field 2018-05-19 06:30:19 +12:00
Jack Grigg d32ed1a957 Add test of merkle_crh 2018-05-19 06:29:39 +12:00
Jack Grigg 2641abb3be Add tests of field arithmetic 2018-05-19 06:27:33 +12:00