Jack Grigg
e67560b154
Document merkle_tree module
2019-07-10 13:53:22 -04:00
Jack Grigg
b9cea33804
Move merkle_tree::Node into sapling module
...
This makes the merkle_tree module properly generic over the tree hash.
It still hard-codes a depth 32 tree, because Rust doesn't yet support
generic sizes, and we are unlikely to need to alter the tree depth in
future circuit changes.
2019-07-10 13:53:22 -04:00
Jack Grigg
263bbe1207
Use Iterator::all() in place of Iterator::fold()
2019-07-10 13:53:22 -04:00
Jack Grigg
98d7621135
Don't assert when parsing a CommitmentTreeWitness
2019-07-10 13:53:22 -04:00
Jack Grigg
9b4186705a
Add serialization APIs to CommitmentTree and IncrementalWitness
2019-07-10 13:53:22 -04:00
Jack Grigg
70a7069058
Helper for serializing Option<T>
2019-07-10 13:53:22 -04:00
Jack Grigg
667d6101c9
Sapling incremental witnesses
2019-07-10 13:53:20 -04:00
Jack Grigg
bf74915053
Move CommitmentTreeWitness into zcash_primitives
2019-07-10 13:52:47 -04:00
Jack Grigg
f4059a5faa
Sapling commitment tree
2019-07-10 13:44:21 -04:00
Jack Grigg
8f3f95ee08
Sapling commitment tree empty roots
2019-07-10 13:44:21 -04:00
Jack Grigg
785f22ca5a
Move Sapling commitment tree hash into zcash_primitives
2019-07-10 13:44:19 -04:00
Jack Grigg
f25a8a557e
Convert zip32 crate into a module of zcash_primitives
2019-06-27 16:14:24 +01:00
str4d
3b6f5e3d5e
Merge pull request #69 from str4d/sapling-note-encryption
...
Sapling note encryption
2019-06-06 20:50:17 +01:00
Jack Grigg
b65aae9bc1
Test both invalid and incorrect diversifiers
2019-06-06 13:56:06 +01:00
Jack Grigg
fdb6e208db
Check note plaintext version byte when decrypting
2019-06-06 13:38:34 +01:00
Jack Grigg
060977fe54
Return edwards::Point from sapling_ka_agree
...
This matches how sapling_ka_agree and kdf_sapling are defined in the
protocol spec. kdf_sapling also now takes ownership of dhsecret to
discourage use of the sapling_ka_agree output elsewhere.
2019-06-06 13:38:33 +01:00
Jack Grigg
9d80be62f9
Simplify Memo::to_utf8 implementation
2019-06-06 13:38:32 +01:00
Jack Grigg
6846ac5f9e
Require that ak in FullViewingKey is prime order
2019-06-06 13:38:31 +01:00
Jack Grigg
75bede4bc8
Use fixed-length arrays instead of Vec
2019-06-06 13:38:30 +01:00
Jack Grigg
d4fce58019
Tweaks to debug output and function names
2019-06-05 14:19:50 +01:00
Jack Grigg
23aa869bf4
Add comments with specification references
2019-06-05 14:19:33 +01:00
Jack Grigg
6d03b5c1db
Replace AeadCipher::seal with AeadCipher::seal_to
2019-06-05 13:55:17 +01:00
str4d
c5642f9f5e
Merge pull request #70 from rex4539/electric-coin-company
...
Electric Coin Company
2019-05-23 17:33:38 +01:00
Dimitris Apostolou
34f762cea2
Electric Coin Company
2019-05-09 20:32:39 +03:00
Jack Grigg
edf7bc144d
Document note_encryption module
2019-04-11 16:08:32 -07:00
Jack Grigg
6dcb4040af
Switch to crypto_api_chachapoly crate
...
This crate exposes both the ChaCha20Poly1305 IETF construction, and the
underlying ChaCha20 IETF primitive, removing the need for depending on
our own fork of the previous chacha20-poly1305-aead crate.
2019-04-11 06:33:41 -07:00
Jack Grigg
e17e4b1346
Test invalid decryption edge cases
2019-04-05 21:05:05 +01:00
Jack Grigg
9086dd9afb
Enforce consistent plaintext and ciphertext lengths
2019-04-05 21:05:05 +01:00
Jack Grigg
899d852c39
Inline empty nonces
2019-04-05 21:05:05 +01:00
Jack Grigg
566db65a91
Use a slice instead of a vector in prf_expand()
2019-04-05 21:05:05 +01:00
Jack Grigg
2b1583d75f
Deduplicate Sapling key agreement logic
2019-04-05 21:05:05 +01:00
Jack Grigg
247f3fb038
Impl traits and functions for Memo
2019-04-05 21:05:05 +01:00
Jack Grigg
484330ebd9
Trial Sapling compact note decryption
...
Part of ZIP 307.
2019-04-05 21:05:05 +01:00
Jack Grigg
8e098d4d72
Trial Sapling output recovery
2019-04-05 21:05:05 +01:00
Jack Grigg
6996853168
Trial Sapling note decryption
2019-04-05 21:05:05 +01:00
Jack Grigg
757316d355
Test prf_ock
2019-04-05 21:05:05 +01:00
Jack Grigg
70caa7d4b0
Sapling note encryption test vectors
2019-04-05 21:05:05 +01:00
George Tankersley
65bbe7daed
Implement Sapling note encryption
2019-04-05 21:05:05 +01:00
Jack Grigg
9b455a12cc
Move Sapling key structs from zip32 to zcash_primitives
2019-04-05 21:05:03 +01:00
Jack Grigg
6c99d71d4f
cargo fmt
2019-04-02 01:30:00 +01:00
Jack Grigg
3501365950
Test Transaction::txid()
2019-04-02 01:29:48 +01:00
Jack Grigg
663f9d619d
Use named fields in Transaction struct
2019-04-02 01:29:22 +01:00
Jack Grigg
b856d23069
Reverse a clone of [u8; 32] instead of allocating
2019-03-07 23:43:58 +00:00
Jack Grigg
4289843852
Compute TxId for Transaction
2019-03-07 23:42:00 +00:00
Jack Grigg
670bb277e9
Block header serialisation
2019-03-07 23:41:59 +00:00
Jack Grigg
a1664c6bbc
impl Display for BlockHash and TxId
2019-03-07 23:41:46 +00:00
Jack Grigg
20d5cdc571
TxId struct
2019-03-07 23:26:03 +00:00
Jack Grigg
e21be37042
Block header representation
2019-03-07 23:26:00 +00:00
Jack Grigg
3d39706aee
Make SpendDescription.spend_auth_sig optional
2019-02-26 13:44:28 -07:00
Jack Grigg
012d43bc8c
derive Debug for various structs
2019-02-26 13:44:28 -07:00