Commit Graph

83 Commits

Author SHA1 Message Date
Jack Grigg 6cb2721f2a zcash_primitives 0.7.0
Extracted from: e952ff637e
2022-06-24 17:00:39 +00:00
str4d 38063ab9e7 Merge pull request #553 from zcash/release-0.6.0
Release `zcash_primitives 0.6.0` et al

Extracted from: 4d282798aa
2022-05-11 00:56:09 +01:00
Jack Grigg 6d881b91f5 zcash_primitives 0.6.0
Extracted from: 3ecfd26d79
2022-05-10 23:33:05 +00:00
str4d f46cc820d8 Merge pull request #549 from zcash/ff-0.12
Migrate to `ff 0.12`

Extracted from: b8dee161e1
2022-05-06 21:59:39 +01:00
Jack Grigg 742255e940 Migrate to `ff 0.12`
Extracted from: 144512b547
2022-05-06 20:03:49 +00:00
str4d 19b724c202 Merge pull request #518 from zcash/merge-non-consensus-changes-3
Merge non-consensus changes

Extracted from: c423167b30
2022-02-28 23:48:24 +00:00
Jack Grigg c687881252 Merge branch 'non-consensus-changes-on-branchid-37519621' into merge-non-consensus-changes-3
Extracted from: 91d9a42a08
2022-02-28 23:22:40 +00:00
str4d 9965b51f2f Merge pull request #516 from nuttycom/update_incrementalmerkletree
Update the versions of incrementalmerkletree & orchard.

Extracted from: cfb49cfd52
2022-02-24 20:55:22 +00:00
Kris Nuttycombe b0a1a6ba6b Update MSRV to 1.56.1
Extracted from: 600c06a408
2022-02-24 12:26:14 -07:00
str4d 4a11d8fa4e Merge pull request #511 from zcash/merge-non-consensus-changes-again
Merge non consensus changes again

Extracted from: ff243b4f00
2022-02-14 18:58:09 +00:00
Jack Grigg a968c77b90 Merge branch 'non-consensus-changes-on-branchid-37519621' into merge-non-consensus-changes-again
Extracted from: dbfa673500
2022-02-14 18:11:09 +00:00
str4d 99276bf8c2 Merge pull request #501 from nuttycom/fix_beta_lints
Fix Clippy beta linting complaints.

Extracted from: 682d5235c2
2022-02-02 23:31:33 +00:00
Kris Nuttycombe 8a5c0f8946 Fix Clippy beta linting complaints.
Extracted from: a304c3953b
2022-02-02 16:02:45 -07:00
str4d a107ed3c80 Merge pull request #504 from nuttycom/merge_non_consensus_changes
Merge all non-consensus changes staged for NU5 to `master`.

Extracted from: e63979e80a
2022-02-02 22:25:30 +00:00
Kris Nuttycombe e785fcb321 Merge pull request #341 from nuttycom/autoshield-poc-daa
Add auto-shielding to the data access API

Extracted from: 4f4a25252f
2022-02-02 14:26:05 -07:00
Kris Nuttycombe 0a7ad528ed Apply suggestions from code review
Co-authored-by: str4d <jack@electriccoin.co>


Extracted from: 3a20176092
2022-01-27 15:00:37 -07:00
str4d f6e73e9240 Merge pull request #470 from zcash/zcash_note_encryption-0.1.0
`zcash_note_encryption 0.1.0`

Extracted from: 34bc61da0b
2021-12-17 23:43:39 +00:00
Jack Grigg 86f7e3f1a3 zcash_note_encryption 0.1.0
Extracted from: 142a38e792
2021-12-17 20:00:46 +00:00
Jack Grigg ea7f718863 zcash_note_encryption: License files and readme
Extracted from: c4cbb2dd74
2021-12-17 15:16:17 +00:00
Jack Grigg d6897cc8c1 zcash_note_encryption: Clean up dependencies
Several dependencies were copied over during the extraction of this
crate's logic from `zcash_primitives`, but are in fact only required for
the protocol-specific logic. We can also remove the `std` feature flag,
since we no longer have a dependency on `blake2b_simd` that needs its
`std` flag exposed for performance.


Extracted from: e8a755f633
2021-12-17 15:06:22 +00:00
Jack Grigg 312472ffbe zcash_note_encryption: Crate documentation
Extracted from: d511a788c4
2021-12-17 15:06:22 +00:00
Jack Grigg b12b4124ed zcash_note_encryption: Document APIs
Extracted from: edc3557e30
2021-12-17 14:12:18 +00:00
Jack Grigg 7b52b15cfa zcash_note_encryption: Add `doc_cfg` annotations
Extracted from: 5409291b0c
2021-12-17 14:12:18 +00:00
str4d 8e557918aa Merge pull request #469 from zcash/zcash_note_encryption-api-cleanups
`zcash_note_encryption` API cleanups

Extracted from: 905c6e2dd0
2021-12-17 13:42:42 +00:00
Jack Grigg 9994ddc70d zcash_note_encryption: Constrain outgoing ciphertext size
This replaces a length assertion, making the API more predictable.


Extracted from: 76f364593a
2021-12-17 05:23:53 +00:00
Jack Grigg 1ac6d5b8fe zcash_note_encryption: Constrain `ShieldedOutput` ciphertext size
Previously we were returning the ciphertext as a slice, and then
asserting its length within the APIs the caller passed it into. Now
instead we require the caller to define whether or not the output is
compact, to make the API more predictable.

This doesn't place any additional constraints on users of this trait,
because the assertions already prevented a full output from being passed
to a compact trial decryption API.


Extracted from: 4fcd83d74e
2021-12-17 05:23:53 +00:00
Jack Grigg 7ab76d8574 zcash_note_encryption: Remove `Domain::check_epk_bytes`
`Domain::derive_esk` provides sufficient information to determine
whether or not we need to enforce `EphemeralSecretKey`-specific
decryption checks, as it returns `None` for pre-ZIP 212 notes.


Extracted from: d54e1f0bf7
2021-12-17 04:30:57 +00:00
Jack Grigg 34277d4e38 zcash_note_encryption: Use `*PlaintextBytes` structs in `Domain` APIs
`Domain::parse_note_plaintext_without_memo_ivk` is used with both full
note plaintexts and compact notes, so continues to accept a slice. For
all other `Domain` APIs, we constrain the input to `NotePlaintextBytes`
or `OutPlaintextBytes` as appropriate.


Extracted from: 7c1687dcc1
2021-12-17 04:30:57 +00:00
Jack Grigg df05017f1a zcash_note_encryption: Place pre-ZIP 212 APIs behind a feature flag
Extracted from: 01c768dbeb
2021-12-17 04:30:57 +00:00
jarys f79d84fe59 Add `#![no_std]` support for zcash_note_encryption (#450)
Co-authored-by: str4d <thestr4d@gmail.com>

Extracted from: 0ec7f97c97
2021-11-24 13:58:52 +00:00
ying tong 96fb053f6d Merge pull request #452 from zcash/zcash_note_encryption-batchdomain
Introduce `zcash_note_encryption::BatchDomain` trait

Extracted from: c48bb4def2
2021-11-17 15:13:43 +01:00
Jack Grigg df51fbc543 zcash_note_encryption: Move domain batch APIs into a BatchDomain trait
These are the only allocating APIs; this change makes it possible to
make the crate no-std compatible.


Extracted from: 35e7542065
2021-11-17 12:14:26 +00:00
str4d 709c25bcdf Merge pull request #439 from str4d/ff-0.11
ff 0.11, group 0.11, etc.

Extracted from: 85780f994d
2021-09-13 17:08:27 +01:00
Jack Grigg 13d5f6f38a ff 0.11, group 0.11, etc.
Extracted from: 65e1d32774
2021-09-09 18:20:37 +01:00
Kris Nuttycombe 943e6f5c20 Fix a couple of broken doc links.
Extracted from: 5541552453
2021-09-01 14:01:47 -06:00
str4d b7a3885b7f Merge pull request #428 from nuttycom/public_compact_size
Move the CompactSize, Vector, Array and Option encodings to a new zcash_encoding crate.

Extracted from: edcde252de
2021-09-01 20:45:28 +01:00
Kris Nuttycombe 1fd5c8d748 Fix stray clippy complaints.
Extracted from: fa092da456
2021-08-31 13:19:24 -06:00
Jack Grigg b0ff1f9914 zcash_note_encryption: Switch to chacha20poly1305 crate
Extracted from: f03f05f251
2021-08-30 15:03:39 +01:00
str4d 6770db186b Merge pull request #425 from str4d/batch-note-decryption
Batch note decryption

Extracted from: 13b023387b
2021-08-11 00:47:27 +01:00
Jack Grigg 7f3ca6d79d zcash_note_encryption: Add support for batch-parsing `ephemeral_key`
This is useful when the underlying curve requires an inversion to parse
an encoded point (such as for Jubjub).


Extracted from: 4b4dd2ea55
2021-08-10 02:57:11 +01:00
Jack Grigg 2b4a88be36 zcash_note_encryption: Add batched trial decryption APIs
Extracted from: 8a615c4393
2021-08-10 02:17:10 +01:00
str4d 2040c32078 Merge pull request #423 from str4d/trial-decryption-optimisation
Store OutputDescription `ephemeral_key` as bytes

Extracted from: 51aa991ce0
2021-08-10 02:16:17 +01:00
Jack Grigg 53e008b278 Use `EphemeralKeyBytes` type in place of `[u8; 32]`
Extracted from: 279a8b6bb6
2021-08-09 21:28:42 +01:00
str4d 0e533078f4 Merge pull request #421 from str4d/bench-compact-decryption
zcash_primitives: Benchmark trial decryption of compact outputs

Extracted from: 99d877e22d
2021-08-05 23:29:16 +01:00
Jack Grigg e7f43cbe25 Disable default benchmark harness for all workspace crates
This is necessary in order to provide criterion-specific arguments to
`cargo bench`, such as `--profile-time`.


Extracted from: 0f15743200
2021-08-05 22:39:36 +01:00
str4d 158edbcb20 Merge pull request #400 from str4d/rework-shieldedoutput-api
zcash_note_encryption: Add `ShieldedOutput::ephemeral_key() -> EphemeralKeyBytes`

Extracted from: cc533a9da4
2021-06-10 19:22:03 +01:00
Jack Grigg 3999630051 zcash_note_encryption: Add `ShieldedOutput::ephemeral_key() -> EphemeralKeyBytes`
This replaces the `ShieldedOutput::epk() -> &Domain::EphemeralPublicKey`
which could not be satisfied by output types that did not parse epk.


Extracted from: c7c79d266e
2021-06-10 18:35:19 +01:00
str4d 3a105f6c07 Merge pull request #395 from str4d/bump-deps
Migrate to bitvec 0.22, ff 0.10, etc.

Extracted from: 2ba8073971
2021-06-04 22:36:29 +01:00
Jack Grigg 53115e4b43 Migrate to bitvec 0.22, ff 0.10, etc.
Requires patching three dependencies:

- bellman is pending a new release.
- nom is part of the funty breakage; we are blocking on a new release.
- orchard is in development.


Extracted from: 1222391dd7
2021-06-04 22:02:48 +01:00
str4d 5204d69665 Merge pull request #390 from str4d/note-decryption-fixes
zcash_note_encryption: Note decryption fixes

Extracted from: c13a5d3f3d
2021-06-02 22:22:35 +01:00