| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package accounts
- import (
- "testing"
- "time"
- "github.com/ethereum/go-ethereum/crypto"
- "github.com/ethereum/go-ethereum/crypto/randentropy"
- "github.com/ethereum/go-ethereum/ethutil"
- )
- func TestAccountManager(t *testing.T) {
- ks := crypto.NewKeyStorePlain(ethutil.DefaultDataDir() + "/testaccounts")
- am := NewAccountManager(ks, 100*time.Millisecond)
- pass := "" // not used but required by API
- a1, err := am.NewAccount(pass)
- toSign := randentropy.GetEntropyCSPRNG(32)
- _, err = am.SignLocked(a1, pass, toSign)
- if err != nil {
- t.Fatal(err)
- }
- // Cleanup
- time.Sleep(150 * time.Millisecond) // wait for locking
- accounts, err := am.Accounts()
- if err != nil {
- t.Fatal(err)
- }
- for _, account := range accounts {
- err := am.DeleteAccount(account.Address, pass)
- if err != nil {
- t.Fatal(err)
- }
- }
- }
- func TestAccountManagerLocking(t *testing.T) {
- ks := crypto.NewKeyStorePassphrase(ethutil.DefaultDataDir() + "/testaccounts")
- am := NewAccountManager(ks, 200*time.Millisecond)
- pass := "foo"
- a1, err := am.NewAccount(pass)
- toSign := randentropy.GetEntropyCSPRNG(32)
- // Signing without passphrase fails because account is locked
- _, err = am.Sign(a1, toSign)
- if err != ErrLocked {
- t.Fatal(err)
- }
- // Signing with passphrase works
- _, err = am.SignLocked(a1, pass, toSign)
- if err != nil {
- t.Fatal(err)
- }
- // Signing without passphrase works because account is temp unlocked
- _, err = am.Sign(a1, toSign)
- if err != nil {
- t.Fatal(err)
- }
- // Signing without passphrase fails after automatic locking
- time.Sleep(250 * time.Millisecond)
- _, err = am.Sign(a1, toSign)
- if err != ErrLocked {
- t.Fatal(err)
- }
- // Cleanup
- accounts, err := am.Accounts()
- if err != nil {
- t.Fatal(err)
- }
- for _, account := range accounts {
- err := am.DeleteAccount(account.Address, pass)
- if err != nil {
- t.Fatal(err)
- }
- }
- }
|