Commit Graph

266 Commits

Author SHA1 Message Date
Deirdre Connolly 506edbbe7b Do not generate commitment share as part of signing
Generate the group commitment from all round one signing commitments as part
of aggregate(). Only re-derive a commitment share from the signing share
as part of signing share verification, just before aggregate.
2022-03-28 15:46:48 -04:00
Deirdre Connolly fcd4599ec5 Some docs 2022-03-28 15:46:48 -04:00
Deirdre Connolly f757b761c6 Rename generate_ to derive_lagrange_coeff 2022-03-28 15:46:48 -04:00
Deirdre Connolly f15657b516 Reject signer or signing commitment indices that == 0 2022-03-28 15:46:48 -04:00
Deirdre Connolly f9e5f5a110 Run coverage on main to diff against base 2022-03-28 15:14:48 -04:00
Deirdre Connolly 11973761b6
Refactor frost into round1, round2 submodules (#38)
* Refactor frost into round1, round2 submodules

* Move around some stuff into frost.rs
2022-03-22 16:33:59 -04:00
Deirdre Connolly c88b5ffe1b Rename ShareCommitment VerifiableSecretSharingCommitment 2022-03-08 14:11:41 -05:00
Deirdre Connolly 0b1b7eecd5 Move keygen, key types, into frost::keys 2022-03-08 14:11:41 -05:00
Deirdre Connolly ac79d00c76 Ignore .DS_Store 2022-03-08 14:11:41 -05:00
dependabot[bot] 4d2baf07ac Bump actions/checkout from 2.4.0 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 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/v2.4.0...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-03 15:52:45 -05:00
Deirdre Connolly b7b6aa7907 Ensure we compute each signature share's R_share from signers' round 1 nonce commitments 2022-03-03 12:55:45 -05:00
Deirdre Connolly 48f084816b Remove commented out FromHex impl for SignatureResponse 2022-03-03 12:55:45 -05:00
Deirdre Connolly a41c02581d We no longer H3(msg) to create the challange, only to create the binding_factor 2022-03-03 12:55:45 -05:00
Deirdre Connolly bf8b138595 Small fixes, trying to get test vector sig share verification working 2022-03-03 12:55:45 -05:00
Deirdre Connolly 15706f0b48 Remove comments 2022-03-03 12:55:45 -05:00
Deirdre Connolly 77bb412c7a A bunch of fixes 2022-03-03 12:55:45 -05:00
Deirdre Connolly 5f35150088 Almost all parse, being partially checked in test 2022-03-03 12:55:45 -05:00
Deirdre Connolly c59d36d508 Turn several functions into type methods, impl FromHex for some for test vectors 2022-03-03 12:55:45 -05:00
Deirdre Connolly a05286498e Uncomment test vector test 2022-03-03 12:55:45 -05:00
Deirdre Connolly cd1e786359 Lots of little changes 2022-03-03 12:55:45 -05:00
Deirdre Connolly 9181dd0dce Add serde_json-parsed test vectors 2022-03-03 12:55:45 -05:00
Deirdre Connolly cf63f236ec Always sort signing_commitments 2022-03-03 12:55:45 -05:00
Deirdre Connolly 8ce992541a
Make Ristretto implementation up to date with spec (#25)
* WIP

* Using H1/H2/H3 per spec, the verification still fails with Verificationkey

* Use FROST spec hashes, update all challenge generations to be DRY

Make clippy happy, etc

* DRY up generate_challenge

Also rename all methods to be generate_ instead of gen_
2022-02-09 15:18:21 -07:00
Dimitris Apostolou fba11278b3 Fix typos 2022-02-08 18:52:02 -05:00
dependabot[bot] 0a271c1748 Update blake2b_simd requirement from 0.5 to 1.0
Updates the requirements on [blake2b_simd](https://github.com/oconnor663/blake2_simd) to permit the latest version.
- [Release notes](https://github.com/oconnor663/blake2_simd/releases)
- [Commits](https://github.com/oconnor663/blake2_simd/compare/0.5.0...1.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 22:26:33 -05:00
Deirdre Connolly c3c9bfcb74
Pin nightly jan 14 to fix coverage (#24)
* Pin nightly jan 14 to fix coverage

* Update coverage workflow to use cargo-llvm-cov

* Nightly is fixed
2022-01-31 17:30:23 -05:00
Deirdre Connolly a66d2041cf Clean up names and commits, run clippy fix 2022-01-13 00:06:43 -05:00
Deirdre Connolly f10a159c70 Add a note about these being works in progress 2021-12-13 17:44:14 -05:00
Deirdre Connolly 40af4d9f0d Tests working 2021-12-13 17:11:07 -05:00
Deirdre Connolly 48eceee4f4 Re-add redjubjub readme 2021-12-13 07:29:40 -05:00
Deirdre Connolly cee212b85f Reorg for FROST 2021-12-13 07:26:52 -05:00
str4d a32ae3fc87
Don't reject small-order verification keys (#137)
* Don't reject small-order verification keys

Fixes ZcashFoundation/redjubjub#127.

* Added missing changelog entries
2021-11-18 15:53:35 -03:00
dependabot[bot] 2f240d885d
Update jubjub requirement from 0.7 to 0.8 (#131)
* Update jubjub requirement from 0.7 to 0.8

Updates the requirements on [jubjub](https://github.com/zkcrypto/jubjub) to permit the latest version.
- [Release notes](https://github.com/zkcrypto/jubjub/releases)
- [Changelog](https://github.com/zkcrypto/jubjub/blob/main/RELEASES.md)
- [Commits](https://github.com/zkcrypto/jubjub/commits/0.8.0)

---
updated-dependencies:
- dependency-name: jubjub
  dependency-type: direct:production
...
2021-11-18 15:24:11 -03:00
Deirdre Connolly 3db05e29f7 Remove extra module-level doc to allow doc = include_str to work 2021-06-22 16:37:36 -04:00
Alfredo Garcia 751af8a76b remove external_docs 2021-06-22 16:37:36 -04:00
Alfredo Garcia ced2819690 another try 2021-06-22 16:37:36 -04:00
Alfredo Garcia 79b8b52baa try to fix the docs build 2021-06-22 16:37:36 -04:00
dependabot[bot] 5105bcc865 Bump codecov/codecov-action from 1.5.0 to 1.5.2
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1.5.0 to 1.5.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.5.0...v1.5.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>
2021-06-21 17:07:49 -04:00
Jack Grigg f772176560 jubjub 0.7 2021-06-18 14:05:08 -04:00
Alfredo Garcia fa3c602698
Implement the messages spec (#114)
* start messages and validation

* add missing docs to constants

* change validation to matches, fix constant doc

Co-authored-by: teor <teor@riseup.net>

* fix the build

* validate share_commitment

* add new constants and validations

* fix validation

* derive serde Serialize and Deserialize in all messages structs

* update created structs

Co-authored-by: teor <teor@riseup.net>

* fix build

* define and use a new MAX_SIGNERS constant

* change group_public type

* add some test cases

* add validation and serialization tests for SigningCommitments

* add validation and serialization test to SigningPackage

* change some fields order matching the spec

* fix field order in tests according to last updates to the spec

* implement serialize and deserialize for ParticipantId

* move serde-json to dev-dependencies section

* change to pub(crate)

* fix serialize of VerificationKey

* add assert to serialize

* add note, fix typo

* improve some code in tests

* test serialization of individual fields

* start messages and validation

* add missing docs to constants

* change validation to matches, fix constant doc

Co-authored-by: teor <teor@riseup.net>

* fix the build

* validate share_commitment

* add new constants and validations

* fix validation

* define and use a new MAX_SIGNERS constant

* change group_public type

* change some fields order matching the spec

* change message fields to new spec

* remove some non needed conversions

* use a BTreeMap to guarantee the order

* remove some calls to `clone()` by implementing `Copy`

* change message type in frost and add validate_signatureshare test

* change `share_commitment` to BTreeMap

* add `serialize_signatureshare` test

* add aggregatesignature tests

* add some test header messages utility functions

* add a setup utility

* move the general serialization checks into an utility function

* fi some typos

* add and use a `generate_share_commitment` utility

* add create_signing_commitments utility function

* improve the serialization tests

* make room for prop tests

* add arbitrary tests for serialization

* remove allow dead code from messages

* fix some imports

* make signature module public only to the crate

* simplify a bit the frost tests

* improve the generated docs

* add a `prop_filter` to Header arbitrary

* (ab)use proptest_derive

* improve validation for Message

* improve some utility functions

* change frost to serialization id conversion

* add a quick btreemap test

* change the `MsgType` to `u32`

* add no leftover bytes checks

* add a full_setup utility

* add map len checks

Co-authored-by: teor <teor@riseup.net>
2021-06-16 16:13:23 -03:00
Alfredo Garcia 00190de7c6 add missing checks
Co-authored-by: teor <teor@riseup.net>
2021-06-15 17:10:38 -04:00
Alfredo Garcia c0688b0fe4 Convert `share_commitment` to a BTreeMap
Co-authored-by: teor <teor@riseup.net>
2021-06-15 17:10:38 -04:00
Alfredo Garcia 7d357496fb use BTreeMap, update sizes, etc
Co-authored-by: teor <teor@riseup.net>
2021-06-15 17:10:38 -04:00
Alfredo Garcia 9d5e9fd547 change type to `SignatureResponse` 2021-06-15 17:10:38 -04:00
Alfredo Garcia b05edb8689 use FrostSignature instead of Scalar primitive 2021-06-15 17:10:38 -04:00
Alfredo Garcia a536404e59 update a field description 2021-06-15 17:10:38 -04:00
Alfredo Garcia 41a0bf5dad change some primitives to frost types 2021-06-15 17:10:38 -04:00
Alfredo Garcia d1c05626f3 change ParticipantId to u64 2021-06-15 17:10:38 -04:00
Alfredo Garcia 4bf0d5c58e text updates
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2021-06-15 17:10:38 -04:00
Alfredo Garcia 08bda8503f put variable-length fields last in messages
Co-authored-by: teor <teor@riseup.net>
2021-06-15 17:10:38 -04:00