Open
Conversation
maraino
reviewed
Feb 23, 2022
Comment on lines
+261
to
+279
| if strings.ToLower(ctx.String("alg")) == "es256k" { | ||
| hexRaw, err := os.ReadFile(keyFile) | ||
| if err != nil { | ||
| return nil, errors.Wrap(err, "read file error") | ||
| } | ||
| raw, err := hex.DecodeString(strings.TrimPrefix(strings.TrimSpace(string(hexRaw)), "0x")) | ||
| if err != nil { | ||
| return nil, errors.Wrap(err, "file content is not in hex") | ||
| } | ||
| if isPubKey { | ||
| secp256k1Pk, err := secp256k1.ParsePubKey(raw) | ||
| if err != nil { | ||
| return nil, errors.Wrap(err, "unable to parse public key") | ||
| } | ||
| return secp256k1Pk.ToECDSA(), nil | ||
| } | ||
| secp256k1Pk := secp256k1.PrivKeyFromBytes(raw) | ||
| return secp256k1Pk.ToECDSA(), nil | ||
| } |
Collaborator
There was a problem hiding this comment.
Is there any reason to not use a PEM file for this?
$ openssl ecparam -name secp256k1 -genkey -noout
-----BEGIN EC PRIVATE KEY-----
MHQCAQEEIMUALqrFTe1KusIe3WlCZeRHBZoNoL1SbqzVDHdHo+7roAcGBSuBBAAK
oUQDQgAEkQ/Pj3MnBvwmNmsYEg0cCqgsXwV8yKYJHG099jfLPjTdmV3ZWkZg146Q
Nfm0RBXjvgEoVXhHy/g2vyptMmAaKQ==
-----END EC PRIVATE KEY-----
Author
There was a problem hiding this comment.
No, there's no reason. We can certainly use PEM here.
Maybe we can add support for hex-encoded key and wallet (JSON, imported format). The support can be done directly in related commands or in the format command.
Blockchain client node implementations often import keys via those above methods.
Collaborator
|
I'm not opposed to adding support for |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fix #222
I'm using
github.com/decred/dcrd/dcrec/secp256k1/v4which is go-native implementation for secp256k1 curve.My first attempt to add the support into current code. Not super clean so looking for feedbacks to fit better into the current design.
Feel free to contribute into this PR as needed. I will try to find time to update as feedbacks coming in and complete the TODO.
TODO:
step crypto key signandstep crypto key verifystep crypto keypairExample: