Changeset View
Changeset View
Standalone View
Standalone View
src/script/sign.h
Show First 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | |||||
public: | public: | ||||
PublicOnlySigningProvider(const SigningProvider *provider) | PublicOnlySigningProvider(const SigningProvider *provider) | ||||
: m_provider(provider) {} | : m_provider(provider) {} | ||||
bool GetCScript(const CScriptID &scriptid, CScript &script) const; | bool GetCScript(const CScriptID &scriptid, CScript &script) const; | ||||
bool GetPubKey(const CKeyID &address, CPubKey &pubkey) const; | bool GetPubKey(const CKeyID &address, CPubKey &pubkey) const; | ||||
}; | }; | ||||
struct FlatSigningProvider final : public SigningProvider { | |||||
std::map<CScriptID, CScript> scripts; | |||||
std::map<CKeyID, CPubKey> pubkeys; | |||||
std::map<CKeyID, CKey> keys; | |||||
bool GetCScript(const CScriptID &scriptid, CScript &script) const override; | |||||
bool GetPubKey(const CKeyID &keyid, CPubKey &pubkey) const override; | |||||
bool GetKey(const CKeyID &keyid, CKey &key) const override; | |||||
}; | |||||
FlatSigningProvider Merge(const FlatSigningProvider &a, | |||||
const FlatSigningProvider &b); | |||||
/** Interface for signature creators. */ | /** Interface for signature creators. */ | ||||
class BaseSignatureCreator { | class BaseSignatureCreator { | ||||
public: | public: | ||||
virtual ~BaseSignatureCreator() {} | virtual ~BaseSignatureCreator() {} | ||||
virtual const BaseSignatureChecker &Checker() const = 0; | virtual const BaseSignatureChecker &Checker() const = 0; | ||||
/** Create a singular (non-script) signature. */ | /** Create a singular (non-script) signature. */ | ||||
virtual bool CreateSig(const SigningProvider &provider, | virtual bool CreateSig(const SigningProvider &provider, | ||||
▲ Show 20 Lines • Show All 586 Lines • Show Last 20 Lines |