* First stab at vartime multiscalar speedup for computing group commitments
* Update frost-core/src/frost.rs
---------
Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
* Make multiscalar multiplication generic for any scalar field size, within some limits
* Passes ed448 tests
* remove extreme comparison
* Typo
* Typo
* small optimizations
---------
Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
* Add compute random value function for repair share functionality (#41)
This is step 1 of 3
* Add compute random value function for repair share functionality for each ciphersuite (#41)
* Add compute_sum_of_random_values function for repair share functionality (#41)
This is step 2 of 3
* Add recover_share function for repair share functionality (#41)
This is step 3 of 3
* Add communication rounds functions for repair share functionality for each ciphersuite (#41)
Add compute_sum_of_random_variables function
Add recover_share function
* Fix recover_share tests so they test the right thing
Fix secp256 recover share test values
Fix ristretto255 recover share test values
Fix ristretto255 compute sum of random values test values
* Rewrite compute_random_values to generate_random_values for repair share functionality (#41)
Test generate_random_values directly
End to end test to be added in another commit
Updated gendoc to use original file values to fix clippy complaints
* Rename functions and update documentation for repair (#41)
* Add end to end test for repair share (#41)
Fix lagrange coefficient calculation
Co-authored-by: conrado <conradoplg@gmail.com>
* Fix formatting (#41)
* Remove comment (#41)
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
* Update documentation for step 1 of RTS (#41)
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
* Update documentation for method of computing step 1 of RTS (#41)
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
* Rename repair share functions (#41)
* Improve documentation for Repairable Threshold Scheme (#41)
* Remove unecessary code from repairable tests (#41)
* Update repairable documentation
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
* Rename steps in repairable to be more consistent with DKG pattern (#41)
* Update gitignore (#41)
* Update repairable to use new keygen_with_dealer signature (#41)
* Update frost-core/src/frost/keys/repairable.rs
---------
Co-authored-by: conrado <conradoplg@gmail.com>
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
* 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
* remove 'as' keyword when not needed
* use Scalar shortcut
* use Element shortcut
* remove more instances of 'as' keyword when not needed
* rustfmt
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
* rename rho to binding factor
* s/Rho/BindingFactor/
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>
* make tests generic
* restore serialization test; remove Debug bound by using debugless-unwrap
* fix spacings in Cargo.toml
* Add PartialEq bound to Ciphersuite and Group; remove it from functions
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
* add VerifySignature method to Ciphersuite with default implementation
* VerifySignature -> verify_signature; fix comment
* add comment to verify_signature about batch verification
* fix batch support after rebase
* derive Eq when possible and disable clippy::derive_partial_eq_without_eq which is emitting false positives
* Make verify_prehashed() an associated method of the generic VerifyingKey
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>