Jack Grigg
66a519f55d
Alter SaplingNote::nullifier() to take a SaplingFullViewingKey
...
This means the API will work if you only have a SaplingExtendedSpendingKey,
as will be the case with ZIP 32.
2018-07-24 14:54:01 +02:00
Homu
a7a62b724b
Auto merge of #3391 - bitcartel:3061_sapling_note_encryption, r=ebfull
...
Sapling note plaintext (encryption and decryption)
Add encryption and decryption of SaplingNotePlaintext and SaplingOutgoingPlaintext classes.
This is part of #3061 to add Sapling note functionality.
2018-07-24 03:27:28 -07:00
Simon
e739ca2ef2
Rename AttemptSaplingEncDecryptionUsingFullViewingKey and use function overloading.
2018-07-23 10:48:26 -07:00
Simon
7b913c3e5e
Implement Sapling note decryption using full viewing key.
2018-07-20 16:31:48 -07:00
Daniel Cousens
4519a766b6
move rpc* to rpc/
2018-07-18 11:07:16 -06:00
Simon
687bd96cbd
Minor update to address nits in review.
2018-07-17 14:26:38 -07:00
Sean Bowe
f23e783600
Decryption and tests of note/outgoing encryption.
2018-07-16 18:34:14 -06:00
Homu
b7d058cef3
Auto merge of #3334 - arielgabizon:add_groth_tests, r=bitcartel
...
Extend JoinSplit tests to Groth
As we now have both PGHR and Groth proofs for Sprout - make the joinsplit tests check the Groth proofs as well.
See https://github.com/zcash/zcash/issues/3266
2018-07-16 12:11:12 -07:00
Ariel Gabizon
589479fd33
Extend Joinsplit tests to Groth
2018-07-13 13:01:34 +02:00
Homu
f55bcd1c10
Auto merge of #3374 - rex4539:fix-typos, r=str4d
...
Fix typos
2018-07-12 14:25:15 -07:00
Homu
d86f60f382
Auto merge of #3324 - ebfull:sapling-note-encryption, r=ebfull
...
Sapling note encryption implementation
Closes #3055
Implemented along with @gtank and @Eirik0
DH key exchange was implemented in https://github.com/zcash/librustzcash/pull/18
2018-07-11 14:51:57 -07:00
Sean Bowe
7478876271
Minor edits
2018-07-11 15:48:41 -06:00
Dimitris Apostolou
ccf9106501
Fix typos
2018-07-06 14:33:24 +03:00
Jay Graber
8e91ebf76c
Change default_address to return SaplingPaymentAddr and not boost::optional
2018-07-05 14:52:51 -07:00
Jay Graber
f82a864dc1
Add StoreAndRetrieveSaplingSpendingKey test
2018-07-05 14:52:51 -07:00
Sean Bowe
4e1f2daa0d
Add get_esk() function to Sapling note encryption.
2018-06-18 13:14:43 -06:00
Sean Bowe
c03e22612d
Prevent nonce reuse in Sapling note encryption API.
2018-06-14 12:21:28 -06:00
Sean Bowe
9e1c2c4049
Implementation of Sapling in-band secret distribution.
2018-06-14 11:58:45 -06:00
Jay Graber
052d640cb0
Add json test vectors for Sapling key components.
2018-06-13 10:38:32 -07:00
Homu
4f18c693c3
Auto merge of #3272 - bitcartel:3061_sapling_add_notes, r=bitcartel
...
Add SaplingNote class
Part of #3061 , adding SaplingNote class.
2018-06-12 16:58:38 -07:00
Simon
268e5dfa50
Return optional for Sapling commitments and nullifiers.
...
Unlike Sprout, they are not always computable in Sapling.
2018-06-12 14:40:17 -07:00
Simon
d17f8d1cc7
Refactor and replace factory method random() with constructor.
2018-06-12 14:37:15 -07:00
Simon
36e2e7cc32
Add SaplingNote class and test_sapling_note unit test.
2018-06-12 14:37:05 -07:00
Homu
524171de1f
Auto merge of #3137 - str4d:2943-remove-auto-senescence-option, r=ebfull
...
Remove config option -disabledeprecation
Closes #2943 .
2018-06-12 08:51:13 -07:00
Jack Grigg
c74ab3356a
Remove config option -disabledeprecation
...
Closes #2943 .
2018-06-11 10:38:12 -07:00
Ariel Gabizon
e1a3461cc2
Improve/Fix variable names
...
ZCProof was too general. pubKeyHash was actually the JoinSplit pubkey
itself.
2018-06-09 20:27:35 -07:00
Homu
80338c07e5
Auto merge of #3237 - str4d:std-array, r=str4d
...
Replace boost::array with std::array
2018-06-06 19:36:57 -07:00
Jay Graber
dd099401a3
Fix default_address()
2018-06-01 04:03:27 -07:00
Jay Graber
521a6f1fc0
Minimal sapling key test
2018-06-01 02:32:17 -07:00
Jack Grigg
a6bbb26e08
Replace boost::array with std::array
2018-05-26 00:12:57 +12:00
Sean Bowe
8f5429a13a
Update merkle tree and pedersen hash tests to account for new encoding
2018-05-18 13:26:39 -06:00
Sean Bowe
34f6ea95dc
Adjust tests and benchmarks
2018-05-14 16:29:02 -06:00
Sean Bowe
b7a6c32178
Integrate Groth16 verification and proving.
2018-05-14 16:26:23 -06:00
Jack Grigg
e5eab182b5
Use boost::variant to represent shielded addresses and keys
...
libzcash::PaymentAddress has been renamed to libzcash::SproutPaymentAddress,
and a new typedef boost::variant is now libzcash::PaymentAddress. Similarly
for ViewingKey and SpendingKey.
A new class InvalidEncoding is introduced as the default boost::variant
option for each address and key type; it is used during decoding instead
of boost::optional.
All address and key storage functions in the wallet have been modified to
refer specifically to the Sprout types, as they are used very precisely.
In most other cases, the more general type is leveraged as much as possible,
and we convert to the Sprout type when necessary. This will be subsequently
wrapped in, or replaced with, context-specific functions once Sapling
types are implemented.
2018-05-11 17:14:49 -04:00
Homu
73f5cb1213
Auto merge of #3257 - bitcartel:3250_fix_segfault_memo, r=ebfull
...
Closes #3250 . Memo getter should return by reference, not by value.
2018-05-10 08:47:06 -07:00
Simon
67f3577239
Closes #3250 . Memo getter should return by reference, not by value.
2018-05-09 21:52:33 -07:00
Jack Grigg
97b46f00cc
Add valueBalance to value balances, and enforce its consensus rules
2018-05-09 11:34:41 +01:00
Homu
333b9a0d0b
Auto merge of #3170 - ebfull:sapling-merkle-tree, r=ebfull
...
Sapling merkle tree implementation
Closes #3056 .
Please also review https://github.com/zcash/librustzcash/pull/8
This PR:
1. Introduces ZCSaplingIncrementalMerkleTree using Pedersen hashes.
2. Adds support for Sapling anchors into consensus rules. (Adds commitments, checks anchors are correct, handles block (dis)connects, etc.)
3. Handles mempool eviction for obsolete anchors.
4. Enforces correctness of block's Sapling root field
5. Changes miner to correctly apply the Sapling root to the block header
6. Handles mempool consistency checks for anchors
2018-05-07 20:37:46 -07:00
Sean Bowe
40bfb9e5b9
Swap bit endianness of test vectors
2018-05-07 18:57:04 -06:00
Sean Bowe
673a0a79b3
Adjust tests to handle Sapling anchor cache
2018-05-07 14:37:46 -06:00
Sean Bowe
27616b9a04
Add support for Sapling anchors in coins/txdb.
2018-05-07 14:37:46 -06:00
Sean Bowe
7b62078782
Remove underscores from gtest test names.
2018-05-07 14:37:46 -06:00
Sean Bowe
18322f074c
Introduce support for GetBestAnchor(SAPLING).
2018-05-07 13:46:06 -06:00
Sean Bowe
008f4ee8e7
Rename GetAnchorAt to GetSproutAnchorAt.
2018-05-07 13:46:06 -06:00
Sean Bowe
08f0728884
Rename hashAnchor to hashSproutAnchor.
2018-05-07 13:46:06 -06:00
Sean Bowe
d455828fdc
Specifically describe anchors as Sprout anchors.
2018-05-07 13:46:06 -06:00
Sean Bowe
28d20bdb11
Rename NullifierType to ShieldedType.
2018-05-07 13:46:06 -06:00
Sean Bowe
2f23a656fb
Add regression tests and test vectors for Sapling merkle tree
2018-05-07 13:46:06 -06:00
Homu
1d4235dce7
Auto merge of #3239 - str4d:sapling-default-tx-version, r=str4d
...
Update CreateNewContextualCMutableTransaction for Sapling
Part of #3063 .
2018-05-07 12:27:47 -07:00
Jack Grigg
e1d41f21f3
Update tests for CreateNewContextualCMutableTransaction changes
2018-05-07 20:21:55 +01:00