Commit Graph

270 Commits

Author SHA1 Message Date
Conrado Gouvea f8ad8ea992
update to frost-rerandomized 0.2.0; change keygen_with_dealer to return HashMap (#59) 2023-04-20 22:00:17 +02:00
dependabot[bot] 32dc17a677
Bump actions/checkout from 3.3.0 to 3.4.0 (#50)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-17 12:01:15 -03:00
Conrado Gouvea 50620fc2f4
bump to 0.5.0; don't enable frost-rerandomized with std (#48)
* bump to 0.4.1; don't enable frost-rerandomized with std

* Apply suggestions from code review

Co-authored-by: str4d <thestr4d@gmail.com>

* add rust-version to Cargo.toml

* use published version of frost-rerandomized

---------

Co-authored-by: str4d <thestr4d@gmail.com>
2023-03-09 17:05:07 -03:00
Conrado Gouvea 3ac90e2e0a
fix calls to renamed DKG functions; move dkg code to its own file (#49) 2023-03-09 16:03:55 -03:00
Conrado Gouvea 797c18c213 bump MSRV to 1.60.0 in rust-toolchain 2023-03-01 18:02:39 -05:00
Conrado Gouvea cf7a577478 test MSRV in CI 2023-03-01 18:02:39 -05:00
str4d eadc48879a
Migrate to `group` 0.13, `jubjub` 0.10, `pasta_curves` 0.5 (#44) 2023-02-28 14:59:05 -03:00
Conrado Gouvea 08bb408846
add Pallas and Jubjub ciphersuites and FROST support (#33)
* clippy fixes; remove old FROST code

* add RedPallas ciphersuite and FROST support

* organized code

* simplified version

* remove randomized_frost; point to frost-randomized crate

* move rerandomized test to frost-rerandomized; clean up dependencies; add 'frost' feature

* remove stale comment

* add Jubjub support

* add torsion and identity checks where needed; tests

* Apply suggestions from code review

Co-authored-by: Marek <mail@marek.onl>

* Apply suggestions from code review

Co-authored-by: Marek <mail@marek.onl>

* change Jubjub serialize() to use to_bytes(); add comment to Pallas serialize()

* update frost-rerandomized version

* unpin nightly Rust in coverage.yaml

* fix conditional hex dependency

* move FROST code inside frost folder

* Apply suggestions from code review

Co-authored-by: Marek <mail@marek.onl>

---------

Co-authored-by: Marek <mail@marek.onl>
Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2023-02-28 00:01:50 +01:00
Deirdre Connolly 507dcdf695 Release 0.4.0 2023-01-30 22:25:00 -05:00
Conrado Gouvea 805ef4b5c0
port improvements from Zebra (#40)
* simplify fmt::Debug impls with new hex_if_possible()

* Update src/signature.rs authors

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2023-01-30 16:16:53 -05:00
Conrado Gouvea 31f29420c8
unpin nightly Rust in coverage.yaml (#39) 2023-01-16 16:32:17 -03:00
dependabot[bot] 991cf42a01 Bump actions/checkout from 3.0.2 to 3.3.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.2 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.2...v3.3.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-12 10:09:00 -05:00
Conrado Gouvea 6f0dffc12e clippy fixes; remove old FROST code 2023-01-02 19:20:08 -05:00
dependabot[bot] 4b0714b8ca Bump codecov/codecov-action from 3.1.0 to 3.1.1
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-02 19:19:22 -05:00
dependabot[bot] 5e98bcf4f6 Update criterion requirement from 0.3 to 0.4
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version.
- [Release notes](https://github.com/bheisler/criterion.rs/releases)
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.3.0...0.4.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-02 19:19:12 -05:00
Taylor Hornby ff9a4ddd64
Label Zcash consensus rules in reddsa (#27) 2022-09-12 16:47:24 -03:00
Tomas Krnak 14d4622619
Fix alloc feature (#28)
* Fix alloc feature

* Update Cargo.toml

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2022-09-12 16:45:43 -03:00
Conrado Gouvea 51b1519b0c fix category (no_std -> no-std) 2022-05-13 15:25:01 -04:00
Conrado Gouvea 4b25d06c5d
v0.3.0 release (#24) 2022-05-10 19:36:35 -03:00
Conrado Gouvea ebea547689 ci: test no_std build 2022-05-10 12:05:06 -07:00
Tomas Krnak ed11f440ce
Add `no-std` support (#11)
* Add no_std support

* Update CHANGELOG

* Remove unused alloc feature flag

* Remove a forgotten comment

Co-authored-by: str4d <thestr4d@gmail.com>

* Make zeroize dependency optional

* Add alloc feature flag

* Clean the code by outer attributes

* use 2021 edition

Co-authored-by: str4d <thestr4d@gmail.com>
Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2022-05-06 11:57:45 -03:00
Jack Grigg 0e912de300 Migrate to `group` 0.12
Also noted that MSRV was bumped (accidentally) to 1.56 in the previous
release, and updated `rust-toolchain` to reflect it.
2022-05-05 18:23:07 -04:00
dependabot[bot] 62e5638d48 Bump codecov/codecov-action from 2.1.0 to 3.1.0
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.1.0 to 3.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.1.0...v3.1.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 22:20:03 -04:00
dependabot[bot] 4f63f77c61 Bump actions/checkout from 3.0.0 to 3.0.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.0 to 3.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.0...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 22:19:40 -04:00
dependabot[bot] 3c5f87e1dd
Bump actions/checkout from 2.4.0 to 3 (#14)
* Bump actions/checkout from 2.4.0 to 3

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.4.0...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* full semver

* full semver

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2022-03-16 21:00:06 -04:00
Dimitris Apostolou c95eed9509
Fix typo (#13) 2022-01-20 11:24:06 -03:00
Deirdre Connolly af23f74080
CHANGELOG for 0.2.0 2022-01-19 18:04:48 -05:00
str4d cadc865816
Migrate to pasta_curves 0.3, blake2b_simd 1 (#10)
* Migrate to pasta_curves 0.3, blake2b_simd 1

Also removes the unused digest dependency.

* reddsa 0.2.0

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2022-01-19 17:53:05 -05:00
Deirdre Connolly 093087eb1d
Update the include_str support to fix CI on nightly (#12)
* Update the include_str support to fix CI on nightly

* Upgrade coverage.yaml to use cargo-llvm-cov

* Show CodeCov comment on PRs
2022-01-19 17:42:12 -05:00
Jack Grigg 7b1229a692 reddsa 0.1.0 2021-11-19 23:09:00 +00:00
Jack Grigg d99a256b6f Set MSRV to 1.51
The `doc(include)` logic is placed back behind the `nightly` feature
flag, as it requires 1.54.
2021-11-19 23:06:53 +00:00
Jack Grigg b91559345c Fix trait ambiguity in SealedScalar trait impl
The FieldExt and SealedScalar traits have a method with the same name,
and the latter's is implemented for pallas::Scalar as a call to the
former's implementation. However, FieldExt was not in scope. In debug
mode, Rust was calling SealedScalar's method recursively, causing a
stack overflow. However in release mode, Rust was able to find the
FieldExt method fine (and does not appear to just be optimizing out the
code, as the result is valid). To ensure this does not occur, we now
explicitly use the FieldExt method implementation.
2021-11-18 21:16:07 +00:00
Jack Grigg 0627048eba Add Orchard signature types for RedPallas 2021-11-18 21:16:07 +00:00
Jack Grigg 878dd1351b Introduce SpendAuth: SigType and Binding: SigType traits
The prior `SpendAuth` and `Binding` enums have been renamed to
`sapling::{SpendAuth, Binding}`. These might subsequently be removed
from the crate entirely (moving into a wrapping `redjubjub` crate).

The code assumes that scalar and point representations are [u8; 32],
which will be the case for all curves we instantiate RedDSA with for
Zcash.
2021-11-18 21:15:03 +00:00
Jack Grigg 7e80588550 Rename crate to reddsa 2021-11-18 21:14:08 +00:00
str4d a32ae3fc87
Don't reject small-order verification keys (#137)
* Don't reject small-order verification keys

Fixes ZcashFoundation/redjubjub#127.

* Added missing changelog entries
2021-11-18 15:53:35 -03:00
dependabot[bot] 2f240d885d
Update jubjub requirement from 0.7 to 0.8 (#131)
* Update jubjub requirement from 0.7 to 0.8

Updates the requirements on [jubjub](https://github.com/zkcrypto/jubjub) to permit the latest version.
- [Release notes](https://github.com/zkcrypto/jubjub/releases)
- [Changelog](https://github.com/zkcrypto/jubjub/blob/main/RELEASES.md)
- [Commits](https://github.com/zkcrypto/jubjub/commits/0.8.0)

---
updated-dependencies:
- dependency-name: jubjub
  dependency-type: direct:production
...
2021-11-18 15:24:11 -03:00
Deirdre Connolly 3db05e29f7 Remove extra module-level doc to allow doc = include_str to work 2021-06-22 16:37:36 -04:00
Alfredo Garcia 751af8a76b remove external_docs 2021-06-22 16:37:36 -04:00
Alfredo Garcia ced2819690 another try 2021-06-22 16:37:36 -04:00
Alfredo Garcia 79b8b52baa try to fix the docs build 2021-06-22 16:37:36 -04:00
dependabot[bot] 5105bcc865 Bump codecov/codecov-action from 1.5.0 to 1.5.2
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1.5.0 to 1.5.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.5.0...v1.5.2)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-21 17:07:49 -04:00
Jack Grigg f772176560 jubjub 0.7 2021-06-18 14:05:08 -04:00
Alfredo Garcia fa3c602698
Implement the messages spec (#114)
* start messages and validation

* add missing docs to constants

* change validation to matches, fix constant doc

Co-authored-by: teor <teor@riseup.net>

* fix the build

* validate share_commitment

* add new constants and validations

* fix validation

* derive serde Serialize and Deserialize in all messages structs

* update created structs

Co-authored-by: teor <teor@riseup.net>

* fix build

* define and use a new MAX_SIGNERS constant

* change group_public type

* add some test cases

* add validation and serialization tests for SigningCommitments

* add validation and serialization test to SigningPackage

* change some fields order matching the spec

* fix field order in tests according to last updates to the spec

* implement serialize and deserialize for ParticipantId

* move serde-json to dev-dependencies section

* change to pub(crate)

* fix serialize of VerificationKey

* add assert to serialize

* add note, fix typo

* improve some code in tests

* test serialization of individual fields

* start messages and validation

* add missing docs to constants

* change validation to matches, fix constant doc

Co-authored-by: teor <teor@riseup.net>

* fix the build

* validate share_commitment

* add new constants and validations

* fix validation

* define and use a new MAX_SIGNERS constant

* change group_public type

* change some fields order matching the spec

* change message fields to new spec

* remove some non needed conversions

* use a BTreeMap to guarantee the order

* remove some calls to `clone()` by implementing `Copy`

* change message type in frost and add validate_signatureshare test

* change `share_commitment` to BTreeMap

* add `serialize_signatureshare` test

* add aggregatesignature tests

* add some test header messages utility functions

* add a setup utility

* move the general serialization checks into an utility function

* fi some typos

* add and use a `generate_share_commitment` utility

* add create_signing_commitments utility function

* improve the serialization tests

* make room for prop tests

* add arbitrary tests for serialization

* remove allow dead code from messages

* fix some imports

* make signature module public only to the crate

* simplify a bit the frost tests

* improve the generated docs

* add a `prop_filter` to Header arbitrary

* (ab)use proptest_derive

* improve validation for Message

* improve some utility functions

* change frost to serialization id conversion

* add a quick btreemap test

* change the `MsgType` to `u32`

* add no leftover bytes checks

* add a full_setup utility

* add map len checks

Co-authored-by: teor <teor@riseup.net>
2021-06-16 16:13:23 -03:00
Alfredo Garcia 00190de7c6 add missing checks
Co-authored-by: teor <teor@riseup.net>
2021-06-15 17:10:38 -04:00
Alfredo Garcia c0688b0fe4 Convert `share_commitment` to a BTreeMap
Co-authored-by: teor <teor@riseup.net>
2021-06-15 17:10:38 -04:00
Alfredo Garcia 7d357496fb use BTreeMap, update sizes, etc
Co-authored-by: teor <teor@riseup.net>
2021-06-15 17:10:38 -04:00
Alfredo Garcia 9d5e9fd547 change type to `SignatureResponse` 2021-06-15 17:10:38 -04:00
Alfredo Garcia b05edb8689 use FrostSignature instead of Scalar primitive 2021-06-15 17:10:38 -04:00
Alfredo Garcia a536404e59 update a field description 2021-06-15 17:10:38 -04:00