BSHA3  0.17.99
P2P Blockchain, based on Bitcoin
Classes | Typedefs | Functions | Variables
sign.h File Reference
#include <boost/optional.hpp>
#include <hash.h>
#include <pubkey.h>
#include <script/interpreter.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

struct  KeyOriginInfo
 
class  SigningProvider
 An interface to be implemented by keystores that support signing. More...
 
class  HidingSigningProvider
 
struct  FlatSigningProvider
 
class  BaseSignatureCreator
 Interface for signature creators. More...
 
class  MutableTransactionSignatureCreator
 A signature creator for transactions. More...
 
struct  SignatureData
 
struct  PSBTInput
 A structure for PSBTs which contain per-input information. More...
 
struct  PSBTOutput
 A structure for PSBTs which contains per output information. More...
 
struct  PartiallySignedTransaction
 A version of CTransaction with the PSBT format. More...
 

Typedefs

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

Functions

FlatSigningProvider Merge (const FlatSigningProvider &a, const FlatSigningProvider &b)
 
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)
 
bool SignPSBTInput (const SigningProvider &provider, const CMutableTransaction &tx, PSBTInput &input, int index, int sighash=SIGHASH_ALL)
 Signs a PSBTInput, verifying that all provided data matches what is being signed. More...
 
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)
 

Variables

const SigningProviderDUMMY_SIGNING_PROVIDER
 
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 101 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 337 of file sign.cpp.

Here is the call 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 171 of file sign.h.

Here is the call graph for this function:

◆ IsSolvable()

bool IsSolvable ( const SigningProvider provider,
const CScript script 
)

Definition at line 497 of file sign.cpp.

Here is the caller graph for this function:

◆ Merge()

FlatSigningProvider Merge ( const FlatSigningProvider a,
const FlatSigningProvider b 
)

Definition at line 697 of file sign.cpp.

◆ 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 186 of file sign.cpp.

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 206 of file sign.h.

Here is the call graph for this function:

◆ SerializeToVector()

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

Definition at line 150 of file sign.h.

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

◆ SignPSBTInput()

bool SignPSBTInput ( const SigningProvider provider,
const CMutableTransaction tx,
PSBTInput input,
int  index,
int  sighash = SIGHASH_ALL 
)

Signs a PSBTInput, verifying that all provided data matches what is being signed.

Definition at line 242 of file sign.cpp.

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 424 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 436 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 158 of file sign.h.

Here is the call graph for this function:

◆ UpdateInput()

void UpdateInput ( CTxIn input,
const SignatureData data 
)

Definition at line 402 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 494 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 493 of file sign.cpp.

◆ DUMMY_SIGNING_PROVIDER

const SigningProvider& DUMMY_SIGNING_PROVIDER

Definition at line 495 of file sign.cpp.