mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-02-10 22:52:46 +00:00
feat(legacy): implement GetPublicKey.ignore_xpub_magic behaviour
This commit is contained in:
parent
91e60036e0
commit
2f8d687405
@ -59,14 +59,24 @@ void fsm_msgGetPublicKey(const GetPublicKey *msg) {
|
|||||||
script_type == InputScriptType_SPENDMULTISIG)) {
|
script_type == InputScriptType_SPENDMULTISIG)) {
|
||||||
hdnode_serialize_public(node, fingerprint, coin->xpub_magic, resp->xpub,
|
hdnode_serialize_public(node, fingerprint, coin->xpub_magic, resp->xpub,
|
||||||
sizeof(resp->xpub));
|
sizeof(resp->xpub));
|
||||||
} else if (coin->has_segwit && coin->xpub_magic_segwit_p2sh &&
|
} else if (coin->has_segwit &&
|
||||||
script_type == InputScriptType_SPENDP2SHWITNESS) {
|
script_type == InputScriptType_SPENDP2SHWITNESS &&
|
||||||
|
!msg->ignore_xpub_magic && coin->xpub_magic_segwit_p2sh) {
|
||||||
hdnode_serialize_public(node, fingerprint, coin->xpub_magic_segwit_p2sh,
|
hdnode_serialize_public(node, fingerprint, coin->xpub_magic_segwit_p2sh,
|
||||||
resp->xpub, sizeof(resp->xpub));
|
resp->xpub, sizeof(resp->xpub));
|
||||||
} else if (coin->has_segwit && coin->xpub_magic_segwit_native &&
|
} else if (coin->has_segwit &&
|
||||||
script_type == InputScriptType_SPENDWITNESS) {
|
script_type == InputScriptType_SPENDP2SHWITNESS &&
|
||||||
|
msg->ignore_xpub_magic && coin->xpub_magic) {
|
||||||
|
hdnode_serialize_public(node, fingerprint, coin->xpub_magic, resp->xpub,
|
||||||
|
sizeof(resp->xpub));
|
||||||
|
} else if (coin->has_segwit && script_type == InputScriptType_SPENDWITNESS &&
|
||||||
|
!msg->ignore_xpub_magic && coin->xpub_magic_segwit_native) {
|
||||||
hdnode_serialize_public(node, fingerprint, coin->xpub_magic_segwit_native,
|
hdnode_serialize_public(node, fingerprint, coin->xpub_magic_segwit_native,
|
||||||
resp->xpub, sizeof(resp->xpub));
|
resp->xpub, sizeof(resp->xpub));
|
||||||
|
} else if (coin->has_segwit && script_type == InputScriptType_SPENDWITNESS &&
|
||||||
|
msg->ignore_xpub_magic && coin->xpub_magic) {
|
||||||
|
hdnode_serialize_public(node, fingerprint, coin->xpub_magic, resp->xpub,
|
||||||
|
sizeof(resp->xpub));
|
||||||
} else {
|
} else {
|
||||||
fsm_sendFailure(FailureType_Failure_DataError,
|
fsm_sendFailure(FailureType_Failure_DataError,
|
||||||
_("Invalid combination of coin and script_type"));
|
_("Invalid combination of coin and script_type"));
|
||||||
|
Loading…
Reference in New Issue
Block a user