You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
842 B
34 lines
842 B
14 years ago
|
// Copyright (c) 2009-2011 Satoshi Nakamoto & Bitcoin developers
|
||
|
// Distributed under the MIT/X11 software license, see the accompanying
|
||
|
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||
|
|
||
|
#include "headers.h"
|
||
|
#include "db.h"
|
||
|
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// mapKeys
|
||
|
//
|
||
|
|
||
|
std::vector<unsigned char> GenerateNewKey()
|
||
|
{
|
||
|
RandAddSeedPerfmon();
|
||
|
CKey key;
|
||
|
key.MakeNewKey();
|
||
|
if (!AddKey(key))
|
||
|
throw std::runtime_error("GenerateNewKey() : AddKey failed");
|
||
|
return key.GetPubKey();
|
||
|
}
|
||
|
|
||
|
bool AddKey(const CKey& key)
|
||
|
{
|
||
|
CRITICAL_BLOCK(cs_mapKeys)
|
||
|
{
|
||
|
mapKeys[key.GetPubKey()] = key.GetPrivKey();
|
||
|
mapPubKeys[Hash160(key.GetPubKey())] = key.GetPubKey();
|
||
|
}
|
||
|
return CWalletDB().WriteKey(key.GetPubKey(), key.GetPrivKey());
|
||
|
}
|