From b2cae9b389f137e27f17cb02799e981cf87a4f7a Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Wed, 14 Dec 2022 12:11:33 -0400 Subject: [PATCH] Add generateKeyPairFromPrivateKey --- cipher_suite.go | 10 +++++++++- vectorgen/vectorgen.go | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cipher_suite.go b/cipher_suite.go index 753e011..5f34bd9 100644 --- a/cipher_suite.go +++ b/cipher_suite.go @@ -28,6 +28,9 @@ type DHFunc interface { // entropy. GenerateKeypair(random io.Reader) (DHKey, error) + // GenerateKeypairFromPrivateKEy generates a keypair from a private key + GenerateKeyPairFromPrivateKey(privkey []byte) (DHKey, error) + // DH performs a Diffie-Hellman calculation between the provided private and // public keys and returns the result. DH(privkey, pubkey []byte) ([]byte, error) @@ -104,7 +107,7 @@ var DH25519 DHFunc = dh25519{} type dh25519 struct{} -func (dh25519) GenerateKeypair(rng io.Reader) (DHKey, error) { +func (d dh25519) GenerateKeypair(rng io.Reader) (DHKey, error) { privkey := make([]byte, 32) if rng == nil { rng = rand.Reader @@ -112,6 +115,11 @@ func (dh25519) GenerateKeypair(rng io.Reader) (DHKey, error) { if _, err := io.ReadFull(rng, privkey); err != nil { return DHKey{}, err } + + return d.GenerateKeyPairFromPrivateKey(privkey) +} + +func (d dh25519) GenerateKeyPairFromPrivateKey(privkey []byte) (DHKey, error) { pubkey, err := curve25519.X25519(privkey, curve25519.Basepoint) if err != nil { return DHKey{}, err diff --git a/vectorgen/vectorgen.go b/vectorgen/vectorgen.go index f835155..22587e0 100644 --- a/vectorgen/vectorgen.go +++ b/vectorgen/vectorgen.go @@ -7,7 +7,7 @@ import ( "io" "os" - . "github.com/flynn/noise" + . "github.com/waku-org/noise" ) func main() {