Jack Grigg
c4e14ad0b1
Address libc deprecations
2019-07-19 00:47:42 +02:00
Jack Grigg
6f9083b5ab
Migrate to rand 0.7
2019-07-19 00:47:40 +02:00
Jack Grigg
b0913afdd7
Migrate remaining crates to rand_core 0.4
2019-07-19 00:46:37 +02:00
Jack Grigg
8f7adec0d9
Migrate zcash_primitives to rand_core 0.4
2019-07-19 00:46:37 +02:00
Jack Grigg
60d344a0a7
Migrate sapling-crypto to rand_core 0.4
2019-07-19 00:46:34 +02:00
Jack Grigg
83e1af104e
Migrate ff, group, pairing, and bellman to rand 0.6
2019-07-19 00:42:39 +02:00
Jack Grigg
5728bda2c1
Replace rust-crypto with sha2 in sapling-crypto dev-dependencies
...
This removes rand < 0.5 from our Cargo.lock.
2019-07-19 00:35:06 +02:00
Jack Grigg
ccf75c39c1
Migrate remaining crates to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
6149166ccb
Migrate zcash_primitives to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
adfc88926b
Migrate sapling-crypto to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
4606a0cefb
Migrate bellman to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
a7e22b3550
Migrate pairing to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
ce6e2a5825
Migrate group to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
7a6642b221
Migrate ff to rand_core 0.3 (used by rand 0.5)
2019-07-19 00:35:06 +02:00
str4d
9e758dc7d9
Merge pull request #83 from str4d/blake2_simd
...
Migrate to blake2b_simd and blake2s_simd crates
2019-07-18 17:41:59 +01:00
str4d
8361674efc
Merge branch 'master' into blake2_simd
2019-07-18 18:22:20 +02:00
str4d
5e3409ea85
Merge pull request #68 from str4d/sapling-commitment-tree
...
Sapling commitment tree
2019-07-15 16:52:46 +02:00
Jack Grigg
504c3eaeae
Address Daira's review comments
2019-07-15 16:33:43 +02:00
Jack Grigg
07dbfbef59
Address Eirik's review comments
2019-07-10 13:53:22 -04:00
Jack Grigg
79006ecbdf
Unify Sapling tree depth constants
...
When sapling-crypto is refactored, the zcash_primitives::sapling
constant would become the canonical one.
2019-07-10 13:53:22 -04:00
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
d1ce6749fe
Bump minimum Rust version to 1.36
2019-07-10 13:12:26 -04:00
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 .
2019-07-10 13:12:14 -04:00
str4d
91c6b0b3f0
Merge pull request #88 from str4d/address-encodings
...
Sapling address encodings
2019-07-10 07:04:37 -04:00
Jack Grigg
a3a9ee2682
Validate PaymentAddress diversifier when decoding
2019-07-02 00:07:48 +01:00
Jack Grigg
dd9c9ffa3f
Add encodings for ExtendedSpendingKey and ExtendedFullViewingKey
2019-06-27 16:21:32 +01:00
Jack Grigg
17f60a0354
Implement PaymentAddress encoding and decoding
2019-06-27 16:21:00 +01:00
Jack Grigg
81b2b1b554
Wallet spending key derivation path
2019-06-27 16:19:33 +01:00
Jack Grigg
f25a8a557e
Convert zip32 crate into a module of zcash_primitives
2019-06-27 16:14:24 +01:00
Jack Grigg
fae919ec1c
Rename zcash_wallet to zcash_client_backend, set to 2018 edition
2019-06-27 16:02:12 +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