teor
5ac72f1184
Log instead of failing the redpallas::prop::tweak_signature test
2021-05-24 11:08:05 -04:00
teor
d4f3ecd755
Remove redundant cmp_owned and comments ( #2186 )
...
* Remove redundant cmp_owned and comments
This is a cleanup after PR #2184 .
2021-05-23 21:40:47 +00:00
Deirdre Connolly
ad7a29517c
Fix clippy::cmp_owned for (sapling, orchard)::keys with `ConstantTimeEq` ( #2184 )
...
* Impl subtle::ConstantTimeEq for orchard SpendingKey, use that in Eq/PartialEq
* Use constant time comparisons for secret key data where applicable
This also makes Clippy happier so that we aren't creating types just to compare.
* Fix clippy::cmp_owned for orchard::keys Eq/PartialEq
By impl'ing ConstantTimeEq for those types where leaks of the value
would compromise access or privacy.
* Make clippy::cmp_owned happy for some sapling::keys
2021-05-22 09:40:49 -03:00
teor
57fb5c028c
Fix up some doc links ( #2180 )
2021-05-21 12:06:31 -03:00
Alfredo Garcia
a57c09a3b8
Orchard data in V5 parsing ( #2116 )
...
* initialize the work on parsing orchard data in V5
* add the rest of orchard serialization
* fix serialization according to spec
* fix arbitrary for Signature<SpendAuth>
* move deserialization of AuthorizedAction to shielded_data module
* use `from_bits_truncate` to generate valid arbitrary flags
* change panic message
* fix serialization/deserialization when nActionsOrchard is empty
* fix Halo2Proof deserialization
* implement ZcashSerialize and ZcashDeserialize for flags
* implement ZcashSerialize and ZcashDeserialize for orchard::tree::Root
* use ZcashSerialize and ZcashDeserialize for binding_sig
* implement from_parts()
* implement Arbitrary for Signature<Binding>
* add trusted preallocate with tests
* fix Arbitrary for orchard Nullifier
* Use zcash_serialize_bytes instead of write_compactsize
Co-authored-by: teor <teor@riseup.net>
2021-05-21 00:42:06 +00:00
teor
eb2e58ba53
Security: reject compact sizes greater than the protocol message limit ( #2155 )
...
These sizes should be impossible in valid messages.
So they likely represent a memory preallocation attack.
2021-05-17 18:23:06 -04:00
teor
b600e82d6e
Security: Avoid silently corrupting invalid times during serialization ( #2149 )
...
* Security: panic if an internally generated time is out of range
If Zebra has a bug where it generates blocks, transactions, or meta
addresses with bad times, panic. This avoids sending bad data onto the
network.
(Previously, Zebra would truncate some of these times, silently
corrupting the underlying data.)
Make it clear that deserialization of these objects is infalliable.
2021-05-17 16:53:10 -04:00
Alfredo Garcia
1f25d84273
correct some docs ( #2157 )
2021-05-14 16:35:10 -03:00
teor
c0326677a4
Add a new `zcash_serialize_bytes` utility function ( #2150 )
2021-05-14 12:23:02 +10:00
dependabot[bot]
b8fe6617b8
build(deps): bump sha2 from 0.9.4 to 0.9.5 ( #2147 )
...
Bumps [sha2](https://github.com/RustCrypto/hashes ) from 0.9.4 to 0.9.5.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/compare/sha2-v0.9.4...sha2-v0.9.5 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-13 07:58:48 +10:00
Pili Guerra
500dc2e511
Update version strings for Zebra v1.0.0-alpha.8 release ( #2136 )
...
* Update versions for zebra v1.0.0-alpha.8 release
* Update tower-batch and tower-fallback version strings
* Update Cargo.lock
2021-05-12 14:27:36 +02:00
teor
2827f6a7e6
Orchard: disable clippy warnings about comparing a newly created struct ( #2117 )
...
In Orchard, we compare canonical Pallas bytes with a supplied byte array.
Since we need to perform calculations to get it into canonical form, we
need to create a newly owned object.
2021-05-10 19:16:21 -03:00
Alfredo Garcia
29893f2b9b
Validate nConsensusBranchId ( #2100 )
...
* validate nConsensusBranchId
* add tests
* fix bug in transaction_to_fake_v5
Co-authored-by: teor <teor@riseup.net>
2021-05-10 01:31:45 +00:00
Deirdre Connolly
3901dc9adc
Merge pull request #2099 from ZcashFoundation/redpallas-sig-stub
...
Flesh out redpallas, direct port of redjubjub
2021-05-06 10:56:00 -04:00
dependabot[bot]
c2706f448a
build(deps): bump sha2 from 0.9.3 to 0.9.4
...
Bumps [sha2](https://github.com/RustCrypto/hashes ) from 0.9.3 to 0.9.4.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/compare/sha2-v0.9.3...sha2-v0.9.4 )
Signed-off-by: dependabot[bot] <support@github.com>
2021-05-06 08:58:07 -04:00
dependabot[bot]
84aca7e78b
build(deps): bump tracing from 0.1.25 to 0.1.26
...
Bumps [tracing](https://github.com/tokio-rs/tracing ) from 0.1.25 to 0.1.26.
- [Release notes](https://github.com/tokio-rs/tracing/releases )
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.25...tracing-0.1.26 )
Signed-off-by: dependabot[bot] <support@github.com>
2021-05-03 17:05:49 -04:00
dependabot[bot]
72547cafff
build(deps): bump secp256k1 from 0.20.1 to 0.20.2
...
Bumps [secp256k1](https://github.com/rust-bitcoin/rust-secp256k1 ) from 0.20.1 to 0.20.2.
- [Release notes](https://github.com/rust-bitcoin/rust-secp256k1/releases )
- [Changelog](https://github.com/rust-bitcoin/rust-secp256k1/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-bitcoin/rust-secp256k1/commits )
Signed-off-by: dependabot[bot] <support@github.com>
2021-04-30 11:22:35 -04:00
Deirdre Connolly
566a10151c
Rebase tidies
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d0180423c1
Tidy up sinsemilla_hash_to_point() with bitvec
2021-04-30 00:48:23 -04:00
Deirdre Connolly
42999b2112
Remove FromStr impls for orchard keys for now, pending Unifed versions of those
...
Also modify the string encoding/decoding rountrip proptest to be just an exerciser of the keygen
for now.
2021-04-30 00:48:23 -04:00
Deirdre Connolly
6d4ecff24b
Pin halo2 commit and update usage of pasta_curves accordingly
2021-04-30 00:48:23 -04:00
Deirdre Connolly
9b6339bb9c
Add link to funty pin removal issue
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f5206af470
Rename all Orchard spec references to nu5.pdf
2021-04-30 00:48:23 -04:00
Deirdre Connolly
26fc6b1908
Doing math in u16 collector obviates passing of Bit(Slice/Vector)
...
But I added a max 10-bit value check in S() on j.
2021-04-30 00:48:23 -04:00
Deirdre Connolly
af32851aa1
Add TODO to fill in the Sinsemilla test vectors from zcash-hackworks
2021-04-30 00:48:23 -04:00
Deirdre Connolly
aa81876e32
Move Value Commitment generator points into static via lazy_static
2021-04-30 00:48:23 -04:00
Deirdre Connolly
39b8e9859f
Do not derive Hash for orchard::Nullifier as pallas::Base doesn't have it
...
If we need Hash, we may need to replace the inner type with bytes.
2021-04-30 00:48:23 -04:00
Deirdre Connolly
70bf4f80fb
Add TODO for Poseidon hash implementation
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d7d8986849
Tidy up network handling for Orchard keys/addresses
2021-04-30 00:48:23 -04:00
Deirdre Connolly
ee2c3af937
Remove Copy on ZkSnarkProof trait
2021-04-30 00:48:23 -04:00
Deirdre Connolly
a1a59a7f76
Clean up orchard::tree tests for now
2021-04-30 00:48:23 -04:00
Deirdre Connolly
6efe558675
Clean up Arbitray impl for Halo2Proof
2021-04-30 00:48:23 -04:00
Deirdre Connolly
32480ab3d9
Add redpallas TODO
2021-04-30 00:48:23 -04:00
Deirdre Connolly
86c3b69720
IncomingViewingKey inherits network when derived from FullViewingKey
2021-04-30 00:48:23 -04:00
Deirdre Connolly
5159046578
Add link to redpallas follow-up
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d33947b331
Impl FullViewingKey::from_spending_key(SpendingKey, Network)
...
Remove From impl
2021-04-30 00:48:23 -04:00
Deirdre Connolly
4fd98f6eb1
Link to redpallas TODO
2021-04-30 00:48:23 -04:00
Deirdre Connolly
1ff84c3d43
Refer to const generics issue
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d8d25d1a82
Add TODO
2021-04-30 00:48:23 -04:00
Deirdre Connolly
698f9620da
Clippy +nightly
2021-04-30 00:48:23 -04:00
Deirdre Connolly
4ee12d1170
Clippy lint to align order of members of redpallas::VerificationKey
2021-04-30 00:48:23 -04:00
Deirdre Connolly
48674a9749
Remove standalone Orchard address Display, FromStr impls and related parts
...
NU5 proposes Unified Addresses, which would supplant any classic standalone pool address for Orchard.
https://github.com/ZcashFoundation/zebra/pull/1885#discussion_r607000460
2021-04-30 00:48:23 -04:00
Deirdre Connolly
72491df4ff
orchard: move IncomingViewingKey::from([u8; 32]) to a ::from_bytes([u8; 32], Newtwork)
2021-04-30 00:48:23 -04:00
Deirdre Connolly
8d357faf73
Tried and discarded lazy_static! of value commitment generator points
2021-04-30 00:48:23 -04:00
Deirdre Connolly
638ff8d7f8
Bump redjubjub
2021-04-30 00:48:23 -04:00
Deirdre Connolly
81038e0fcb
orchard: ValueCommit ops implementation tests
2021-04-30 00:48:23 -04:00
Deirdre Connolly
db8f9cb81a
orchard: Better Debug impls for some keys
2021-04-30 00:48:23 -04:00
Deirdre Connolly
eb68caf14c
Orchard: update Debug impl for commitments
2021-04-30 00:48:23 -04:00
Deirdre Connolly
cc2e58fade
Remove done TODO
2021-04-30 00:48:23 -04:00
Deirdre Connolly
376603d4c0
Flesh out Orchard note and nullifier derivation
2021-04-30 00:48:23 -04:00
Deirdre Connolly
37c32e9c94
Apply docstring suggestions from code review
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
195d3f106c
Revert making sapling::note::Nullifier inner value private
2021-04-30 00:48:23 -04:00
Deirdre Connolly
44966326c1
Orchard: turns out you can't store 10 bits in a u8
2021-04-30 00:48:23 -04:00
Deirdre Connolly
5e95d11fd9
Orchard: fix typos
2021-04-30 00:48:23 -04:00
Deirdre Connolly
34fe78bd0c
Fix str match for key and addr decoding
2021-04-30 00:48:23 -04:00
Deirdre Connolly
ec5d3a647f
Remove commented out orchard::Address FromStr/Display test vector test for now
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f067a25d50
Update zebra-chain/src/orchard/address.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f577cb8eb4
Update zebra-chain/src/orchard/address.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
b23093ca66
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
bbb6b341ae
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
a73914a838
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
bba99098f3
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
e2989e3edf
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
e4fe8bb320
Update zebra-chain/src/orchard/note/nullifiers.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
81da8363a8
Update zebra-chain/src/orchard/sinsemilla.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
dbd2ce6dd8
Update zebra-chain/src/orchard/sinsemilla.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
ebe0c002a9
Update zebra-chain/src/orchard/sinsemilla.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
8461c2153e
Update diversify_hash and its use to match spec updates
2021-04-30 00:48:23 -04:00
Deirdre Connolly
73e0f4f98a
Orchard: fix some tests, etc
2021-04-30 00:48:23 -04:00
Deirdre Connolly
87f65b8b01
Orchard: update merkle_crh_orchard to use the appropriate l=10 bits, not 6
2021-04-30 00:48:23 -04:00
Deirdre Connolly
1ff8874b8d
Orchard: remove unused imports, more warn(missing_docs) lint to orchard for now
2021-04-30 00:48:23 -04:00
Deirdre Connolly
5ede33b231
Orchard: update nullifiers
2021-04-30 00:48:23 -04:00
Deirdre Connolly
c892b93f61
Orchard: update merkle_crh_orchard correctly
2021-04-30 00:48:23 -04:00
Deirdre Connolly
218bb9b7c2
Orchard: remove unused imports
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f3501333b7
Orchard: tidy
2021-04-30 00:48:23 -04:00
Deirdre Connolly
1c903cab0f
Orchard: fix into() call inside extract_x
2021-04-30 00:48:23 -04:00
Deirdre Connolly
94edc90975
Orchard: derive serde::{Deserialize, Serialize} by default on redpallas::VerificationKeyBytes
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d11a4419ac
Orchard: add a serde helper for pallas::Base
2021-04-30 00:48:23 -04:00
Deirdre Connolly
41a41db923
Sapling: use try_from turbofish inside prf_ock
2021-04-30 00:48:23 -04:00
Deirdre Connolly
0351e6481d
Orchard: tidy keys
2021-04-30 00:48:23 -04:00
Deirdre Connolly
e85359c756
Orchard: tidy
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d3f0b226e6
Orchard: tidy nullifiers
2021-04-30 00:48:23 -04:00
Deirdre Connolly
b93a71c779
Orchard: borrow local.bytes for pallas::Affine serde helper
2021-04-30 00:48:23 -04:00
Deirdre Connolly
009e1dd37e
Orchard: some Action (de)serialization fixes
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f3cf6966a5
Orchard: tidy commitments etc
2021-04-30 00:48:23 -04:00
Deirdre Connolly
cb9d6956d7
Orchard: Fix trait imports and Arbitrary for Action
2021-04-30 00:48:23 -04:00
Deirdre Connolly
981080f049
Orchard: Tidy Debug impl's for keys, cast a pallas::Base into a pallas::Scalar
2021-04-30 00:48:23 -04:00
Deirdre Connolly
6e51671c93
Tidy prf's
2021-04-30 00:48:23 -04:00
Deirdre Connolly
120b065a94
Action should use VerificationKeyBytes
2021-04-30 00:48:23 -04:00
Deirdre Connolly
570ad6e914
Add redpallas::signing_key::SigningKey stub
2021-04-30 00:48:23 -04:00
Deirdre Connolly
01fed3e0f3
Tidy impl From<SpendingKey> for IvkCommitRandomness
2021-04-30 00:48:23 -04:00
Deirdre Connolly
bd4e5e1f38
Cleanup
2021-04-30 00:48:23 -04:00
Deirdre Connolly
df1ecc72b1
Most things are filled in, including a guess at Pallas-based Mixing Pedersen Hash
2021-04-30 00:48:23 -04:00
Deirdre Connolly
23e391894b
Tidy
2021-04-30 00:48:23 -04:00
Deirdre Connolly
de051c727c
orchard: DiversifierKey is a newtype refinement of 32 bytes
2021-04-30 00:48:23 -04:00
Deirdre Connolly
fd29708ecc
orchard: derive IncomingViewingKey from FullViewingKey
...
Includes sinsemilla commit and short commit
2021-04-30 00:48:23 -04:00
Deirdre Connolly
6e1d2f1fb1
orchard: impl From<SpendingKey> for NullifierDerivingKey
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f50d8697d4
impl orchard SpendingKey::new()
2021-04-30 00:48:23 -04:00
Deirdre Connolly
20abeda04b
Add sapling prf_ock and generate_trapdoor
2021-04-30 00:48:23 -04:00
Deirdre Connolly
c3e40d73cf
Bunch more work implementing orchard, porting from sapling where applicable
2021-04-30 00:48:23 -04:00