Commit Graph

75 Commits

Author SHA1 Message Date
Conrado Gouvea c205ef73e0
Fix --no-default-features (#630)
* fix --no-default-features; also make sure everything compilers with every feature combination

* backport some fixes from no-std PR

* update CHANGELOG
2024-04-10 15:13:31 +00:00
Conrado Gouvea d048057a21
1.0.0 release (#615) 2024-02-19 19:56:58 +00:00
Conrado Gouvea 9921b1218e
support serializing SigningNonces (#595) 2024-01-16 20:48:17 +00:00
natalie 1e29230827
Create DKG vector tests (#587)
* Add DKG vector test for ed25519 (#567)

* Add DKG test vectors for all ciphersuites (#567)

* Add description for DKG vector test (#567)

* Update imports for DKG vector tests (#567)
2023-12-04 19:15:25 +00:00
natalie 37e8856449
Release v1.0.0-rc.0 (#575)
* Update versions to 1.0.0-rc.0 (#552)

* Update changelog for release 1.0.0-rc.2 (#552)

* Update frost core version in ciphersuites to 1.0.0-rc.0 (#552)

* Update rerandomized and frost-core dependencies to use v1.0.0-rc.0 (#552)

* Update release checklist to add instruction for updating version numbers for frost-rerandomized (#552)

* Update mdbook-admonish (#552)
2023-11-15 13:08:34 +00:00
Conrado Gouvea e69002e0f6
re-export serde in ciphersuite crates (#573) 2023-11-10 17:27:41 +00:00
Conrado Gouvea a0df08e30a
remove frost module (#568) 2023-10-31 16:30:05 +00:00
Conrado Gouvea 71c092532c
add computing PublicKeyPackage from commitments (#551)
* Refactor computing the public key package and expose it.

* Fix clippy issue.

* Add test.

* Fix test.

* Improve test.

* Split it up.

* Fix build.

* Improve api.

* Expose more stuff.

* Expose more stuff.

* Extract proof of knowledge verification.

* Add construct_proof_of_knowledge.

* fix dkg test

* overall cleanup

* change IncorrectCommitment to IncorrectNumberOfCommitments

* clippy fixes

* fix order of inputs for DKG commitment hashing

* also change regular challenge() verifying key argument to VerifyingKey

---------

Co-authored-by: David Craven <david@craven.ch>
2023-10-27 11:48:54 +00:00
natalie e0db6151e0
Support optional cheater detection (#564)
* Add feature for cheater detection (#355)

Create option for aggregating without cheater detection
Some renaming

* avoid duplicating aggregate()

* Make cheater detection feature on by default (#355)

* Update changelog for cheater detection feature addition (#355)

* Default to cheater detection feature in ciphersuites (#355)

* Remove unnecessary cheater-detection gates in tests (#355)

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-10-25 13:23:26 +00:00
Conrado Gouvea c0c57f4b4b
generate Randomizer by hashing SigningPackage (#542) 2023-09-22 14:20:11 +00:00
natalie ba3ef7dbb8
Convert all HashMaps to BTreeMaps (#547)
Convert HashMaps to BTreeMaps (#476)
2023-09-22 14:08:32 +00:00
Conrado Gouvea a5dc479b4d
remove serde bounds from Ciphersuites (#541) 2023-09-21 09:24:21 +00:00
Conrado Gouvea 4ba88c0210
add version field to serialization at the beginning; move ciphersuite after it (#540)
* add version field into a Header field along with the ciphersuite ID

* Change Ciphersuite ID to be the contextString from the spec

* Apply suggestions from code review

Co-authored-by: natalie <n.l.eskinazi@gmail.com>

---------

Co-authored-by: natalie <n.l.eskinazi@gmail.com>
2023-09-20 15:40:01 +00:00
natalie eee505a49e
Rename fields to match types (#539)
* Rename signer_pubkeys to verifying_shares (#495)

* Rename group_public to verifying_key (#495)

Some naming needed to be updated in DKG as well as there was already a verifying_key which was actually a verifying_share

* Update KeyPackage field from secret_share to signing_share (#495)

* Update Package field from secret_share to signing_share (#495)

* Update KeyPackage field from public to verifying_share (#495)

* Update SecretShare field vrom value to signing_share (#495)

* Remove secret function from SecretShare (#495)

This is because we now can use the getter to get signing_share() without the need for an additional function

* Update serde_tests with updated field names (#495)
2023-09-15 14:53:43 +00:00
Conrado Gouvea c38305b536
bump versions and update changelog for 0.7.0 release (#538) 2023-09-13 16:52:41 +00:00
Conrado Gouvea d4b03ea7bf
add default serialization format (#511)
* add default serialization format

* remove SHORT_ID from Ciphersuite trait
2023-09-13 12:58:26 +00:00
Conrado Gouvea 9752182fa1
change reconstruct() to take KeyPackages; validate size (#523)
change reconstruct() to take KeyPackages; validate size
2023-09-11 21:51:33 +00:00
Conrado Gouvea 4ee0d32867
check number of commitments in sign() (#480)
* check number of commitments in sign()

* make comment clearer
2023-09-06 09:48:30 +00:00
Conrado Gouvea d439fdc93d
improve book per audit report (#491)
* improve book per audit report

* remove stale sentence

* fix a typo

* Update book/src/tutorial/signing.md

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

* Update book/src/tutorial/signing.md

---------

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2023-09-05 00:08:16 +00:00
Conrado Gouvea 4abe7fe638
document features (#512) 2023-09-04 19:38:48 +00:00
Conrado Gouvea fcd0e31e6b
return error when validating an empty batch (#487)
* return error when validating an empty batch

* reuse n
2023-09-02 05:13:51 +00:00
Conrado Gouvea a19d2f9abf
don't import unneeded dependencies when not required (#492) 2023-09-02 05:01:01 +00:00
Conrado Gouvea 5cd3f8fc79
return error when creating a zero SigningKey (#496)
* return error when creating a zero SigningKey

* Update frost-core/src/signing_key.rs

* Update frost-core/src/signing_key.rs

---------

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2023-09-02 04:59:57 +00:00
Conrado Gouvea 877e7c3830
fix clippy issues (#503) 2023-08-28 19:25:43 +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
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
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
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 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
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
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
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] 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
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
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