Jack Grigg
8f7adec0d9
Migrate zcash_primitives to rand_core 0.4
5 years ago
Jack Grigg
6149166ccb
Migrate zcash_primitives to rand 0.5
5 years ago
Jack Grigg
504c3eaeae
Address Daira's review comments
5 years ago
Jack Grigg
07dbfbef59
Address Eirik's review comments
5 years ago
Jack Grigg
79006ecbdf
Unify Sapling tree depth constants
...
When sapling-crypto is refactored, the zcash_primitives::sapling
constant would become the canonical one.
5 years ago
Jack Grigg
e67560b154
Document merkle_tree module
5 years ago
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.
5 years ago
Jack Grigg
263bbe1207
Use Iterator::all() in place of Iterator::fold()
5 years ago
Jack Grigg
98d7621135
Don't assert when parsing a CommitmentTreeWitness
5 years ago
Jack Grigg
9b4186705a
Add serialization APIs to CommitmentTree and IncrementalWitness
5 years ago
Jack Grigg
70a7069058
Helper for serializing Option<T>
5 years ago
Jack Grigg
667d6101c9
Sapling incremental witnesses
5 years ago
Jack Grigg
bf74915053
Move CommitmentTreeWitness into zcash_primitives
5 years ago
Jack Grigg
f4059a5faa
Sapling commitment tree
5 years ago
Jack Grigg
8f3f95ee08
Sapling commitment tree empty roots
5 years ago
Jack Grigg
785f22ca5a
Move Sapling commitment tree hash into zcash_primitives
5 years ago
Jack Grigg
999dcbfcab
Migrate to blake2b_simd and blake2s_simd crates
...
The primary reason for migrating is that these crates provide APIs for
setting the personalisation string. This enables us to depend solely on
published crates, and thus publish our own crates.
The SIMD implementations are ported from libsodium.
Closes #67 .
5 years ago
Jack Grigg
f25a8a557e
Convert zip32 crate into a module of zcash_primitives
5 years ago
Jack Grigg
b65aae9bc1
Test both invalid and incorrect diversifiers
5 years ago
Jack Grigg
fdb6e208db
Check note plaintext version byte when decrypting
5 years ago
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.
5 years ago
Jack Grigg
9d80be62f9
Simplify Memo::to_utf8 implementation
5 years ago
Jack Grigg
6846ac5f9e
Require that ak in FullViewingKey is prime order
5 years ago
Jack Grigg
75bede4bc8
Use fixed-length arrays instead of Vec
5 years ago
Jack Grigg
d4fce58019
Tweaks to debug output and function names
5 years ago
Jack Grigg
23aa869bf4
Add comments with specification references
5 years ago
Jack Grigg
6d03b5c1db
Replace AeadCipher::seal with AeadCipher::seal_to
5 years ago
Dimitris Apostolou
34f762cea2
Electric Coin Company
5 years ago
Jack Grigg
edf7bc144d
Document note_encryption module
6 years ago
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.
6 years ago
Jack Grigg
e17e4b1346
Test invalid decryption edge cases
6 years ago
Jack Grigg
9086dd9afb
Enforce consistent plaintext and ciphertext lengths
6 years ago
Jack Grigg
899d852c39
Inline empty nonces
6 years ago
Jack Grigg
566db65a91
Use a slice instead of a vector in prf_expand()
6 years ago
Jack Grigg
2b1583d75f
Deduplicate Sapling key agreement logic
6 years ago
Jack Grigg
247f3fb038
Impl traits and functions for Memo
6 years ago
Jack Grigg
484330ebd9
Trial Sapling compact note decryption
...
Part of ZIP 307.
6 years ago
Jack Grigg
8e098d4d72
Trial Sapling output recovery
6 years ago
Jack Grigg
6996853168
Trial Sapling note decryption
6 years ago
Jack Grigg
757316d355
Test prf_ock
6 years ago
Jack Grigg
70caa7d4b0
Sapling note encryption test vectors
6 years ago
George Tankersley
65bbe7daed
Implement Sapling note encryption
6 years ago
Jack Grigg
9b455a12cc
Move Sapling key structs from zip32 to zcash_primitives
6 years ago
Jack Grigg
6c99d71d4f
cargo fmt
6 years ago
Jack Grigg
3501365950
Test Transaction::txid()
6 years ago
Jack Grigg
663f9d619d
Use named fields in Transaction struct
6 years ago
Jack Grigg
b856d23069
Reverse a clone of [u8; 32] instead of allocating
6 years ago
Jack Grigg
4289843852
Compute TxId for Transaction
6 years ago
Jack Grigg
670bb277e9
Block header serialisation
6 years ago
Jack Grigg
a1664c6bbc
impl Display for BlockHash and TxId
6 years ago