Commit Graph

479 Commits

Author SHA1 Message Date
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
dependabot[bot] a8275e12dd
Bump codecov/codecov-action from 3.1.3 to 3.1.4 (#348)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.3...v3.1.4)

---
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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-16 19:27:28 +00:00
David Craven 4055cb9439
Errors caused by protocol violations should contain the misbehaving p… (#341)
Errors caused by protocol violations should contain the misbehaving party.
2023-05-09 01:51:29 +00:00
Conrado Gouvea cd74efa13d
gencode repairable improvement (#334)
* make gencode generate repairable.rs

* fix build issues in ciphersuite-specific repairable.rs

* copy repairable docs from frost-core into ciphersuites modules

* use full ciphersuite name in repairable.rs to make gencode work

* gencode: use frost-core repairable docs as canonical source
2023-05-02 15:12:04 +00:00
Conrado Gouvea 4a112230cb
Change gencode to handle repairable module; fix build issues (#329)
* make gencode generate repairable.rs

* fix build issues in ciphersuite-specific repairable.rs

* copy repairable docs from frost-core into ciphersuites modules

* use full ciphersuite name in repairable.rs to make gencode work
2023-04-28 02:16:03 +00:00
Conrado Gouvea 98836fad4d
remove redundant round2::SigningPackage (#333) 2023-04-27 21:52:38 +00:00
David Craven dad04f46ee
Add from_scalar. (#331) 2023-04-27 17:40:55 +00:00
Conrado Gouvea 9985c9660e
test on beta instead of nightly (#287)
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2023-04-25 00:23:48 -04:00
dependabot[bot] 1ef01efc05
Bump actions/checkout from 3.3.0 to 3.5.2 (#315)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.5.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.3.0...v3.5.2)

---
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-04-25 03:59:45 +00:00
dependabot[bot] 791c4c65f3
Bump codecov/codecov-action from 3.1.2 to 3.1.3 (#316)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.2...v3.1.3)

---
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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-25 03:59:39 +00:00
Deirdre Connolly f1710d5af2 Don't deploy preview when dependabot 2023-04-24 23:31:06 -04:00
natalie 0b981618cd
Add repair share functionality (#281)
* Add compute random value function for repair share functionality (#41)

This is step 1 of 3

* Add compute random value function for repair share functionality for each ciphersuite (#41)

* Add compute_sum_of_random_values function for repair share functionality (#41)

This is step 2 of 3

* Add recover_share function for repair share functionality (#41)

This is step 3 of 3

* Add communication rounds functions for repair share functionality for each ciphersuite (#41)

Add compute_sum_of_random_variables function
Add recover_share function

* Fix recover_share tests so they test the right thing

Fix secp256 recover share test values
Fix ristretto255 recover share test values
Fix ristretto255 compute sum of random values test values

* Rewrite compute_random_values to generate_random_values for repair share functionality (#41)

Test generate_random_values directly
End to end test to be added in another commit
Updated gendoc to use original file values to fix clippy complaints

* Rename functions and update documentation for repair (#41)

* Add end to end test for repair share (#41)

Fix lagrange coefficient calculation

Co-authored-by: conrado <conradoplg@gmail.com>

* Fix formatting (#41)

* Remove comment (#41)

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

* Update documentation for step 1 of RTS (#41)

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

* Update documentation for method of computing step 1 of RTS (#41)

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

* Rename repair share functions (#41)

* Improve documentation for Repairable Threshold Scheme (#41)

* Remove unecessary code from repairable tests (#41)

* Update repairable documentation

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

* Rename steps in repairable to be more consistent with DKG pattern (#41)

* Update gitignore (#41)

* Update repairable to use new keygen_with_dealer signature (#41)

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

---------

Co-authored-by: conrado <conradoplg@gmail.com>
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2023-04-24 15:27:14 +00:00
Deirdre Connolly 6554f2ba85 Paths on PR 2023-04-21 20:49:10 -04:00
Deirdre Connolly 27a9fc06b2 Don't run docs publish workflow when cargo files updated
We're not publishing rustdoc with this flow, just the book
2023-04-21 19:31:11 -04:00
Deirdre Connolly a6bdf68dc2
Bumped our frost-* versions inline with our crate releases (#313) 2023-04-21 00:38:15 +00:00
Deirdre Connolly fc425a31ff s/secrets/vars/ 2023-04-20 19:18:40 -04:00
Deirdre Connolly db8f48b901 Apply suggestions from code review 2023-04-20 19:12:26 -04:00
Deirdre Connolly d8c5575c61 preview channel for book 2023-04-20 19:12:26 -04:00
Deirdre Connolly a981fdad85 FROST book firebase config 2023-04-20 18:44:04 -04:00
Deirdre Connolly 7828d58574 Create docs.yml workflow
I've created the `frost-book` Firebase project but couldn't create the service account key for it as the key gen 
permissions seem to be locked down.: https://github.com/w9jds/firebase-action
2023-04-20 18:19:22 -04:00
Conrado Gouvea 5c5ad14de4 bump other crates to 0.2.0 2023-04-20 11:52:26 -04:00
Conrado Gouvea 5c19c643f5
bump version to 0.2.0, update changelog (#308) 2023-04-20 00:37:46 +00:00
dependabot[bot] 37437daf5d
Bump reviewdog/action-actionlint from 1.36.0 to 1.37.0 (#295)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.36.0 to 1.37.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.36.0...v1.37.0)

---
updated-dependencies:
- dependency-name: reviewdog/action-actionlint
  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-04-18 22:04:59 +00:00
dependabot[bot] 7c8c24ea28
Bump codecov/codecov-action from 3.1.1 to 3.1.2 (#299)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.1...v3.1.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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-18 20:01:20 +00:00
Conrado Gouvea ec263b120f bump version and update changelog for frost-core 0.1.1 2023-04-18 15:55:53 -04:00