-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation of secp256k1 Group #844
Open
themicp
wants to merge
20
commits into
MystenLabs:main
Choose a base branch
from
commonprefix:feature/secp256k1_dkg
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 11 commits
Commits
Show all changes
20 commits
Select commit
Hold shift + click to select a range
386b1bb
Add as_element to PrivateKey
themicp 560d258
Add new implementation for secp256k1 that works with DKG
themicp bab4cfa
Lint imports, update names for ProjectivePoint and Scalar
themicp 32652f5
Update secp256k1 tests to work with updated k256 crate
themicp a4490e5
Test DKG happy path for secp256k1
themicp dcca4dc
Update DKG tests: run for secp256k1 as well
themicp be92376
Remove unnecessary generics
themicp e6bfdd5
Update domain
themicp ec98545
Remove unnecessary comments
themicp 04d86fb
Move paste to dev-dependencies
themicp 801fe96
Linting
themicp aa1b4ad
Remove duplicate package requirement
themicp 3930b6c
Add directive to enable secp256k1 only during testing or with the 'ex…
themicp 736f6cf
Properly handle error when dividing Scalar by 0
themicp 9143238
Avoid the use of unwrap
themicp 6060b55
Properly handle error when dividing ProjectivePoint by 0
themicp 39128cd
Use proper error when invalid input is provided in multi_scalar_mul
themicp 93ea9ce
Use IDENTITY instead of default()
themicp 83d2050
Avoid the use of unwrap
themicp 0d346fa
Remove .as_element() from PrivateKey
themicp File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -76,6 +76,10 @@ where | |
proof, | ||
} | ||
} | ||
|
||
pub fn as_element(&self) -> &G::ScalarType { | ||
&self.0 | ||
} | ||
} | ||
|
||
impl<G> PublicKey<G> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general the raw secret key should not be used not via APIs, do we really need this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My main use was from an external library that needed to convert the private key to a
k256::ecdsa::SigningKey
. But I can change the external library instead, and removeas_element()
from here. Alternatively, we could also implementFrom<PrivateKey<G>> for k256::ecdsa::SigningKey
, but it is not necessary for now.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure I follow - the ECIES private key is not related to the DKG private key/share, you can generate it independently when creating a party