Commit Graph

479 Commits

Author SHA1 Message Date
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
Alfredo Garcia 293801858d change group_public 2021-06-15 17:10:38 -04:00
Alfredo Garcia 46417a3dab forbid multi-bytes in serialization
Co-authored-by: teor <teor@riseup.net>
2021-06-15 17:10:38 -04:00
Alfredo Garcia 3e832df5f1 change some validation rules 2021-06-15 17:10:38 -04:00
Alfredo Garcia 3f3a04f958 remove `msg_type` validation rule 2021-06-15 17:10:38 -04:00
teor a57c12059e Make state-based validation out of scope 2021-06-15 17:10:38 -04:00
Alfredo Garcia 837af8d846 replace ParticipantID with ParticipantId everywhere remaining 2021-06-15 17:10:38 -04:00
Alfredo Garcia 63007330af fix definitions after changes to ParticipantID 2021-06-15 17:10:38 -04:00
Alfredo Garcia 6c3e8b3341 remove some spaces after newlines 2021-06-15 17:10:38 -04:00
Alfredo Garcia dc5f2da1d1 split doc comment in lines 2021-06-15 17:10:38 -04:00
Alfredo Garcia d3dc3b3438 fix missing msg names 2021-06-15 17:10:38 -04:00
teor 9529a8ee3e Clarify participant ID changes 2021-06-15 17:10:38 -04:00
teor df0ec420d4 Reserve specific participant IDs for the dealer and aggregator
Also explicitly identify the sender and receiver for each message.
2021-06-15 17:10:38 -04:00
teor 4f2b53d838 Add a constant for this serialization version 2021-06-15 17:10:38 -04:00
teor 0e77df1e40 Fix a missed type 2021-06-15 17:10:38 -04:00
teor 78a5cbade1 Remove the separate MsgCommitments type 2021-06-15 17:10:38 -04:00
teor 8bb106a53d Name, Doc and Serialization Tweaks, and a Test Plan 2021-06-15 17:10:38 -04:00
teor b0c5512a71 Fix a typo 2021-06-15 17:10:38 -04:00
Alfredo Garcia d9aa3bac88 add definitions 2021-06-15 17:10:38 -04:00
Alfredo Garcia 9ba0fe78c1 use some escape characters 2021-06-15 17:10:38 -04:00
Alfredo Garcia 4cc7365331 fix missing field name and type in MsgCommitments serialization 2021-06-15 17:10:38 -04:00
Alfredo Garcia 119e9013e0 split rules in header and payload sub sections 2021-06-15 17:10:38 -04:00
Alfredo Garcia 014dd22f86 add a new validation rules section 2021-06-15 17:10:38 -04:00
Alfredo Garcia 798d0ef7ea update serialization 2021-06-15 17:10:38 -04:00
Alfredo Garcia fc340edc28 add line to AffinePoint description 2021-06-15 17:10:38 -04:00
Alfredo Garcia 6aa6a68297 add a new not included item 2021-06-15 17:10:38 -04:00
Alfredo Garcia e9ca8ee99e update payloads rust code 2021-06-15 17:10:38 -04:00
Alfredo Garcia 8fcbb44908 change Participant to ParticipantID 2021-06-15 17:10:38 -04:00
Alfredo Garcia 4362f20732 fix typo 2021-06-15 17:10:38 -04:00
Alfredo Garcia 2d5ceaf1d7 remove participants field from rust in MsgSigningPackage 2021-06-15 17:10:38 -04:00
Alfredo Garcia de1a1bed37 replace CollectedCommitment with a HashMap 2021-06-15 17:10:38 -04:00
Alfredo Garcia b70e15eefe remove lenght of msg to be signed from rust 2021-06-15 17:10:38 -04:00
Alfredo Garcia fb21e09714 change comments to doc comments 2021-06-15 17:10:38 -04:00
Alfredo Garcia 9a37fcb980 add note about large messages 2021-06-15 17:10:38 -04:00
Alfredo Garcia 5586bd8aaf use to_bytes in primitive types and reduce serialization size 2021-06-15 17:10:38 -04:00
Alfredo Garcia 07d8c06ed6 fix typos 2021-06-15 17:10:38 -04:00
Alfredo Garcia a4d4907867 change other considerations section to not included 2021-06-15 17:10:38 -04:00
Alfredo Garcia 7891c9bb01 add Other considerations section 2021-06-15 17:10:38 -04:00