aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/ethereum/js_test.go6
-rw-r--r--cmd/ethereum/main.go5
-rw-r--r--cmd/mist/bindings.go7
-rw-r--r--cmd/mist/gui.go5
-rw-r--r--common/path.go30
-rw-r--r--common/path_test.go47
-rw-r--r--crypto/crypto.go6
-rw-r--r--jsre/jsre_test.go8
8 files changed, 22 insertions, 92 deletions
diff --git a/cmd/ethereum/js_test.go b/cmd/ethereum/js_test.go
index 580bc7a2b..5b962f621 100644
--- a/cmd/ethereum/js_test.go
+++ b/cmd/ethereum/js_test.go
@@ -2,6 +2,7 @@ package main
import (
"fmt"
+ "io/ioutil"
"os"
"path"
"testing"
@@ -9,7 +10,6 @@ import (
"github.com/robertkrimen/otto"
"github.com/ethereum/go-ethereum/accounts"
- "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/eth"
)
@@ -30,8 +30,8 @@ func testJEthRE(t *testing.T) (repl *jsre, ethereum *eth.Ethereum, err error) {
}
// FIXME: this does not work ATM
ks := crypto.NewKeyStorePlain("/tmp/eth/keys")
- common.WriteFile("/tmp/eth/keys/e273f01c99144c438695e10f24926dc1f9fbf62d/e273f01c99144c438695e10f24926dc1f9fbf62d",
- []byte(`{"Id":"RhRXD+fNRKS4jx+7ZfEsNA==","Address":"4nPwHJkUTEOGleEPJJJtwfn79i0=","PrivateKey":"h4ACVpe74uIvi5Cg/2tX/Yrm2xdr3J7QoMbMtNX2CNc="}`))
+ ioutil.WriteFile("/tmp/eth/keys/e273f01c99144c438695e10f24926dc1f9fbf62d/e273f01c99144c438695e10f24926dc1f9fbf62d",
+ []byte(`{"Id":"RhRXD+fNRKS4jx+7ZfEsNA==","Address":"4nPwHJkUTEOGleEPJJJtwfn79i0=","PrivateKey":"h4ACVpe74uIvi5Cg/2tX/Yrm2xdr3J7QoMbMtNX2CNc="}`), os.ModePerm)
port++
ethereum, err = eth.New(&eth.Config{
diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go
index 57729b206..6bbe1044f 100644
--- a/cmd/ethereum/main.go
+++ b/cmd/ethereum/main.go
@@ -355,10 +355,11 @@ func getPassPhrase(ctx *cli.Context, desc string, confirmation bool) (passphrase
passphrase = auth
} else {
- var err error
- if passphrase, err = common.ReadAllFile(passfile); err != nil {
+ passbytes, err := ioutil.ReadFile(passfile)
+ if err != nil {
utils.Fatalf("Unable to read password file '%s': %v", passfile, err)
}
+ passphrase = string(passbytes)
}
}
return
diff --git a/cmd/mist/bindings.go b/cmd/mist/bindings.go
index 8a9ec7cb1..e7ce50c35 100644
--- a/cmd/mist/bindings.go
+++ b/cmd/mist/bindings.go
@@ -22,13 +22,14 @@ package main
import (
"encoding/json"
+ "io/ioutil"
"os"
"strconv"
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/common"
- "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/core/state"
+ "github.com/ethereum/go-ethereum/core/types"
)
type plugin struct {
@@ -46,14 +47,14 @@ func (self *Gui) AddPlugin(pluginPath string) {
self.plugins[pluginPath] = plugin{Name: pluginPath, Path: pluginPath}
json, _ := json.MarshalIndent(self.plugins, "", " ")
- common.WriteFile(self.eth.DataDir+"/plugins.json", json)
+ ioutil.WriteFile(self.eth.DataDir+"/plugins.json", json, os.ModePerm)
}
func (self *Gui) RemovePlugin(pluginPath string) {
delete(self.plugins, pluginPath)
json, _ := json.MarshalIndent(self.plugins, "", " ")
- common.WriteFile(self.eth.DataDir+"/plugins.json", json)
+ ioutil.WriteFile(self.eth.DataDir+"/plugins.json", json, os.ModePerm)
}
func (self *Gui) DumpState(hash, path string) {
diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index 08f02f833..d37d6f81b 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -25,6 +25,7 @@ import "C"
import (
"encoding/json"
"fmt"
+ "io/ioutil"
"math/big"
"path"
"runtime"
@@ -91,8 +92,8 @@ func NewWindow(ethereum *eth.Ethereum) *Gui {
plugins: make(map[string]plugin),
serviceEvents: make(chan ServEv, 1),
}
- data, _ := common.ReadAllFile(path.Join(ethereum.DataDir, "plugins.json"))
- json.Unmarshal([]byte(data), &gui.plugins)
+ data, _ := ioutil.ReadFile(path.Join(ethereum.DataDir, "plugins.json"))
+ json.Unmarshal(data, &gui.plugins)
return gui
}
diff --git a/common/path.go b/common/path.go
index d38b1fd5b..a74a0d5bd 100644
--- a/common/path.go
+++ b/common/path.go
@@ -2,7 +2,6 @@ package common
import (
"fmt"
- "io/ioutil"
"os"
"os/user"
"path"
@@ -43,35 +42,6 @@ func FileExist(filePath string) bool {
return true
}
-func ReadAllFile(filePath string) (string, error) {
- file, err := os.Open(filePath)
- if err != nil {
- return "", err
- }
-
- data, err := ioutil.ReadAll(file)
- if err != nil {
- return "", err
- }
-
- return string(data), nil
-}
-
-func WriteFile(filePath string, content []byte) error {
- fh, err := os.OpenFile(filePath, os.O_TRUNC|os.O_RDWR|os.O_CREATE, os.ModePerm)
- if err != nil {
- return err
- }
- defer fh.Close()
-
- _, err = fh.Write(content)
- if err != nil {
- return err
- }
-
- return nil
-}
-
func AbsolutePath(Datadir string, filename string) string {
if path.IsAbs(filename) {
return filename
diff --git a/common/path_test.go b/common/path_test.go
index c831d1a57..4b90c543b 100644
--- a/common/path_test.go
+++ b/common/path_test.go
@@ -2,56 +2,11 @@ package common
import (
"os"
- "testing"
+ // "testing"
checker "gopkg.in/check.v1"
)
-func TestGoodFile(t *testing.T) {
- goodpath := "~/goethereumtest.pass"
- path := ExpandHomePath(goodpath)
- contentstring := "3.14159265358979323846"
-
- err := WriteFile(path, []byte(contentstring))
- if err != nil {
- t.Error("Could not write file")
- }
-
- if !FileExist(path) {
- t.Error("File not found at", path)
- }
-
- v, err := ReadAllFile(path)
- if err != nil {
- t.Error("Could not read file", path)
- }
- if v != contentstring {
- t.Error("Expected", contentstring, "Got", v)
- }
-
-}
-
-func TestBadFile(t *testing.T) {
- badpath := "/this/path/should/not/exist/goethereumtest.fail"
- path := ExpandHomePath(badpath)
- contentstring := "3.14159265358979323846"
-
- err := WriteFile(path, []byte(contentstring))
- if err == nil {
- t.Error("Wrote file, but should not be able to", path)
- }
-
- if FileExist(path) {
- t.Error("Found file, but should not be able to", path)
- }
-
- v, err := ReadAllFile(path)
- if err == nil {
- t.Error("Read file, but should not be able to", v)
- }
-
-}
-
type CommonSuite struct{}
var _ = checker.Suite(&CommonSuite{})
diff --git a/crypto/crypto.go b/crypto/crypto.go
index 2d26dd25e..442942c6c 100644
--- a/crypto/crypto.go
+++ b/crypto/crypto.go
@@ -9,6 +9,7 @@ import (
"crypto/sha256"
"fmt"
"io"
+ "io/ioutil"
"os"
"encoding/hex"
@@ -139,9 +140,10 @@ func LoadECDSA(file string) (*ecdsa.PrivateKey, error) {
return ToECDSA(buf), nil
}
-// SaveECDSA saves a secp256k1 private key from the given file.
+// SaveECDSA saves a secp256k1 private key to the given file with restrictive
+// permissions
func SaveECDSA(file string, key *ecdsa.PrivateKey) error {
- return common.WriteFile(file, FromECDSA(key))
+ return ioutil.WriteFile(file, FromECDSA(key), 0600)
}
func GenerateKey() (*ecdsa.PrivateKey, error) {
diff --git a/jsre/jsre_test.go b/jsre/jsre_test.go
index 8a771dae8..667ed4bdc 100644
--- a/jsre/jsre_test.go
+++ b/jsre/jsre_test.go
@@ -2,9 +2,9 @@ package jsre
import (
"github.com/robertkrimen/otto"
+ "io/ioutil"
+ "os"
"testing"
-
- "github.com/ethereum/go-ethereum/common"
)
type testNativeObjectBinding struct {
@@ -26,7 +26,7 @@ func (no *testNativeObjectBinding) TestMethod(call otto.FunctionCall) otto.Value
func TestExec(t *testing.T) {
jsre := New("/tmp")
- common.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`))
+ ioutil.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`), os.ModePerm)
err := jsre.Exec("test.js")
if err != nil {
t.Errorf("expected no error, got %v", err)
@@ -64,7 +64,7 @@ func TestBind(t *testing.T) {
func TestLoadScript(t *testing.T) {
jsre := New("/tmp")
- common.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`))
+ ioutil.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`), os.ModePerm)
_, err := jsre.Run(`loadScript("test.js")`)
if err != nil {
t.Errorf("expected no error, got %v", err)