Commit Graph

413 Commits

Author SHA1 Message Date
Conrado Gouvea d7cb8de277 simplify ciphersuite encoding, without changing format 2023-08-30 19:49:24 -03:00
dependabot[bot] 478f914b31
Bump actions/checkout from 3.5.3 to 3.6.0 (#500)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.3 to 3.6.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.5.3...v3.6.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-08-29 19:40:45 +00:00
Conrado Gouvea 877e7c3830
fix clippy issues (#503) 2023-08-28 19:25:43 +00:00
Conrado Gouvea f3fd9102a3
check if iterators have the same size in multiscalar mul (#494) 2023-08-28 16:20:14 +00:00
Conrado Gouvea 60d9942f36
fix Field::deserialize() docs (#483) 2023-08-18 15:39:41 +00:00
Conrado Gouvea 9dffc6f516
fix some docs issues from audit (#485) 2023-08-18 14:52:51 +00:00
Conrado Gouvea 87346f4f3c
Fix unchecked access (#477)
* add test that reproduces issue

* remove usages of slicing and unwraps; add clippy lints

* check in aggregate() if identifiers are consistent
2023-08-16 18:38:36 +00:00
natalie bb94a34362
Add minimum participant constraints (#453)
* Add validation for missing identifier in signing package (#442)

* Add error handling for identifier having an invalid commitment (#442)

* Fixed comment (#442)

* Add validation for participant numbers (#443)

Add to split() and generate_secret_polynomial()

* Add participant validation for dkg and repairable (#443)
2023-08-16 18:38:29 +00:00
natalie ad07c9e4d4
Update ed25519-dalek (#474)
Update ed25519-dalek (#473)
2023-08-15 13:19:51 +00:00
Conrado Gouvea ba8086db5c
Simplify rerandomized FROST (#437)
* refactor Lagrange coefficient computation

* simplified rerandomized FROST

* switch to a Randomize trait, remove unaccurate comment

* remove manual rerandomization test

* improve comments

* removed unneeded alpha_share

* Apply suggestions from code review

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>

* frost-rerandomized: add serde feature

* add Randomizer type

* revert DuplicatedIdentifiers back to DuplicatedIdentifier

---------

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2023-08-14 16:15:22 +00:00
dependabot[bot] 4bf92b7a2c
Bump Swatinem/rust-cache from 1 to 2 (#467)
Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from 1 to 2.
- [Release notes](https://github.com/swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](https://github.com/swatinem/rust-cache/compare/v1.0.0...v2)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-14 10:49:15 +00:00
Conrado Gouvea 5ce9ba1364
frost-rerandomized: add serde feature (#449) 2023-08-14 10:44:59 +00:00
Conrado Gouvea 9413b49c05
Update test vectors (#438)
update test vectors to final version (v1) and update spec links
2023-08-14 10:39:15 +00:00
natalie b3a7927d7f
Add validation for missing identifier in signing package (#452)
* Add validation for missing identifier in signing package (#442)

* Add error handling for identifier having an invalid commitment (#442)

* Fixed comment (#442)

* Improve comment for number of signers validation

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>

---------

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2023-07-26 22:24:11 -03:00
dependabot[bot] ae12187367
Update curve25519-dalek requirement from =4.0.0-rc.3 to =4.0.0 (#450)
Updates the requirements on [curve25519-dalek](https://github.com/dalek-cryptography/curve25519-dalek) to permit the latest version.
- [Release notes](https://github.com/dalek-cryptography/curve25519-dalek/releases)
- [Commits](https://github.com/dalek-cryptography/curve25519-dalek/compare/4.0.0-rc.3...curve25519-4.0.0)

---
updated-dependencies:
- dependency-name: curve25519-dalek
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-24 15:05:53 +00:00
Conrado Gouvea 9b5d88da72
refactor Lagrange coefficient computation (#436)
* refactor Lagrange coefficient computation

* A line

* Apply suggestions from code review

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>

* address review comments; make compute_lagrange_coefficients() not pub by default

---------

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2023-07-19 16:47:09 +00:00
Antonín Dufka 46527085d5
fix curve name in frost-secp256k1 crate description (#435) 2023-07-10 16:52:33 +00:00
Conrado Gouvea 5fa17ed15c
update versions and changelog for 0.6.0 (#434)
* update versions and changelog for 0.6.0

* fix typos
2023-07-05 14:04:05 +00:00
Conrado Gouvea b8ca1678a4
remove stale TODOs (#431) 2023-07-05 13:19:25 +00:00
Deirdre Connolly 404cc361fd
Include the group public key in computing the binding factor (#410)
* Prelim implementation of including the group public key in computing the binding factor

Needs updated test vectors from the spec PoC and updated tests

* update test vectors

* add integration_test.rs to gencode which we forgot to do before

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-07-05 13:19:19 +00:00
Conrado Gouvea b2c605aac1
remove identifiers from structs that are communicated (#397)
* WIP of removing the identifier in structs that are communicated. Working for SigningCommitments for ristretto255

* removed identifier from SignatureShare

* remove identifiers from DKG packages

* replicate to other ciphersuites; simplify SignatureShare

* update changelog

* fix SignatureShare encoding
2023-07-05 10:39:25 +00:00
Conrado Gouvea 31913f4280
remove commented out code (#427) 2023-07-03 17:00:11 +00:00
Conrado Gouvea abc11227b9
zeroize remaining secret values (#428) 2023-07-03 10:10:45 +00:00
Conrado Gouvea 17c98d4412
convert all usages of from/to_bytes() to (de)serialize() (#426)
* convert all usages of from/to_bytes() to (de)serialize()

* changelog entry
2023-07-03 08:18:19 +00:00
dependabot[bot] 31c6f9eb79
Update curve25519-dalek requirement from =4.0.0-rc.2 to =4.0.0-rc.3 (#416)
Updates the requirements on [curve25519-dalek](https://github.com/dalek-cryptography/curve25519-dalek) to permit the latest version.
- [Release notes](https://github.com/dalek-cryptography/curve25519-dalek/releases)
- [Changelog](https://github.com/dalek-cryptography/curve25519-dalek/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dalek-cryptography/curve25519-dalek/compare/4.0.0-rc.2...4.0.0-rc.2)

---
updated-dependencies:
- dependency-name: curve25519-dalek
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-30 18:05:20 -03:00
dependabot[bot] e043e84264
Update itertools requirement from 0.10.5 to 0.11.0 (#411)
Updates the requirements on [itertools](https://github.com/rust-itertools/itertools) to permit the latest version.
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-itertools/itertools/compare/v0.10.5...v0.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-30 16:48:01 -03:00
Conrado Gouvea 8531855bd7
implement common traits for public types (#422) 2023-06-30 19:15:56 +00:00
Conrado Gouvea 4e134f50d6
allow specifying identifiers in generate_with_dealer (#419) 2023-06-30 18:29:26 +00:00
Conrado Gouvea 78b5c44de0
add support for deriving identifiers from arbitary strings (#418) 2023-06-30 15:45:46 +00:00
Conrado Gouvea bed23c3e1d
remove unused dependencies (#423) 2023-06-30 13:24:59 +00:00
Conrado Gouvea de351a3edf
add RandomizedParams::from_randomizer() (#421) 2023-06-30 10:56:14 +00:00
Conrado Gouvea 19b4dbd874
add Error::culprit() to make it easier to find the identifier of misbehaving participants (#420) 2023-06-30 10:56:09 +00:00
Francisco Gindre 338ab355ec
ZF FROST Book text proof-read/review (#415)
* Replace "Distribtuted" with "Distributed"

* rephrase to first person plural.

The performance section actually refers to some individual that is
not mentioned as author of the section and it's confusing who is
alluded
2023-06-26 17:25:35 +00:00
natalie ad636e80a5
Release v0.5.0 (#413)
* Update version numbers to v0.5.0 (#412)

* Update changelog for release v0.5.0 (#412)

* Bump frost-core versions to v0.5.0 in ciphersuites (#412)
2023-06-23 15:38:37 +00:00
Conrado Gouvea 7358b667ca
expand serde tests (#409)
using samples in serde tests
2023-06-23 14:22:33 +00:00
Conrado Gouvea c851bbb8fa
Remove pub from fields, add getters (#401)
* derive getters; remove any existing ones; use BTreeMap for signing commitments

* add recreation tests

* make tests ciphersuite-specific
2023-06-23 14:07:34 +00:00
Conrado Gouvea 47121537e8
Support serde (#398)
* Implement serde for network messages.

* Make sure marker type implements serde.

* add serde support to all required structs

* use serdect

* gate under serde feature

* ci: add build with default features job

* add serde tests and required changes/fixes

* add support for encoding ciphersuite ID

---------

Co-authored-by: David Craven <david@craven.ch>
2023-06-23 09:58:22 +00:00
Deirdre Connolly 8b09d9d698
Add a comment about why we hash the message and the set of nonce comm… (#407)
Add a comment about why we hash the message and the set of nonce commitments as part of creating the preimage for the binding factor
2023-06-22 09:27:02 +00:00
Conrado Gouvea 8defd2c058
expose missing structs in ciphersuite crates (#405)
expose VerifyingShare, NonceCommitment and SignatureResponse in ciphersuite crates
2023-06-22 09:26:56 +00:00
natalie c03402baa5
Expose signing share in ciphersuite libraries (#404)
* Add SigningShare to ciphersuite libraries (#403)

* Update ciphersuite libraries to use own implementation of SigningShare and not generic (#403)
2023-06-21 16:51:50 +00:00
Conrado Gouvea 30433ce029
expand docs (#371)
* expand docs

* Apply suggestions from code review

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>

* address comments, reflow some paragraphs

* tutorial mostly done

also cleaned up README example for extracting snippets; changed tests for consitency

* docs: add DKG; organize sections; remove stale docs

* run gencode

* Apply suggestions from code review

Co-authored-by: Pili Guerra <mpguerra@users.noreply.github.com>

---------

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
Co-authored-by: Pili Guerra <mpguerra@users.noreply.github.com>
2023-06-21 08:22:45 +00:00
dependabot[bot] 75aedce792 Bump reviewdog/action-actionlint from 1.37.0 to 1.37.1
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.37.0 to 1.37.1.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.37.0...v1.37.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-20 15:03:58 -04:00
natalie 84a3923307
Update mergify yaml (#380)
Update mergify yaml (#377)
2023-06-16 12:23:03 +02:00
dependabot[bot] 685ade90d1
Bump actions/checkout from 3.5.2 to 3.5.3 (#394)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.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/v3.5.2...v3.5.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-13 15:30:08 +00:00
dependabot[bot] 04440a36f8
Update ed25519-zebra requirement from 3.0.0 to 4.0.0 (#393)
Updates the requirements on [ed25519-zebra](https://github.com/ZcashFoundation/ed25519-zebra) to permit the latest version.
- [Release notes](https://github.com/ZcashFoundation/ed25519-zebra/releases)
- [Changelog](https://github.com/ZcashFoundation/ed25519-zebra/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ZcashFoundation/ed25519-zebra/compare/3.0.0...4.0.0)

---
updated-dependencies:
- dependency-name: ed25519-zebra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 14:50:57 -03:00
natalie a6886e4a3f
Release v0.4.0 (#378)
* Update crate version to v0.4.0 (#377)

* Update changelog (#377)

* Update frost-core version in ciphersuites (#377)
2023-06-05 14:44:32 +00:00
Conrado Gouvea c773edf452
expand list of gencode-generated files (#370) 2023-06-01 18:53:01 +00:00
Deirdre Connolly e9cd8ecc09
Benchmark plot script (#356)
* add first version of benchmark post

* add benchmarks table

* document plot.py

* Mention cargo-criterion installation in plot.py pydoc

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-06-01 14:37:59 -04:00
natalie 2668555f38
Refactor test folders (#366)
* move test functions that differ from other ciphersuites to make gencode simpler to use (#364)

* Refactored folder structure for ristretto255 (#364)

* Add batch and signing tests folders to ristretto255 (#364)

* Refactor test folders for ed25519 (#364)

* Refactor test folders for ed448 (#364)

* Refactor test folders for ed448 (#364)

* Refactor test folders for secp256k1 (#364)

* Refactor test folders for frost-core (#364)

Update ciphersuites due to refactoring in core

* Update coverage tool to exclude new test files (#364)

* Rename signing_tests to ciphersuite_generic_tests to match frost-core (#364)

* Set default branch as main in codecov (#364)

* Fix incorrect file name in gencode (#364)

* Remove test file targets in gencode and replace with only md files (#364)

* Rename helper_functions to helpers (#364)

Remove unecessary test traits

* Rename ciphersuite tests (#364)

* Rename test_helpers to helpers (#364)

* move tests to integration_tests (#364)

* Re-add dkg.rs and repairable.rs to gendoc (#364)

* Refactored rest of ciphersuite integration tests (#364)

* Fix fmt in gencode (#364)
2023-05-31 21:23:29 +00:00
Conrado Gouvea c7751339cc
format Rust code generated by gencode (#367) 2023-05-31 20:08:12 +00:00