Commit Graph

403 Commits

Author SHA1 Message Date
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
Conrado Gouvea 23d16130ce
split gencode job (#368) 2023-05-31 20:08:07 +00:00
natalie 8f216f3c81
Make CoefficientCommitment and VerifiableSecretSharingCommitment accessible (#361)
* Add funvtion to create new CoefficientCommitment (#323)

* Update function to create new Coefficient Commitment and add error case (#323)

* Add function for CoefficientCommitment to return associated Element (#323)

* Add serialize function for VerifiableSecretSharingCommitment (#323)

* Rename test for the serialize function of vss_commitment (#323)

* Add deserialize function for VerifiableSecretSharingCommitment (#323)

* Rename new to deserialize for CoefficientCommitment (#323)

* Refactor CoefficientCommitment::deserialize (#323)

Update README with developer information

* Improve deserialize function for vss_commitment (#323)

* Handle errors for deserialization function for vss_commitment (#323)

* Update changelog (#323)

Add v0.4.0 to changelog
Remove deprecated changelog file

* Refactor error in deserialize function for CoefficientCommitment

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

* Update vss commitment serialization and deserialization functions (#323)

* Refactor tests for serialization and deserialization of commitments (#323)

* Refactor test to remove PartialEq trait from Group Serialization (#323)

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

* Add serialize function for CoefficientCommitment (#323)

* Fix formatting (#323)

* Add back in error test for vss commitment deserialize (#323)

* Clean up commitment tests (#323)

---------

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2023-05-30 13:17:21 +00:00
dependabot[bot] 334447df1b
Update criterion requirement from 0.4 to 0.5 (#360)
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version.
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.4.0...0.5.0)

---
updated-dependencies:
- dependency-name: criterion
  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-05-25 15:43:43 +00:00
Deirdre Connolly 7a8e1e20c6
Update terminology.md re: bulletin board (#357) 2023-05-23 18:54:07 -03:00
natalie 635cebcd60
Update CHANGELOG.md for release v0.3.0 (#358)
Co-authored-by: conrado <conrado@zfnd.org>
2023-05-23 20:18:05 +00:00
Conrado Gouvea 6bca7a3918
add split_key; additional refactorings (#314)
* add split_key; additional refactorings

* Update frost-core/src/frost/keys.rs

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

* refactor reconstruct_key(); add tests for error cases

* rename keys functions

* leftover renames after sync with main

---------

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2023-05-19 09:54:52 +00:00
dependabot[bot] c1c3f2a11d
Bump arduino/setup-protoc from 1.1.2 to 1.2.0 (#353)
Bumps [arduino/setup-protoc](https://github.com/arduino/setup-protoc) from 1.1.2 to 1.2.0.
- [Release notes](https://github.com/arduino/setup-protoc/releases)
- [Commits](https://github.com/arduino/setup-protoc/compare/v1.1.2...v1.2.0)

---
updated-dependencies:
- dependency-name: arduino/setup-protoc
  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-05-18 15:14:24 +00:00
Deirdre Connolly c0dc69900c
Add terminology page to FROST book; flesh out module-level rustdoc fo… (#330)
* Add terminology page to FROST book; flesh out module-level rustdoc for core dkg

* Link to Feldman's VSS, clarify

* Add tss and vss definitions

* Missing word

* Clarify slightly

* Update book/src/terminology.md

* Update book/src/terminology.md
2023-05-17 15:48:36 +00:00
Deirdre Connolly 07aea68b03
First stab at multiscalar speedup for computing group commitments (#345)
* First stab at vartime multiscalar speedup for computing group commitments

* Update frost-core/src/frost.rs

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-05-17 00:06:22 +00:00
Deirdre Connolly 53a30278b9
Make multiscalar multiplication generic for any scalar field size (#347)
* Make multiscalar multiplication generic for any scalar field size, within some limits

* Passes ed448 tests

* remove extreme comparison

* Typo

* Typo

* small optimizations

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-05-16 23:48:51 +00:00