1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-30 03:18:20 +00:00
Commit Graph

10680 Commits

Author SHA1 Message Date
Andrew Kozlik
c9d1ff93f5 feat(legacy): Implement Taproot signing. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
9f65165887 feat(legacy): Introduce SIGHASH_ALL_TAPROOT. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
6fbbd14f8c refactor(legacy): Refactor compile_input_script_sig(). 2021-11-18 22:39:32 +01:00
Andrew Kozlik
9a051df127 chore(legacy): Support script_pubkey parameter for Bitcoin inputs. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
aed79eec65 chore(legacy): Recognize Taproot script types. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
6c9c727359 feat(legacy): Implement GetAddress for taproot. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
34e8284331 feat(legacy): Implement the BIP-341 common signature message computation. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
1f4573905f feat(crypto): Add TapSigHash to Hasher. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
78a9ab8123 feat(legacy): Add BIP86 paths to coin_path_check(). 2021-11-18 22:39:32 +01:00
Ondřej Vejpustek
2e4884199b build(crypto): build secp256k1-zkp with flags needed by sanitizers 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
9b1c5df451 feat(legacy): use secp256k1-zkp where possible 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
a22e6a688f build(legacy): build with secp256k1-zkp library 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
71b12a2a71 refactor(crypto): make secp256k1_context_writable_randomize() return status 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
ad38d8e324 refactor(crypto,core): make zkp_context_init() return status 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
ec808050ba refactor(crypto): return error from ecdsa routines on unexpected curve 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
f918cf9a27 fix(core): fix typos in modtrezorcrypto-bip340.h 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
3612620268 build(crypto,core): make secp256k1-zkp context as small as possible 2021-11-18 19:05:40 +01:00
Martin Milata
345c90ccba docs(common): add section on reproducible builds 2021-11-16 17:08:57 +01:00
Andrew Kozlik
221977ad9d chore(core): Convert SIGHASH_* consts to SigHashType enum. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
aaceb5bcc6 chore(core): Remove USE_SECP256K1_ZKP_BIP340 build option. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
ae35086bb9 refactor(core): Rename Hash143 to SigHasher and replace preimage_hash() with two functions. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
85ff3682c9 test(crypto): Add BIP-341 test vectors. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
398cea8f40 test(core): Add unit tests for BIP-341 signature hash. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
03b1b3bc6b feat(core): Show path warning for SignMessage. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
e559c5688b feat(tests): Test fake Taproot transaction attack. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
ef2ad57ec8 fix(core): Fix CoinJoin approval check.
After fixing the TxWeightCalculator the approver needs to account for the
weight of the coordinator's output.
2021-11-13 13:33:46 +01:00
Andrew Kozlik
56ac799626 feat(core): Support external inputs in TxWeightCalculator. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
f9f0b517e2 feat(core): Support Taproot in TxWeightCalculator. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
a635876807 test(core): Add multisig unit tests for TxWeightCalculator. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
9b579094c0 fix(core): Fix TxWeightCalculator.
- Refactor TxWeightCalculator to count inputs and outputs itself.
- Fix witness data weight by adding the weight of the witness stack item count
  for each input in segwit transactions and removing the weight of the
  nonsensical extra inputs count.
- Get multisig pubkey count from multisig.nodes or multisig.pubkeys like in
  multisig_get_pubkeys().
- Fix size of multisig script length encoding in segwit (varint vs. OP_PUSH).
- Improve comments.
2021-11-13 13:33:46 +01:00
Andrew Kozlik
a5bd1643fc fix(core): Fix OP_PUSH writing. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
93c02e2616 feat(tests): Add device test for external presigned Taproot input. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
5837750aaa feat(tests): Add fee bump device test for Taproot. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
f0d6e961a9 feat(tests): Add tests for spending Taproot UTXOs. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
554888ef84 fix(tests): Fix UI tests which fail earlier due to scriptPubKey derivation. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
ed9d3e3e9b fix(tests): Add script_pubkey field to external inputs. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
7653efb415 chore(core): Disable Taproot for altcoins. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
c0f853dc78 chore(core): Disable ownership proof generation for Taproot. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
475b95b11e feat(core): Disable prevtx streaming for Taproot. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
84e31310a1 feat(core): Support Taproot in SignatureVerifier. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
a17cdb7cfa feat(core): Implement Taproot signing. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
381e8bc85a feat(core): Implement the BIP-341 common signature message computation. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
99e4ed6f42 chore(core): Support script_pubkey parameter for Bitcoin inputs. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
630c06e782 feat(core): Support Taproot scripts. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
68ad1b07d2 feat(core): Recognize Taproot inputs. 2021-11-13 13:33:46 +01:00
Pavol Rusnak
57fddcfd9d feat(core): recognize Taproot change-outputs 2021-11-13 13:33:46 +01:00
Andrew Kozlik
390bcf4612 feat(tests): Add BIP86 test vectors for get_address(). 2021-11-13 13:33:46 +01:00
Pavol Rusnak
7091417c5d feat(tests): add taproot cases to test_msg_getaddress_segwit_native 2021-11-13 13:33:46 +01:00
Andrew Kozlik
dd7ed61939 feat(core): Implement GetAddress for taproot. 2021-11-13 13:33:46 +01:00
Pavol Rusnak
6406f0640d feat(core): introduce PATTERN_BIP86 to keychain 2021-11-13 13:33:46 +01:00