bitcoin/test/functional/test_framework
Andrew Chow 357e3f6aa4
Merge bitcoin/bitcoin#28025: test: refactor: deduplicate legacy ECDSA signing for tx inputs
5cf44275c8 test: refactor: deduplicate legacy ECDSA signing for tx inputs (Sebastian Falbesoner)

Pull request description:

  There are several instances in functional tests and the framework (MiniWallet, feature_block.py, p2p_segwit.py) where we create a legacy ECDSA signature for a certain transaction's input by doing the following steps:

  1. calculate the `LegacySignatureHash` with the desired sighash type
  2. create the actual digital signature by calling `ECKey.sign_ecdsa` on the signature message hash calculated above
  3. put the DER-encoded result as CScript data push into tx input's scriptSig

  Create a new helper `sign_input_legacy` which hides those details and takes only the necessary parameters (tx, input index, relevant scriptPubKey, private key, sighash type [SIGHASH_ALL by default]). For further convenience, the signature is prepended to already existing data-pushes in scriptSig, in order to avoid rehashing the transaction after calling the new signing function.

ACKs for top commit:
  dimitaracev:
    ACK `5cf4427`
  achow101:
    ACK 5cf44275c8
  pinheadmz:
    ACK 5cf44275c8

Tree-SHA512: 8f0e4fb2c3e0f84fac5dbc4dda87973276242b0f628034272a7f3e45434c1e17dd1b26a37edfb302dcaf380dbfe98b0417391ace5e0ac9720155d8fba702031e
2023-07-11 17:25:40 -04:00
..
__init__.py Rename rpc-tests directory to functional 2017-03-20 10:40:31 -04:00
address.py refactor: move address_to_scriptpubkey to address.py 2023-03-28 16:54:28 +01:00
authproxy.py test: Rename EncodeDecimal to serialization_fallback 2023-06-29 19:51:43 +02:00
bdb.py scripted-diff: Bump copyright headers 2021-11-10 11:10:24 +01:00
bip340_test_vectors.csv tests: add BIP340 Schnorr signature support to test framework 2020-10-12 17:18:47 -07:00
blockfilter.py test: add compact block filter (BIP158) helper routines 2022-10-20 01:33:17 +02:00
blocktools.py refactor: use address_to_scriptpubkey to retrieve addresses scriptpubkey 2023-03-28 16:58:16 +01:00
coverage.py test: fix PEP484 no implicit optional argument types errors 2023-06-29 16:14:07 -06:00
descriptors.py Output a descriptor in createmultisig and addmultisigaddress 2020-01-30 23:55:36 -05:00
ellswift.py test: add ellswift test vectors from BIP324 2023-06-29 23:32:56 +05:30
ellswift_decode_test_vectors.csv test: add ellswift test vectors from BIP324 2023-06-29 23:32:56 +05:30
key.py test: add secp256k1 module with FE (field element) and GE (group element) classes 2023-06-27 09:34:48 -04:00
messages.py test: simplify uint256 (de)serialization routines 2023-04-23 02:47:20 +02:00
muhash.py test: remove modinv python util helper function 2023-04-28 14:19:18 +02:00
netutil.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
p2p.py test: Use self.wait_until over wait_until_helper 2023-03-08 11:31:56 +01:00
psbt.py test: PSBT: eliminate magic numbers for global unsigned tx key (0) 2023-03-04 12:43:38 +01:00
ripemd160.py Add pure Python RIPEMD-160 2021-12-08 14:29:34 -05:00
script.py test: refactor: deduplicate legacy ECDSA signing for tx inputs 2023-07-03 17:33:41 +02:00
script_util.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
secp256k1.py test: EC: optimize scalar multiplication of G by using lookup table 2023-06-27 09:34:52 -04:00
segwit_addr.py Use Bech32m encoding for v1+ segwit addresses 2021-03-16 10:48:36 -07:00
siphash.py script, test: fix python linter E275 errors with flake8 5.0.4 2023-01-03 10:59:56 -08:00
socks5.py scripted-diff: Update copyright in ./test 2019-03-02 10:58:35 -05:00
test_framework.py script, test: add missing python type annotations 2023-06-29 16:13:51 -06:00
test_node.py Merge bitcoin/bitcoin#28028: test: Check expected_stderr after stop 2023-07-11 10:14:48 +01:00
test_shell.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
util.py test: fix PEP484 no implicit optional argument types errors 2023-06-29 16:14:07 -06:00
wallet.py test: refactor: deduplicate legacy ECDSA signing for tx inputs 2023-07-03 17:33:41 +02:00
wallet_util.py test: refactor: introduce generate_keypair helper with WIF support 2023-06-19 17:38:14 +02:00
xswiftec_inv_test_vectors.csv test: add ellswift test vectors from BIP324 2023-06-29 23:32:56 +05:30