* 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>
* 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
* 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>
* 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
* Re-export the frost-core traits and rand-core as part of top-level impls API
* Don't export frost_core::frost
---------
Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
* add Identifier to InvalidSignatureShare
* rustdoc
* also update secp256k1
* add Identifier::deserialize; make serialize public
* make it work with Ed448
* Some space
* Fixing spacing for rustfmt
* Revert 🤦♂️
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
* use Identifier instead of index
* remove pub(crate) from the Identifier index
* Refreshed Identifier newtype of Scalar with traits
* Remove commented out lines
* add test vectors with indices larger than 1 byte
* add little_endian_serialize to implement Ord for Identifier
* use u16 for number of signers
* fix variable use
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
* use Identifier instead of index
* remove pub(crate) from the Identifier index
* Refreshed Identifier newtype of Scalar with traits
* Remove commented out lines
* add test vectors with indices larger than 1 byte
* add little_endian_serialize to implement Ord for Identifier
Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
* add DKG support
* refactor: call SecretShare::verify() in keygen_part3
* refactor: add generate_secret_polynomial and evaluate_polynomial
* refactor: factor out `evaluate_vss`
* refactor: factor out `compute_verifying_keys`
* fix full vector of coefficients not being returned
* simplify evaluate_polynomial to not receive constant term separately
* delete accidentally comitted .orig file
* Apply suggestions from code review
Co-authored-by: Marek <mail@marek.onl>
* Update frost-core/src/frost/keys.rs
Co-authored-by: Marek <mail@marek.onl>
* fix doc warnings
Co-authored-by: Marek <mail@marek.onl>
* add gendoc.py
* add frost_p256 docs with gendoc.py
* convert Python script to Rust
* A word
* replace 'symbol' to the more appropriate 'item'
* Apply suggestions from code review
* Remove rustdoc ref to removed SharePackage
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
* use Identifier instead of index
* remove pub(crate) from the Identifier index
* A comment
* Whitespace for readability
* check for zero in Identifier::to_scalar()
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
* Clippy, linting, check rustdoc, etc
* Ignore frost-redjubjub in the workspace for now
* Make rustfmt happy
* Clippy
* Appease Clippy
* Comment out bench for now
* add commit(), use it instead of preprocess()
* use a single scalarmul in compute_group_commitment per v5 spec
* add nonce_generate() from the spec and use it
* remove Order() from Group trait since it's not used
* style: carriage return
* use Secret instead of KeyPackage in some methods
* change commit to take explicit params and not return vectors
* removed unused import
Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
* add support for P-256 curve
* use a fixed-size array for P_256 point encoding (instead of )
* Apply suggestions from code review
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
* frost-p256: remove direct elliptic_curve dependency; use the one from p256
* fix comment in invert()
* frost-p256: rename shorthand alias
* Apply suggestions from code review
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
* improve imports, docs, use expect instead of unwrap
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>