Bitcoin Core  0.15.99
P2P Digital Currency
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
CCryptoKeyStore Class Reference

Keystore which keeps the private keys encrypted. More...

#include <crypter.h>

Inheritance diagram for CCryptoKeyStore:
[legend]
Collaboration diagram for CCryptoKeyStore:
[legend]

Public Member Functions

 CCryptoKeyStore ()
 
bool IsCrypted () const
 
bool IsLocked () const
 
bool Lock ()
 
virtual bool AddCryptedKey (const CPubKey &vchPubKey, const std::vector< unsigned char > &vchCryptedSecret)
 
bool AddKeyPubKey (const CKey &key, const CPubKey &pubkey) override
 Add a key to the store. More...
 
bool HaveKey (const CKeyID &address) const override
 Check whether a key corresponding to a given address is present in the store. More...
 
bool GetKey (const CKeyID &address, CKey &keyOut) const override
 
bool GetPubKey (const CKeyID &address, CPubKey &vchPubKeyOut) const override
 
std::set< CKeyIDGetKeys () const override
 
- Public Member Functions inherited from CBasicKeyStore
bool AddCScript (const CScript &redeemScript) override
 Support for BIP 0013 : see https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki. More...
 
bool HaveCScript (const CScriptID &hash) const override
 
bool GetCScript (const CScriptID &hash, CScript &redeemScriptOut) const override
 
bool AddWatchOnly (const CScript &dest) override
 Support for Watch-only addresses. More...
 
bool RemoveWatchOnly (const CScript &dest) override
 
bool HaveWatchOnly (const CScript &dest) const override
 
bool HaveWatchOnly () const override
 
- Public Member Functions inherited from CKeyStore
virtual ~CKeyStore ()
 
virtual bool AddKey (const CKey &key)
 

Public Attributes

boost::signals2::signal< void(CCryptoKeyStore *wallet)> NotifyStatusChanged
 Wallet status (encrypted, locked) changed. More...
 

Protected Member Functions

bool SetCrypted ()
 
bool EncryptKeys (CKeyingMaterial &vMasterKeyIn)
 will encrypt previously unencrypted keys More...
 
bool Unlock (const CKeyingMaterial &vMasterKeyIn)
 

Protected Attributes

CryptedKeyMap mapCryptedKeys
 
- Protected Attributes inherited from CBasicKeyStore
KeyMap mapKeys
 
WatchKeyMap mapWatchKeys
 
ScriptMap mapScripts
 
WatchOnlySet setWatchOnly
 
- Protected Attributes inherited from CKeyStore
CCriticalSection cs_KeyStore
 

Private Attributes

CKeyingMaterial vMasterKey
 
std::atomic< bool > fUseCrypto
 if fUseCrypto is true, mapKeys must be empty if fUseCrypto is false, vMasterKey must be empty More...
 
bool fDecryptionThoroughlyChecked
 keeps track of whether Unlock has run a thorough check before More...
 

Detailed Description

Keystore which keeps the private keys encrypted.

It derives from the basic key store, which is used if no encryption is active.

Definition at line 115 of file crypter.h.

Constructor & Destructor Documentation

CCryptoKeyStore::CCryptoKeyStore ( )
inline

Definition at line 138 of file crypter.h.

Member Function Documentation

bool CCryptoKeyStore::AddCryptedKey ( const CPubKey vchPubKey,
const std::vector< unsigned char > &  vchCryptedSecret 
)
virtual

Reimplemented in CWallet.

Definition at line 240 of file crypter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CCryptoKeyStore::AddKeyPubKey ( const CKey key,
const CPubKey pubkey 
)
overridevirtual

Add a key to the store.

Reimplemented from CBasicKeyStore.

Reimplemented in CWallet.

Definition at line 216 of file crypter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CCryptoKeyStore::EncryptKeys ( CKeyingMaterial vMasterKeyIn)
protected

will encrypt previously unencrypted keys

Definition at line 306 of file crypter.cpp.

Here is the call graph for this function:

bool CCryptoKeyStore::GetKey ( const CKeyID address,
CKey keyOut 
) const
overridevirtual

Reimplemented from CBasicKeyStore.

Definition at line 260 of file crypter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

std::set< CKeyID > CCryptoKeyStore::GetKeys ( ) const
overridevirtual

Reimplemented from CBasicKeyStore.

Definition at line 293 of file crypter.cpp.

Here is the call graph for this function:

bool CCryptoKeyStore::GetPubKey ( const CKeyID address,
CPubKey vchPubKeyOut 
) const
overridevirtual

Reimplemented from CBasicKeyStore.

Definition at line 277 of file crypter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CCryptoKeyStore::HaveKey ( const CKeyID address) const
overridevirtual

Check whether a key corresponding to a given address is present in the store.

Reimplemented from CBasicKeyStore.

Definition at line 251 of file crypter.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CCryptoKeyStore::IsCrypted ( ) const
inline

Definition at line 142 of file crypter.h.

Here is the caller graph for this function:

bool CCryptoKeyStore::IsLocked ( ) const

Definition at line 155 of file crypter.cpp.

Here is the caller graph for this function:

bool CCryptoKeyStore::Lock ( )

Definition at line 164 of file crypter.cpp.

Here is the caller graph for this function:

bool CCryptoKeyStore::SetCrypted ( )
protected

Definition at line 144 of file crypter.cpp.

bool CCryptoKeyStore::Unlock ( const CKeyingMaterial vMasterKeyIn)
protected

Definition at line 178 of file crypter.cpp.

Here is the caller graph for this function:

Member Data Documentation

bool CCryptoKeyStore::fDecryptionThoroughlyChecked
private

keeps track of whether Unlock has run a thorough check before

Definition at line 126 of file crypter.h.

std::atomic<bool> CCryptoKeyStore::fUseCrypto
private

if fUseCrypto is true, mapKeys must be empty if fUseCrypto is false, vMasterKey must be empty

Definition at line 123 of file crypter.h.

CryptedKeyMap CCryptoKeyStore::mapCryptedKeys
protected

Definition at line 135 of file crypter.h.

boost::signals2::signal<void (CCryptoKeyStore* wallet)> CCryptoKeyStore::NotifyStatusChanged

Wallet status (encrypted, locked) changed.

Note: Called without locks held.

Definition at line 157 of file crypter.h.

CKeyingMaterial CCryptoKeyStore::vMasterKey
private

Definition at line 119 of file crypter.h.


The documentation for this class was generated from the following files: