mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 23:18:14 +01:00
Some extra comments
This commit is contained in:
@@ -7,21 +7,34 @@
|
||||
|
||||
#include "crypter.h"
|
||||
|
||||
// A virtual base class for key stores
|
||||
class CKeyStore
|
||||
{
|
||||
protected:
|
||||
mutable CCriticalSection cs_KeyStore;
|
||||
|
||||
public:
|
||||
// Add a key to the store.
|
||||
virtual bool AddKey(const CKey& key) =0;
|
||||
|
||||
// Check whether a key corresponding to a given address is present in the store.
|
||||
virtual bool HaveKey(const CBitcoinAddress &address) const =0;
|
||||
|
||||
// Retrieve a key corresponding to a given address from the store.
|
||||
// Return true if succesful.
|
||||
virtual bool GetKey(const CBitcoinAddress &address, CKey& keyOut) const =0;
|
||||
|
||||
// Retrieve only the public key corresponding to a given address.
|
||||
// This may succeed even if GetKey fails (e.g., encrypted wallets)
|
||||
virtual bool GetPubKey(const CBitcoinAddress &address, std::vector<unsigned char>& vchPubKeyOut) const;
|
||||
|
||||
// Generate a new key, and add it to the store
|
||||
virtual std::vector<unsigned char> GenerateNewKey();
|
||||
};
|
||||
|
||||
typedef std::map<CBitcoinAddress, CSecret> KeyMap;
|
||||
|
||||
// Basic key store, that keeps keys in an address->secret map
|
||||
class CBasicKeyStore : public CKeyStore
|
||||
{
|
||||
protected:
|
||||
@@ -53,6 +66,8 @@ public:
|
||||
|
||||
typedef std::map<CBitcoinAddress, std::pair<std::vector<unsigned char>, std::vector<unsigned char> > > CryptedKeyMap;
|
||||
|
||||
// Keystore which keeps the private keys encrypted
|
||||
// It derives from the basic key store, which is used if no encryption is active.
|
||||
class CCryptoKeyStore : public CBasicKeyStore
|
||||
{
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user