Commit Graph

208 Commits

Author SHA1 Message Date
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
str4d c5642f9f5e
Merge pull request #70 from rex4539/electric-coin-company
Electric Coin Company
2019-05-23 17:33:38 +01:00
Dimitris Apostolou 34f762cea2
Electric Coin Company 2019-05-09 20:32:39 +03:00
Jack Grigg edf7bc144d
Document note_encryption module 2019-04-11 16:08:32 -07:00
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.
2019-04-11 06:33:41 -07:00
Jack Grigg e17e4b1346
Test invalid decryption edge cases 2019-04-05 21:05:05 +01:00
Jack Grigg 9086dd9afb
Enforce consistent plaintext and ciphertext lengths 2019-04-05 21:05:05 +01:00
Jack Grigg 899d852c39
Inline empty nonces 2019-04-05 21:05:05 +01:00
Jack Grigg 566db65a91
Use a slice instead of a vector in prf_expand() 2019-04-05 21:05:05 +01:00
Jack Grigg 2b1583d75f
Deduplicate Sapling key agreement logic 2019-04-05 21:05:05 +01:00
Jack Grigg 247f3fb038
Impl traits and functions for Memo 2019-04-05 21:05:05 +01:00
Jack Grigg 484330ebd9
Trial Sapling compact note decryption
Part of ZIP 307.
2019-04-05 21:05:05 +01:00
Jack Grigg 8e098d4d72
Trial Sapling output recovery 2019-04-05 21:05:05 +01:00
Jack Grigg 6996853168
Trial Sapling note decryption 2019-04-05 21:05:05 +01:00
Jack Grigg 757316d355
Test prf_ock 2019-04-05 21:05:05 +01:00
Jack Grigg 70caa7d4b0
Sapling note encryption test vectors 2019-04-05 21:05:05 +01:00
George Tankersley 65bbe7daed
Implement Sapling note encryption 2019-04-05 21:05:05 +01:00
Jack Grigg 9b455a12cc
Move Sapling key structs from zip32 to zcash_primitives 2019-04-05 21:05:03 +01:00
Jack Grigg 6c99d71d4f
cargo fmt 2019-04-02 01:30:00 +01:00
Jack Grigg 3501365950
Test Transaction::txid() 2019-04-02 01:29:48 +01:00
Jack Grigg 663f9d619d
Use named fields in Transaction struct 2019-04-02 01:29:22 +01:00
Jack Grigg b856d23069
Reverse a clone of [u8; 32] instead of allocating 2019-03-07 23:43:58 +00:00
Jack Grigg 4289843852
Compute TxId for Transaction 2019-03-07 23:42:00 +00:00
Jack Grigg 670bb277e9
Block header serialisation 2019-03-07 23:41:59 +00:00
Jack Grigg a1664c6bbc
impl Display for BlockHash and TxId 2019-03-07 23:41:46 +00:00
Jack Grigg 20d5cdc571
TxId struct 2019-03-07 23:26:03 +00:00
Jack Grigg e21be37042
Block header representation 2019-03-07 23:26:00 +00:00
Jack Grigg 3d39706aee
Make SpendDescription.spend_auth_sig optional 2019-02-26 13:44:28 -07:00
Jack Grigg 012d43bc8c
derive Debug for various structs 2019-02-26 13:44:28 -07:00
Jack Grigg 09a20aacfe
Make zcash_primitives::JUBJUB the canonical instantiation of JubjubBls12 2019-02-26 13:44:28 -07:00
Jack Grigg 6b43b2d0d6
Refactor Sapling spendAuthSig creation into zcash_primitives::sapling 2019-02-26 13:44:28 -07:00
Jack Grigg 482bef87f0
Add ff and group crates to Cargo workspace 2019-01-06 09:50:07 +00:00
Jack Grigg 538de482f3
Update zcash_primitives crate to use ff crate 2019-01-06 09:31:20 +00:00
Jack Grigg 1a1c77536d
cargo fmt 1.31.1 2019-01-03 21:52:06 +00:00
Jack Grigg c9b23dfdef
Extract single-TxOut hashing from signature_hash_data() for clarity 2018-11-30 23:13:39 +00:00
Jack Grigg e25b614573
Match error message in Amount::Read_i64() to allow_negative value 2018-11-30 23:04:04 +00:00
Jack Grigg 7ff32b04d6
Document enforcement of consensus rules on transaction components 2018-11-30 22:59:48 +00:00
Jack Grigg d707ebd321
Use Option<[u8; N]> for JoinSplit pubkey and signature in a transaction 2018-11-30 01:08:45 +00:00
Jack Grigg 9b06205ed6
Reject unexpected binding sig during transaction write 2018-11-30 00:54:30 +00:00
Jack Grigg 61ce4dd3d6
Enforce range checks when reading Amounts 2018-11-30 00:30:37 +00:00
Jack Grigg 9282c7da29
Replace tx_read_write() test vector with one from current testnet chain 2018-11-16 09:50:27 +00:00
Jack Grigg 2d2e4aad86
Pass &[E] into Vector::write() instead of &Vec<E> 2018-11-16 08:55:06 +00:00
Jack Grigg cc183efda4
Define MAX_SIZE constant for CompactSize serialization 2018-11-16 08:52:53 +00:00
Jack Grigg 1f11c404dc
Convert Transaction into a wrapping struct with impl Deref
Users who have a Transaction can now only obtain an immutable reference
to its underlying data.
2018-11-09 08:34:49 +13:00
Jack Grigg 0c81695731
ZIP 243 2018-11-09 08:34:49 +13:00
Jack Grigg 2d8b1fe504
ZIP 143 2018-11-09 08:34:38 +13:00
Jack Grigg e490b79907
Transaction serialization 2018-10-11 18:05:50 +01:00
Jack Grigg 91ff2c71cf
Helper for serializing CompactSize-prefixed vectors 2018-10-11 17:48:12 +01:00
Jack Grigg ad16ba6a35
Empty crates as a base for code refactoring 2018-08-28 22:24:14 +01:00