Bitcoin
Classes | Namespaces | Typedefs | Functions | Variables
sign.cpp File Reference
#include <script/sign.h>
#include <key.h>
#include <policy/policy.h>
#include <primitives/transaction.h>
#include <script/signingprovider.h>
#include <script/standard.h>
#include <uint256.h>

Classes

class  SignatureExtractorChecker
 
struct  anonymous_namespace{sign.cpp}::Stacks
 
class  anonymous_namespace{sign.cpp}::DummySignatureChecker
 
class  anonymous_namespace{sign.cpp}::DummySignatureCreator
 

Namespaces

 anonymous_namespace{sign.cpp}
 

Typedefs

typedef std::vector< unsigned char > valtype
 

Functions

static bool GetCScript (const SigningProvider &provider, const SignatureData &sigdata, const CScriptID &scriptid, CScript &script)
 
static bool GetPubKey (const SigningProvider &provider, const SignatureData &sigdata, const CKeyID &address, CPubKey &pubkey)
 
static bool CreateSig (const BaseSignatureCreator &creator, SignatureData &sigdata, const SigningProvider &provider, std::vector< unsigned char > &sig_out, const CPubKey &pubkey, const CScript &scriptcode, SigVersion sigversion)
 
static bool SignStep (const SigningProvider &provider, const BaseSignatureCreator &creator, const CScript &scriptPubKey, std::vector< valtype > &ret, txnouttype &whichTypeRet, SigVersion sigversion, SignatureData &sigdata)
 
static CScript PushAll (const std::vector< valtype > &values)
 
bool ProduceSignature (const SigningProvider &provider, const BaseSignatureCreator &creator, const CScript &fromPubKey, SignatureData &sigdata)
 
SignatureData DataFromTransaction (const CMutableTransaction &tx, unsigned int nIn, const CTxOut &txout)
 
void UpdateInput (CTxIn &input, const SignatureData &data)
 
bool SignSignature (const SigningProvider &provider, const CScript &fromPubKey, CMutableTransaction &txTo, unsigned int nIn, const CAmount &amount, int nHashType)
 
bool SignSignature (const SigningProvider &provider, const CTransaction &txFrom, CMutableTransaction &txTo, unsigned int nIn, int nHashType)
 
bool IsSolvable (const SigningProvider &provider, const CScript &script)
 
bool IsSegWitOutput (const SigningProvider &provider, const CScript &script)
 

Variables

const DummySignatureChecker anonymous_namespace{sign.cpp}::DUMMY_CHECKER
 
const BaseSignatureCreatorDUMMY_SIGNATURE_CREATOR = DummySignatureCreator(32, 32)
 
const BaseSignatureCreatorDUMMY_MAXIMUM_SIGNATURE_CREATOR = DummySignatureCreator(33, 32)
 

Typedef Documentation

◆ valtype

typedef std::vector<unsigned char> valtype

Function Documentation

◆ CreateSig()

static bool CreateSig ( const BaseSignatureCreator creator,
SignatureData sigdata,
const SigningProvider provider,
std::vector< unsigned char > &  sig_out,
const CPubKey pubkey,
const CScript scriptcode,
SigVersion  sigversion 
)
static

◆ DataFromTransaction()

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

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

◆ GetCScript()

static bool GetCScript ( const SigningProvider provider,
const SignatureData sigdata,
const CScriptID scriptid,
CScript script 
)
static

◆ GetPubKey()

static bool GetPubKey ( const SigningProvider provider,
const SignatureData sigdata,
const CKeyID address,
CPubKey pubkey 
)
static

◆ IsSegWitOutput()

bool IsSegWitOutput ( const SigningProvider provider,
const CScript script 
)

Check whether a scriptPubKey is known to be segwit.

◆ IsSolvable()

bool IsSolvable ( const SigningProvider provider,
const CScript script 
)

◆ ProduceSignature()

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

Produce a script signature using a generic signature creator.

◆ PushAll()

static CScript PushAll ( const std::vector< valtype > &  values)
static

◆ 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.

◆ SignSignature() [2/2]

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

◆ SignStep()

static bool SignStep ( const SigningProvider provider,
const BaseSignatureCreator creator,
const CScript scriptPubKey,
std::vector< valtype > &  ret,
txnouttype whichTypeRet,
SigVersion  sigversion,
SignatureData sigdata 
)
static

Sign scriptPubKey using signature made with creator. Signatures are returned in scriptSigRet (or returns false if scriptPubKey can't be signed), unless whichTypeRet is TX_SCRIPTHASH, in which case scriptSigRet is the redemption script. Returns false if scriptPubKey could not be completely satisfied.

◆ UpdateInput()

void UpdateInput ( CTxIn input,
const SignatureData data 
)

Variable Documentation

◆ DUMMY_MAXIMUM_SIGNATURE_CREATOR

const BaseSignatureCreator& DUMMY_MAXIMUM_SIGNATURE_CREATOR = DummySignatureCreator(33, 32)

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

◆ DUMMY_SIGNATURE_CREATOR

const BaseSignatureCreator& DUMMY_SIGNATURE_CREATOR = DummySignatureCreator(32, 32)

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