[#562] cmd/neofs-node: use NEP-6 wallet for keys

Also use neo-go private key wrapper where possible, as it
already has methods for (un)marshaling.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2021-05-31 11:55:38 +03:00 committed by Alex Vanin
parent 1553967328
commit 3f07313604
17 changed files with 119 additions and 53 deletions

View file

@ -1,6 +1,9 @@
package controlconfig
import (
"fmt"
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
"github.com/nspcc-dev/neofs-node/cmd/neofs-node/config"
)
@ -18,12 +21,24 @@ const (
GRPCEndpointDefault = ""
)
// AuthorizedKeysString returns string array of "authorized_keys" config
// AuthorizedKeys parses and returns array of "authorized_keys" config
// parameter from "control" section.
//
// Returns empty list if not set.
func AuthorizedKeysString(c *config.Config) []string {
return config.StringSliceSafe(c.Sub(subsection), "authorized_keys")
func AuthorizedKeys(c *config.Config) keys.PublicKeys {
strKeys := config.StringSliceSafe(c.Sub(subsection), "authorized_keys")
pubs := make(keys.PublicKeys, 0, len(strKeys))
for i := range strKeys {
pub, err := keys.NewPublicKeyFromString(strKeys[i])
if err != nil {
panic(fmt.Errorf("invalid permitted key for Control service %s: %w", strKeys[i], err))
}
pubs = append(pubs, pub)
}
return pubs
}
// GRPC returns structure that provides access to "grpc" subsection of