-
Notifications
You must be signed in to change notification settings - Fork 73
enhance the functions of ECPublicKey and ECPrivateKey, and add ECDH f… #192
base: master
Are you sure you want to change the base?
Conversation
…unction in ECPrivateKey
Thanks for the contribution, I left some comments! |
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.
hmm, comments didn't get through..
@@ -130,6 +131,27 @@ class ECPrivateKey extends ECAsymmetricKey implements PrivateKey { | |||
return (other.parameters == this.parameters) && (other.d == this.d); | |||
} | |||
|
|||
/// Restore privatekey from stored hex string | |||
static ECPrivateKey fromStored(String storedPriKey, ECDomainParameters domainParams){ |
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.
Can you rename this fromHex
instead? Someone could store a private key in base64 as well, f.e..
String hexString() => this.d.toRadixString(16); | ||
|
||
/// Generate publickey from private key | ||
ECPublicKey generatePubkey(){ |
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.
Rename to just ECPublicKey get publicKey {
.
return new ECPublicKey(Q, this.parameters); | ||
} | ||
|
||
Uint8List generateSecret(ECPublicKey pubkey) { |
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.
Wait is this Shamir's secret sharing? I would certainly not name this generateSecret
. I'm not sure if this method should be on PrivateKey, but if it's here, please explicitly mention that it's for secret sharing. F.e.
/// Create a shared secret using Shamir's secret sharing scheme.
Uint8List getSharedSecret(ECPublicKey other) {
@@ -149,6 +171,17 @@ class ECPublicKey extends ECAsymmetricKey implements PublicKey { | |||
return (other.parameters == this.parameters) && (other.Q == this.Q); | |||
} | |||
|
|||
/// return Uint8List so can easily stored or transfer on internet | |||
Uint8List getEncoded(){ |
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.
toBytes()
? Perhaps also add hexString()
that encodes as hex. And perhaps also a toBytes
on PrivateKey
as well?
} | ||
|
||
/// restore public key from Uint8List from stored string or internet | ||
static ECPublicKey fromStored(Uint8List theQ, ECDomainParameters domainParams){ |
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.
fromBytes
?
Why do you do bytes for public key and hex string for private key? Quite inconsistent.. I'd either just have bytes on both or hex on both or both on both.
I'm archiving this repo as per #239 (see the issue for more info). |
enhance the functions of ECPublicKey and ECPrivateKey, and add ECDH function in ECPrivateKey