X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fnncp%2Fcfg.go;h=3400ed83a93e7d850f85da7b47653497592e14a9;hb=97b386a58ef33cac2ba39ac2e273bc632eb026ad;hp=2b459b316e091ac69709d82a4a3aaded4e6a1e11;hpb=66f83cf53f27e357c2f7e395c7ccd5083e7bc417;p=nncp.git diff --git a/src/cypherpunks.ru/nncp/cfg.go b/src/cypherpunks.ru/nncp/cfg.go index 2b459b3..3400ed8 100644 --- a/src/cypherpunks.ru/nncp/cfg.go +++ b/src/cypherpunks.ru/nncp/cfg.go @@ -19,12 +19,15 @@ along with this program. If not, see . package nncp import ( + "bytes" "errors" + "log" "os" "path" "github.com/gorhill/cronexpr" "golang.org/x/crypto/ed25519" + "golang.org/x/crypto/ssh/terminal" "gopkg.in/yaml.v2" ) @@ -155,7 +158,7 @@ func NewNode(name string, yml NodeYAML) (*Node, error) { } var freqMinSize int64 if yml.FreqMinSize != nil { - freqMinSize = int64(*yml.FreqMinSize) + freqMinSize = int64(*yml.FreqMinSize) * 1024 } defOnlineDeadline := uint(DefaultDeadline) @@ -334,9 +337,21 @@ func (nodeOur *NodeOur) ToYAML() string { } func CfgParse(data []byte) (*Ctx, error) { + var err error + if bytes.Compare(data[:8], MagicNNCPBv1[:]) == 0 { + os.Stderr.WriteString("Passphrase:") + password, err := terminal.ReadPassword(0) + if err != nil { + log.Fatalln(err) + } + os.Stderr.WriteString("\n") + data, err = DeEBlob(data, password) + if err != nil { + return nil, err + } + } var cfgYAML CfgYAML - err := yaml.Unmarshal(data, &cfgYAML) - if err != nil { + if err = yaml.Unmarshal(data, &cfgYAML); err != nil { return nil, err } if _, exists := cfgYAML.Neigh["self"]; !exists {