Commit Graph

139 Commits

Author SHA1 Message Date
natalie e5c5e53b86
Fix clippy issue (#640) 2024-04-16 21:58:54 +00:00
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 2f01e01e78
frost-core: expose SigningKey::to/from_scalar() (#601)
* frost-core: expose SigningKey::to/from_scalar()

* Update frost-core/CHANGELOG.md
2024-02-01 13:10:20 +00:00
natalie e1fb9bc953
Check num of commitments against min signers (#597)
* Check num of commitments against min signers

* Move incorrect number of commitments check to part2 in the DKG
2024-01-17 13:18:27 +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
David Wong 6d82adf941
fix deserialization issue in ciphersuite_deserialize (#589) 2023-12-04 16:34:42 +00:00
Conrado Gouvea 221c089f2b
create new() methods for VerifirableSecretSharingCommitment and CoefficientCommitment (#580) 2023-11-20 14:56:33 +00:00
natalie 4406e01afc
Update changelog (#582)
Update changelog (#581)
2023-11-17 10:46:37 +00:00
natalie 036b0ce3fe
Fix warnings (#578)
* Use from_coefficients() instead of evaluate_polynomial() when computing a signing_share (#576)

* Refactor BindingFactor::deserialize into from_hex as it's only used for testing (#576)

* Remove BindingFactorList::iter() and use directly in vector test (#576)
2023-11-16 17:18:40 +00:00
dependabot[bot] 99866a7902
Update itertools requirement from 0.11.0 to 0.12.0 (#574)
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.11.0...v0.12.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-11-15 11:53:46 -03: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 408540fb86
frost-core: split part of lib.rs into traits.rs and serialization.rs (#569) 2023-11-07 14:57:21 +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 266f12624e
clippy fixes (#565) 2023-10-20 15:12:46 +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
dependabot[bot] 386de4de6f
Update visibility requirement from 0.0.1 to 0.1.0 (#518)
Updates the requirements on [visibility](https://github.com/danielhenrymantilla/visibility.rs) to permit the latest version.
- [Release notes](https://github.com/danielhenrymantilla/visibility.rs/releases)
- [Commits](https://github.com/danielhenrymantilla/visibility.rs/compare/v0.0.1...v0.1.0)

---
updated-dependencies:
- dependency-name: visibility
  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-09-04 19:38:52 +00:00
Conrado Gouvea 4abe7fe638
document features (#512) 2023-09-04 19:38:48 +00:00
Conrado Gouvea f3eb8681a8
check if the correct number of identifiers was provided in split() (#481) 2023-09-02 05:24:17 +00:00
Conrado Gouvea 5d97cf126d
fix DKG challenge hashing order to match paper (#484) 2023-09-02 05:13:55 +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 ab4af9bff4
check if the part3() identifier consistency check works (#506) 2023-09-02 05:11:18 +00:00
Conrado Gouvea 09206aead8
fix misc docs issues (#489)
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2023-09-02 01:06:57 -04:00
Conrado Gouvea 0e29b614bd
update spec links (#488) 2023-09-02 05:01:07 +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 0fb4824e4b
improve sign() performance by caching SigningCommitments (#493) 2023-09-02 04:59:52 +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
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
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