From 572da73d4d475db0443f457d9383a3d513f189ee Mon Sep 17 00:00:00 2001 From: Ales Katona Date: Mon, 25 Apr 2016 11:23:40 -0600 Subject: eth: add personal_importRawKey for runtime private key import --- eth/api.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'eth') diff --git a/eth/api.go b/eth/api.go index a0b1f8ac2..4ebc9b2a0 100644 --- a/eth/api.go +++ b/eth/api.go @@ -18,6 +18,7 @@ package eth import ( "bytes" + "encoding/hex" "encoding/json" "errors" "fmt" @@ -439,6 +440,16 @@ func (s *PrivateAccountAPI) NewAccount(password string) (common.Address, error) return common.Address{}, err } +func (s *PrivateAccountAPI) ImportRawKey(privkey string, password string) (common.Address, error) { + hexkey, err := hex.DecodeString(privkey) + if err != nil { + return common.Address{}, err + } + + acc, err := s.am.ImportECDSA(crypto.ToECDSA(hexkey), password) + return acc.Address, err +} + // UnlockAccount will unlock the account associated with the given address with // the given password for duration seconds. If duration is nil it will use a // default of 300 seconds. It returns an indication if the account was unlocked. -- cgit v1.2.3