Bitcoin Core  0.18.99
P2P Digital Currency
Classes | Typedefs | Functions | Variables
sign.h File Reference
#include <boost/optional.hpp>
#include <hash.h>
#include <pubkey.h>
#include <script/interpreter.h>
#include <script/keyorigin.h>
#include <streams.h>
Include dependency graph for sign.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  BaseSignatureCreator
 Interface for signature creators. More...
 
class  MutableTransactionSignatureCreator
 A signature creator for transactions. More...
 
struct  SignatureData
 

Typedefs

typedef std::pair< CPubKey, std::vector< unsigned char > > SigPair
 

Functions

template<typename Stream , typename... X>
void SerializeToVector (Stream &s, const X &... args)
 
template<typename Stream , typename... X>
void UnserializeFromVector (Stream &s, X &... args)
 
template<typename Stream >
void DeserializeHDKeypaths (Stream &s, const std::vector< unsigned char > &key, std::map< CPubKey, KeyOriginInfo > &hd_keypaths)
 
template<typename Stream >
void SerializeHDKeypaths (Stream &s, const std::map< CPubKey, KeyOriginInfo > &hd_keypaths, uint8_t type)
 
bool ProduceSignature (const SigningProvider &provider, const BaseSignatureCreator &creator, const CScript &scriptPubKey, SignatureData &sigdata)
 Produce a script signature using a generic signature creator. More...
 
bool SignSignature (const SigningProvider &provider, const CScript &fromPubKey, CMutableTransaction &txTo, unsigned int nIn, const CAmount &amount, int nHashType)
 Produce a script signature for a transaction. More...
 
bool SignSignature (const SigningProvider &provider, const CTransaction &txFrom, CMutableTransaction &txTo, unsigned int nIn, int nHashType)
 
SignatureData DataFromTransaction (const CMutableTransaction &tx, unsigned int nIn, const CTxOut &txout)
 Extract signature data from a transaction input, and insert it. More...
 
void UpdateInput (CTxIn &input, const SignatureData &data)
 
bool IsSolvable (const SigningProvider &provider, const CScript &script)
 
bool IsSegWitOutput (const SigningProvider &provider, const CScript &script)
 Check whether a scriptPubKey is known to be segwit. More...
 

Variables

const BaseSignatureCreatorDUMMY_SIGNATURE_CREATOR
 A signature creator that just produces 71-byte empty signatures. More...
 
const BaseSignatureCreatorDUMMY_MAXIMUM_SIGNATURE_CREATOR
 A signature creator that just produces 72-byte empty signatures. More...
 

Typedef Documentation

◆ SigPair

typedef std::pair<CPubKey, std::vector<unsigned char> > SigPair

Definition at line 54 of file sign.h.

Function Documentation

◆ DataFromTransaction()

SignatureData DataFromTransaction ( const CMutableTransaction tx,
unsigned int  nIn,
const CTxOut txout 
)

Extract signature data from a transaction input, and insert it.

Definition at line 284 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DeserializeHDKeypaths()

template<typename Stream >
void DeserializeHDKeypaths ( Stream &  s,
const std::vector< unsigned char > &  key,
std::map< CPubKey, KeyOriginInfo > &  hd_keypaths 
)

Definition at line 102 of file sign.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsSegWitOutput()

bool IsSegWitOutput ( const SigningProvider provider,
const CScript script 
)

Check whether a scriptPubKey is known to be segwit.

Definition at line 451 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsSolvable()

bool IsSolvable ( const SigningProvider provider,
const CScript script 
)

Definition at line 432 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProduceSignature()

bool ProduceSignature ( const SigningProvider provider,
const BaseSignatureCreator creator,
const CScript scriptPubKey,
SignatureData sigdata 
)

Produce a script signature using a generic signature creator.

Definition at line 191 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SerializeHDKeypaths()

template<typename Stream >
void SerializeHDKeypaths ( Stream &  s,
const std::map< CPubKey, KeyOriginInfo > &  hd_keypaths,
uint8_t  type 
)

Definition at line 137 of file sign.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SerializeToVector()

template<typename Stream , typename... X>
void SerializeToVector ( Stream &  s,
const X &...  args 
)

Definition at line 81 of file sign.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SignSignature() [1/2]

bool SignSignature ( const SigningProvider provider,
const CScript fromPubKey,
CMutableTransaction txTo,
unsigned int  nIn,
const CAmount amount,
int  nHashType 
)

Produce a script signature for a transaction.

Definition at line 371 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SignSignature() [2/2]

bool SignSignature ( const SigningProvider provider,
const CTransaction txFrom,
CMutableTransaction txTo,
unsigned int  nIn,
int  nHashType 
)

Definition at line 383 of file sign.cpp.

Here is the call graph for this function:

◆ UnserializeFromVector()

template<typename Stream , typename... X>
void UnserializeFromVector ( Stream &  s,
X &...  args 
)

Definition at line 89 of file sign.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateInput()

void UpdateInput ( CTxIn input,
const SignatureData data 
)

Definition at line 349 of file sign.cpp.

Here is the caller graph for this function:

Variable Documentation

◆ DUMMY_MAXIMUM_SIGNATURE_CREATOR

const BaseSignatureCreator& DUMMY_MAXIMUM_SIGNATURE_CREATOR

A signature creator that just produces 72-byte empty signatures.

Definition at line 430 of file sign.cpp.

◆ DUMMY_SIGNATURE_CREATOR

const BaseSignatureCreator& DUMMY_SIGNATURE_CREATOR

A signature creator that just produces 71-byte empty signatures.

Definition at line 429 of file sign.cpp.