Commit Graph

711 Commits

Author SHA1 Message Date
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
Jack Grigg
edf7bc144d Document note_encryption module 2019-04-11 16:08:32 -07:00
Jack Grigg
34658c4bd3 Raise minimum Rust version to 1.32
The crypto_api_chachapoly uses two new features introduced in 1.32:

- Self struct constructors
- u64::to_le_bytes()
2019-04-11 06:41:22 -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
str4d
d7ba310294 Merge pull request #66 from str4d/block-header
Block header parsing and transaction ID computation
2019-04-05 20:54:11 +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
str4d
e4187f07ff Merge pull request #65 from str4d/general-refactor
Initial primitives refactor
2019-03-08 09:01:47 +13: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
34ca75cceb impl Clone for ExtendedFullViewingKey 2019-02-26 13:44:28 -07:00
Jack Grigg
80db0ae2f9 ExpandedSpendingKey::proof_generation_key(), visibility tweaks 2019-02-26 13:44:28 -07:00
Jack Grigg
9ae5a9d624 Make loading of Sprout key optional in zcash_proofs API 2019-02-26 13:44:28 -07:00
Jack Grigg
2d43e3be7c Move parameter-loading into zcash_proofs 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
str4d
c57a31e82e Merge pull request #46 from str4d/ff-traits
Migrate to ff and group crates
2019-02-26 20:41:45 +00:00
Jack Grigg
482bef87f0 Add ff and group crates to Cargo workspace 2019-01-06 09:50:07 +00:00
Jack Grigg
b1ce3905d6 Add 'group/' from commit 'ef56fabf7ba3ed990a7886836c855298c9c5eefa'
git-subtree-dir: group
git-subtree-mainline: af9f9c17ee
git-subtree-split: ef56fabf7b
2019-01-06 09:38:21 +00:00
Jack Grigg
af9f9c17ee Add 'ff/' from commit '661558e0c8a5e02e08dac6530d39b2e38919aa04'
git-subtree-dir: ff
git-subtree-mainline: 07955092f3
git-subtree-split: 661558e0c8
2019-01-06 09:37:22 +00:00
Jack Grigg
07955092f3 Update librustzcash crate to use ff crate 2019-01-06 09:36:32 +00:00
Jack Grigg
00983c48cd Update zcash_proofs crate to use ff crate 2019-01-06 09:32:50 +00:00
Jack Grigg
538de482f3 Update zcash_primitives crate to use ff crate 2019-01-06 09:31:20 +00:00