From c708fbd98480624432a8b60afddeb18cc32b9d9c Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Thu, 23 Feb 2023 16:55:10 +0300 Subject: [PATCH] remove priv keys from nodes conf --- nodeconf/config.go | 3 +-- nodeconf/service.go | 28 ++++++++++++++++++-------- testutil/accounttest/accountservice.go | 7 +------ 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/nodeconf/config.go b/nodeconf/config.go index 09aee8dd..17093019 100644 --- a/nodeconf/config.go +++ b/nodeconf/config.go @@ -17,8 +17,7 @@ type configGetter interface { type NodeConfig struct { PeerId string `yaml:"peerId"` Addresses []string `yaml:"address"` - SigningKey string `yaml:"signingKey,omitempty"` - EncryptionKey string `yaml:"encryptionKey,omitempty"` + EncryptionKey string `yaml:"encryptionPubKey,omitempty"` Types []NodeType `yaml:"types,omitempty"` } diff --git a/nodeconf/service.go b/nodeconf/service.go index 6d313004..9b242a0f 100644 --- a/nodeconf/service.go +++ b/nodeconf/service.go @@ -8,6 +8,7 @@ import ( "github.com/anytypeio/any-sync/util/keys/asymmetric/encryptionkey" "github.com/anytypeio/any-sync/util/keys/asymmetric/signingkey" "github.com/anytypeio/go-chash" + "github.com/libp2p/go-libp2p/core/peer" ) const CName = "common.nodeconf" @@ -106,17 +107,28 @@ func (s *service) GetById(id string) Configuration { } func nodeFromConfigNode(n NodeConfig) (*Node, error) { - decodedSigningKey, err := keys.DecodeKeyFromString( - n.SigningKey, - signingkey.UnmarshalEd25519PrivateKey, - nil) + p, err := peer.Decode(n.PeerId) + if err != nil { + return nil, err + } + ic, err := p.ExtractPublicKey() if err != nil { return nil, err } - decodedEncryptionKey, err := keys.DecodeKeyFromString( + icRaw, err := ic.Raw() + if err != nil { + return nil, err + } + + sigPubKey, err := signingkey.UnmarshalEd25519PublicKey(icRaw) + if err != nil { + return nil, err + } + + encPubKey, err := keys.DecodeKeyFromString( n.EncryptionKey, - encryptionkey.NewEncryptionRsaPrivKeyFromBytes, + encryptionkey.NewEncryptionRsaPubKeyFromBytes, nil) if err != nil { return nil, err @@ -125,7 +137,7 @@ func nodeFromConfigNode(n NodeConfig) (*Node, error) { return &Node{ Addresses: n.Addresses, PeerId: n.PeerId, - SigningKey: decodedSigningKey.GetPublic(), - EncryptionKey: decodedEncryptionKey.GetPublic(), + SigningKey: sigPubKey, + EncryptionKey: encPubKey, }, nil } diff --git a/testutil/accounttest/accountservice.go b/testutil/accounttest/accountservice.go index 6b5cedac..26941504 100644 --- a/testutil/accounttest/accountservice.go +++ b/testutil/accounttest/accountservice.go @@ -62,18 +62,13 @@ func (s *AccountTestService) Account() *accountdata.AccountData { } func (s *AccountTestService) NodeConf(addrs []string) nodeconf.NodeConfig { - encSk, err := keys.EncodeKeyToString(s.acc.SignKey) - if err != nil { - panic(err) - } - encEk, err := keys.EncodeKeyToString(s.acc.EncKey) + encEk, err := keys.EncodeKeyToString(s.acc.EncKey.GetPublic()) if err != nil { panic(err) } return nodeconf.NodeConfig{ PeerId: s.acc.PeerId, Addresses: addrs, - SigningKey: encSk, EncryptionKey: encEk, Types: []nodeconf.NodeType{nodeconf.NodeTypeTree}, }