From 512ffa2bf4308b44aa6f43f25238b375b58d7dbc Mon Sep 17 00:00:00 2001 From: Gustav Simonsson Date: Sun, 25 Jan 2015 02:07:20 +0100 Subject: Add accounts package and refactor key stores * Add initial UserAccount and AccountManager structs * Add NewAccount, Sign and Accounts functions * Refactor key stores to use key address as main identifier while keeping the UUID. * Use key address as file/dir names instead of UUID --- accounts/accounts_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 accounts/accounts_test.go (limited to 'accounts/accounts_test.go') diff --git a/accounts/accounts_test.go b/accounts/accounts_test.go new file mode 100644 index 000000000..381657718 --- /dev/null +++ b/accounts/accounts_test.go @@ -0,0 +1,19 @@ +package accounts + +import ( + "github.com/ethereum/go-ethereum/crypto" + "testing" +) + +func TestAccountManager(t *testing.T) { + ks := crypto.NewKeyStorePlain(crypto.DefaultDataDir()) + am := NewAccountManager(ks) + pass := "" // not used but required by API + a1, err := am.NewAccount(pass) + toSign := make([]byte, 4, 4) + toSign = []byte{0, 1, 2, 3} + _, err = am.Sign(a1.Addr, pass, toSign) + if err != nil { + t.Fatal(err) + } +} -- cgit v1.2.3 From 8d9752a557e33341a5fb73239dbae664b2f8aaa0 Mon Sep 17 00:00:00 2001 From: Gustav Simonsson Date: Wed, 28 Jan 2015 05:12:57 +0100 Subject: Address pull request comments * Use crypto.Sign instead of directly calling secp256k1 lib * Rename UserAccount to Account and Addr to Address (for consistency) * Change AccountManager.Sign to take ptr to Account instead of address byte array * Simplify copying of Accounts in Accounts() * PubkeyToAddress and GetEntropyCSPRNG now exported --- accounts/accounts_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'accounts/accounts_test.go') diff --git a/accounts/accounts_test.go b/accounts/accounts_test.go index 381657718..da9406ebe 100644 --- a/accounts/accounts_test.go +++ b/accounts/accounts_test.go @@ -10,9 +10,8 @@ func TestAccountManager(t *testing.T) { am := NewAccountManager(ks) pass := "" // not used but required by API a1, err := am.NewAccount(pass) - toSign := make([]byte, 4, 4) - toSign = []byte{0, 1, 2, 3} - _, err = am.Sign(a1.Addr, pass, toSign) + toSign := crypto.GetEntropyCSPRNG(32) + _, err = am.Sign(a1, pass, toSign) if err != nil { t.Fatal(err) } -- cgit v1.2.3