diff options
author | zelig <viktor.tron@gmail.com> | 2015-03-23 21:00:06 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-03-27 03:00:18 +0800 |
commit | c4ea921876b0535022882c568b5cc6b0269db7d4 (patch) | |
tree | ed01e6cae2563fd61e7d4eb4964e5fe2fcbcb744 /crypto/key.go | |
parent | 658204bafcba6332e979aee690dc5cff6e46fb42 (diff) | |
download | dexon-c4ea921876b0535022882c568b5cc6b0269db7d4.tar.gz dexon-c4ea921876b0535022882c568b5cc6b0269db7d4.tar.zst dexon-c4ea921876b0535022882c568b5cc6b0269db7d4.zip |
import/export accounts
- cli: add passwordfile flag
- cli: change unlock flag only takes account
- cli: with unlock you are prompted for password or use passfile with password flag
- cli: unlockAccount used in normal client start (run) and accountExport
- cli: getPassword used in accountCreate and accountImport
- accounts: Manager.Import, Manager.Export
- crypto: SaveECDSA (to complement LoadECDSA) to save to file
- crypto: NewKeyFromECDSA added (used in accountImport and New = generated constructor)
Diffstat (limited to 'crypto/key.go')
-rw-r--r-- | crypto/key.go | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/crypto/key.go b/crypto/key.go index 9dbf37467..0b84bfec1 100644 --- a/crypto/key.go +++ b/crypto/key.go @@ -85,6 +85,16 @@ func (k *Key) UnmarshalJSON(j []byte) (err error) { return err } +func NewKeyFromECDSA(privateKeyECDSA *ecdsa.PrivateKey) *Key { + id := uuid.NewRandom() + key := &Key{ + Id: id, + Address: PubkeyToAddress(privateKeyECDSA.PublicKey), + PrivateKey: privateKeyECDSA, + } + return key +} + func NewKey(rand io.Reader) *Key { randBytes := make([]byte, 64) _, err := rand.Read(randBytes) @@ -97,11 +107,5 @@ func NewKey(rand io.Reader) *Key { panic("key generation: ecdsa.GenerateKey failed: " + err.Error()) } - id := uuid.NewRandom() - key := &Key{ - Id: id, - Address: PubkeyToAddress(privateKeyECDSA.PublicKey), - PrivateKey: privateKeyECDSA, - } - return key + return NewKeyFromECDSA(privateKeyECDSA) } |