Homu
12c1156f31
Auto merge of #3172 - str4d:mingw32, r=str4d
...
Windows cross-compile support
Usage on Debian / Ubuntu:
> $ sudo apt install mingw-w64
> $ sudo update-alternatives --config x86_64-w64-mingw32-gcc
> (configure to use POSIX variant)
> $ sudo update-alternatives --config x86_64-w64-mingw32-g++
> (configure to use POSIX variant)
> $ HOST=x86_64-w64-mingw32 ./zcutil/build.sh
Closes #489 .
2018-08-30 14:51:24 -07:00
David Mercer
32d3a3352e
libsnark: convert long long and unsigned long to C++11 fixed-width types
...
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2018-08-17 18:53:59 +01:00
Sean Bowe
69c4391b0f
Check commitment validity within the decryption API for Sapling note plaintexts.
2018-08-08 12:03:09 -07:00
Jack Grigg
74f5b010df
Rename Serialized*Size -> SerializedSprout*Size
2018-08-03 01:57:40 +01:00
Jay Graber
55f2889396
Add Sapling have/get sk crypter overrides
2018-08-03 00:23:08 +01:00
Eirik Ogilvie-Wigley
7d379f18c5
Rename test objects to include sprout or sapling
2018-08-01 10:52:58 -06:00
Eirik Ogilvie-Wigley
8ea8ef9850
Rename Witnesses to include sprout or sapling
2018-08-01 10:41:36 -06:00
Eirik Ogilvie-Wigley
4fc309f0f5
Rename Merkle Trees to include sprout or sapling
2018-08-01 10:31:09 -06:00
Jack Grigg
70a7535ae8
Expose note position in IncrementalMerkleWitness
2018-07-24 14:54:07 +02:00
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
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
eea0e2c924
Auto merge of #3390 - arcalinea:3319_discard_sk_if_invalid_ivk, r=str4d
...
Discard sk if ivk == 0
Addresses #3319
2018-07-13 03:16:21 -07:00
Jay Graber
db9f669c15
Discard sk if ivk == 0
2018-07-12 15:05:19 -07:00
Simon
34bf166e5f
Add encryption of SaplingNotePlaintext and SaplingOutgoingPlaintext classes.
...
This is part of #3061 to add Sapling note functionality.
2018-07-11 22:03:04 -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
Jay Graber
2173767365
Add crypted keystore sapling add key
2018-07-05 15:00:00 -07:00
Jay Graber
8e91ebf76c
Change default_address to return SaplingPaymentAddr and not boost::optional
2018-07-05 14:52:51 -07:00
Homu
2ebde5860e
Auto merge of #3326 - str4d:3058-sapling-addresses, r=str4d
...
Sapling address encodings
This PR enables Sapling keys and addresses to be passed in anywhere Sprout keys
and addresses are used. Doing so will cause crashes until those places are updated
with Sapling support.
Includes code cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#11167
- Only the `ConvertBits()` function.
- bitcoin/bitcoin#11630
Closes #3058 .
2018-06-19 05:12:50 -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
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
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
Jack Grigg
bec3e62bc1
Implement encoding and decoding of Sapling keys and addresses
2018-06-07 17:28:50 +12: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
87c9994cb2
Make diversifier functions return option
2018-06-04 07:47:46 -07:00
Jay Graber
0da9aac63e
s/SaplingInViewingKey/SaplingIncomingViewingKey
2018-06-04 04:59:07 -07:00
Jay Graber
dd099401a3
Fix default_address()
2018-06-01 04:03:27 -07:00
Jay Graber
52d81ff794
Update librustzcash dependency, address comments
2018-06-01 01:48:28 -07:00
Jay Graber
84e3a2212f
Change librustzcash dependency hash to work for new Sapling classes
2018-06-01 00:04:13 -07:00
Jay Graber
11acfe6e9f
Add Sapling key classes to wallet, with new librustzcash APIs
2018-06-01 00:04:13 -07:00
Jack Grigg
a6bbb26e08
Replace boost::array with std::array
2018-05-26 00:12:57 +12:00
Simon
47db75426f
Closes #3301 . Non-void function should not have empty definition.
2018-05-23 21:04:51 -07: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
Homu
08f74ed026
Auto merge of #3240 - str4d:remove-obsolete-binaries, r=str4d
...
Remove obsolete CreateJoinSplit and GenerateParams binaries
2018-05-09 13:50:25 -07:00
Sean Bowe
2b002a7e60
Add implementation of Sapling merkle tree
2018-05-07 13:46:06 -06:00
Sean Bowe
a7cbb8475f
Abstract `uncommitted` and depth personalization for IncrementalMerkleTree.
2018-05-07 13:46:06 -06:00
Homu
8ef1d333b5
Auto merge of #2894 - per-gron:dont-export-unless-needed, r=str4d
...
Make some globals static that can be
I wrote this patch as part of making a Bazel build system but it really is independent from that so I'm putting this as a separate PR.
External linkage does not help and just encourages sloppy dependencies (ie using symbols only declared in a cpp file in some other cpp file) and can lead to weird issues when there are name collisions.
2018-05-04 15:05:43 -07:00
Jack Grigg
11aa594440
Remove obsolete CreateJoinSplit and GenerateParams binaries
2018-05-03 13:18:03 +01:00