From 3d1e2bc20d578c936239f44b4bed4a3aa83eeed6 Mon Sep 17 00:00:00 2001 From: overcat <4catcode@gmail.com> Date: Tue, 9 Apr 2024 15:05:41 +0800 Subject: [PATCH] fix(legacy): resolves the issue of incorrect signature generation when the Stellar transaction source account differs from the signing account. --- common/tests/fixtures/stellar/sign_tx.json | 32 ++++++++++++++- legacy/firmware/.changelog.d/3691.fixed | 1 + legacy/firmware/stellar.c | 34 +++++++++++++-- tests/ui_tests/fixtures.json | 48 ++++++++++++++-------- 4 files changed, 95 insertions(+), 20 deletions(-) create mode 100644 legacy/firmware/.changelog.d/3691.fixed diff --git a/common/tests/fixtures/stellar/sign_tx.json b/common/tests/fixtures/stellar/sign_tx.json index 738b32ad3..dca6f66b9 100644 --- a/common/tests/fixtures/stellar/sign_tx.json +++ b/common/tests/fixtures/stellar/sign_tx.json @@ -943,7 +943,7 @@ } }, { - "name": "source_account", + "name": "op_source_account_not_equal_signing_key", "parameters": { "xdr": "AAAAAgAAAAAvIrnGLwi3dPPr5t1ufbk8PsLL3gJ5Vho9nFIluMMikgAAAGQAAAAAAAAD6AAAAAEAAAAAG4J3zQAAAABd5CqEAAAAAAAAAAEAAAABAAAAAF1VZCRmsYW4QxUuniGRUdvFiSAn7EAQGlF77VygMMLgAAAAAQAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAAAAAAAHc8WmAAAAAAAAAAA", "address_n": "m/44'/148'/0'", @@ -972,6 +972,36 @@ "public_key": "2f22b9c62f08b774f3ebe6dd6e7db93c3ec2cbde0279561a3d9c5225b8c32292", "signature": "Ps6r6f8yFu3IS19JKJNgAsJ3QwWW7YOckCRj96XK5BP3UGlTyI4K025E/+DRba/tiscMKBL52ERHkdSf3A8wCQ==" } + }, + { + "name": "tx_source_account_not_equal_signing_key", + "parameters": { + "xdr": "AAAAAgAAAADTSPIr3MGTm9sMI5oJJ/GuXE2KFkCxLma1cUfqm1LKzQAAAGQAAAAAAAAD6AAAAAEAAAAAG4J3zQAAAABd5CqEAAAAAAAAAAEAAAAAAAAAAQAAAABdVWQkZrGFuEMVLp4hkVHbxYkgJ+xAEBpRe+1coDDC4AAAAAAAAAAAHc8WmAAAAAAAAAAA", + "address_n": "m/44'/148'/0'", + "network_passphrase": "Test SDF Network ; September 2015", + "tx": { + "source_account": "GDJUR4RL3TAZHG63BQRZUCJH6GXFYTMKCZALCLTGWVYUP2U3KLFM2TUQ", + "fee": 100, + "sequence_number": 1000, + "timebounds_start": 461535181, + "timebounds_end": 1575234180, + "memo_type": "NONE" + }, + "operations": [ + { + "_message_type": "StellarPaymentOp", + "destination_account": "GBOVKZBEM2YYLOCDCUXJ4IMRKHN4LCJAE7WEAEA2KF562XFAGDBOB64V", + "asset": { + "type": "NATIVE" + }, + "amount": 500111000 + } + ] + }, + "result": { + "public_key": "2f22b9c62f08b774f3ebe6dd6e7db93c3ec2cbde0279561a3d9c5225b8c32292", + "signature": "6OL75JoHdYg5eomt6fXmLffqYwix+jwd1RzOq7M2I+/7obUgdtZPYBm5Cjnhov5wAlWPHE2seQ/BuEZMrZUJCA==" + } } ] } diff --git a/legacy/firmware/.changelog.d/3691.fixed b/legacy/firmware/.changelog.d/3691.fixed new file mode 100644 index 000000000..98616b4c2 --- /dev/null +++ b/legacy/firmware/.changelog.d/3691.fixed @@ -0,0 +1 @@ +Stellar: resolves the issue of incorrect signature generation when the transaction source account differs from the signing account. diff --git a/legacy/firmware/stellar.c b/legacy/firmware/stellar.c index 31145a94d..8a64efdff 100644 --- a/legacy/firmware/stellar.c +++ b/legacy/firmware/stellar.c @@ -92,8 +92,12 @@ bool stellar_signingInit(const StellarSignTx *msg) { memcpy(&(stellar_activeTx.address_n), &(msg->address_n), sizeof(stellar_activeTx.address_n)); - // Hash: public key - stellar_hashupdate_address(node->public_key + 1); + uint8_t source_bytes[STELLAR_KEY_SIZE] = {0}; + if (!stellar_getAddressBytes(msg->source_account, source_bytes)) { + return false; + } + // Hash: source account + stellar_hashupdate_address(source_bytes); // Hash: fee stellar_hashupdate_uint32(msg->fee); @@ -1813,9 +1817,33 @@ void stellar_layoutTransactionSummary(const StellarSignTx *msg) { return; } - // Reset lines for displaying memo + // Reset lines for displaying memo (or source account) memzero(str_lines, sizeof(str_lines)); + uint8_t source_bytes[STELLAR_KEY_SIZE] = {0}; + if (!stellar_getAddressBytes(msg->source_account, source_bytes)) { + stellar_signingFail(_("Invalid source account address")); + return; + } + + // When the signing_pubkey is different from the source account, display the + // source account. + if (memcmp(source_bytes, stellar_activeTx.signing_pubkey, STELLAR_KEY_SIZE) != + 0) { + const char **str_source_rows = stellar_lineBreakAddress(source_bytes); + + stellar_layoutTransactionDialog(_("Tx source account OK?"), NULL, + str_source_rows[0], str_source_rows[1], + str_source_rows[2]); + if (!protectButton(ButtonRequestType_ButtonRequest_ProtectCall, false)) { + stellar_signingFail(_("User canceled")); + return; + } + + // Reset lines for displaying memo + memzero(str_lines, sizeof(str_lines)); + } + switch (msg->memo_type) { case StellarMemoType_NONE: strlcpy(str_lines[0], _("[No Memo Set]"), sizeof(str_lines[0])); diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json index 199c16d60..1cc6ba14f 100644 --- a/tests/ui_tests/fixtures.json +++ b/tests/ui_tests/fixtures.json @@ -620,11 +620,12 @@ "T1_en_stellar-test_stellar.py::test_sign_tx[memo_return]": "542f7eb47c0007810de6c43b20c9a9e3f3c64bb695e375137154e5bdda3b2f50", "T1_en_stellar-test_stellar.py::test_sign_tx[memo_text]": "43ec6d06d403c3d0a7f6ce3c3df48b3611094db491a8b382165d1412e4704331", "T1_en_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "1bd531cd757b8ca295201f9dcfa9e19e56f0ba697b6200819ab06d041563247d", -"T1_en_stellar-test_stellar.py::test_sign_tx[source_account]": "9eeaa72b46decd6e881b571ba534e5006f9f11f4d2f60c97e817d6467e9b1742", +"T1_en_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "9eeaa72b46decd6e881b571ba534e5006f9f11f4d2f60c97e817d6467e9b1742", "T1_en_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "57105ad361869c1adeec5d3846003659c6b1fe5d8d38b7d6f23ec6bd8e01b972", "T1_en_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "a92beafd4711e0768f9453c3cf7958882f4f3439d9e14ca1e69db617e00bd790", "T1_en_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "da273d8bb839bc1f80ff5af65d4c7f4d67ccc5be41a0a5f7a24452f12f7975d7", "T1_en_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "1c8218b025efff40431aa5e468f33475360d40d99fbfe5f4fd8d4607f5857b53", +"T1_en_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "0e4fa611347aaa1fd52f7423f629445f154d0cc777d5361e82e0a84e36a97cdd", "T1_en_test_autolock.py::test_apply_auto_lock_delay": "f7bfdce7fa7579fe43beb0afd9b123114ea873f28da530abe3df8802570012bb", "T1_en_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "8c78ab77bce7753cd12e8085ca4da375c4882e8c3c8c9df212b2a39a3f9cba3c", "T1_en_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "8c78ab77bce7753cd12e8085ca4da375c4882e8c3c8c9df212b2a39a3f9cba3c", @@ -2201,11 +2202,12 @@ "T3T1_cs_stellar-test_stellar.py::test_sign_tx[memo_return]": "3124987aa4012a14daf7f33e809daa34311e3b0e5b795d4d174a308a077b7d64", "T3T1_cs_stellar-test_stellar.py::test_sign_tx[memo_text]": "b3cd453f7fe6d01ffe55b383a08a80f53729da601318287cf3e903bc799666ce", "T3T1_cs_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "e0ef545906f8f8bf48ddf8d6d6fa068490e52a638051ef1e59fae786bb8de80f", -"T3T1_cs_stellar-test_stellar.py::test_sign_tx[source_account]": "ee5cff27aba12583b6da615813bfb3323baffc0daa3fc3c6c0bfb86fea15f412", +"T3T1_cs_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "ee5cff27aba12583b6da615813bfb3323baffc0daa3fc3c6c0bfb86fea15f412", "T3T1_cs_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "287ba699bf5a26e989915c5c02668aba28a43dd9bf7a4faddbd89407b24c30ab", "T3T1_cs_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "2dca165c324ba6890a980b7448fd814aa8bc1a491a739943f6c11e0237be0952", "T3T1_cs_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "9a828a7c8a7cff8b523cdb0ee8e7683196fce85d29ecbba79790e7ea281af87b", "T3T1_cs_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "eefeee9a792a4d78f14b5a64540a68fb3f68bfa4bf9c85a8d38c500af92a94b0", +"T3T1_cs_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "fb4eca10eef0888387dd42d4804dff9db31eddc06dabf1df2a68bc22068efbbe", "T3T1_cs_test_autolock.py::test_apply_auto_lock_delay": "c4b7487ac2f28fbdb9adaa09905fb63cc48985f63d30edf9a70167e7059abb1f", "T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "e38412b9bb9f169e0488c56d9afc224738f555907be8594066918fed98f432e1", "T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "e38412b9bb9f169e0488c56d9afc224738f555907be8594066918fed98f432e1", @@ -3612,11 +3614,12 @@ "T3T1_de_stellar-test_stellar.py::test_sign_tx[memo_return]": "dc2b836a5f06184494867d792aac6dcefccd7207394b7ad9def421e3ee1e4e6b", "T3T1_de_stellar-test_stellar.py::test_sign_tx[memo_text]": "b3e87b5b5e4d0a8572b0a6b77f6ccd916ba03665c1304128ec2fb03be1abfcaf", "T3T1_de_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "4de2eb2c8266dff4dfadb06ad2934cbc5612a243324a60c249ef727cf0b938ab", -"T3T1_de_stellar-test_stellar.py::test_sign_tx[source_account]": "37193478dc53884057cca22805a6cae606cdda13142a15dcf50f59214171d26d", +"T3T1_de_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "37193478dc53884057cca22805a6cae606cdda13142a15dcf50f59214171d26d", "T3T1_de_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "b06eaac7369935dbc16272456e89d332fefdd9f35845538323915719fc3a2d1e", "T3T1_de_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "56d716ecbf5e78b1b95818432d1669fd5334ec81b78094024a6592d278a4adfa", "T3T1_de_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "6eef0d1e2bbbb12716fa6f6863e2edaf3954540e24bc9dd8ed149645630349d1", "T3T1_de_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "62a29c715c550d8d650c5d2ef89f0c298d8f229f21891daa609665f80690164a", +"T3T1_de_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "8bd4bcc4febf5ecaa85d63f04b70cf96f569a957254892e3cd95e6b12aeca2b8", "T3T1_de_test_autolock.py::test_apply_auto_lock_delay": "e7cc38e109bd253741fe8ee3d20891b7c3e36c7e780c8bebec031fd318a6a9f1", "T3T1_de_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "73de31e26f649f997bf92cf50ec4d05f25021602a450ea71956f826b2a50913c", "T3T1_de_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "73de31e26f649f997bf92cf50ec4d05f25021602a450ea71956f826b2a50913c", @@ -5023,11 +5026,12 @@ "T3T1_en_stellar-test_stellar.py::test_sign_tx[memo_return]": "989d9d0713f644338e5696be59848b67119851fd64e44d290a43c8cecd554a58", "T3T1_en_stellar-test_stellar.py::test_sign_tx[memo_text]": "31deca2fef5dc1d898a3f6d95c2f715f0c85d8be48a2405d596fa0b955597359", "T3T1_en_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "cdbd1117fded4dc3efef76f723f5ca646461b86a89f741011a25a794cd016b29", -"T3T1_en_stellar-test_stellar.py::test_sign_tx[source_account]": "641f0ec39c752109a6e287478d529b1e5d3d98cb4eb6b23320a8ba7d97baffba", +"T3T1_en_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "641f0ec39c752109a6e287478d529b1e5d3d98cb4eb6b23320a8ba7d97baffba", "T3T1_en_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "808e6873ffc198a8271244e51538a91f4a737e716bccd441e84775589ad75138", "T3T1_en_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "ee0c8989f31e75c36a4a74f3715d5bf341366cdbd6b750da99ec1f91d7b90db4", "T3T1_en_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "06aef40642884843baabe7e7d6b69bcd772d6f1e16f231d2c6244b6a727bd08c", "T3T1_en_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "93471a4ccc8f77e64e0fee636363a90bb05039a517f9259f898f460fb6336f00", +"T3T1_en_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "2a23c234c26217026172b4c55c0a32d33e8b3002c4c618cbc4f6f80f28ad0501", "T3T1_en_test_autolock.py::test_apply_auto_lock_delay": "039b45fb265d4c7515160a8c54b38ac0526c349fb4f4855a607c656b91b30189", "T3T1_en_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "e74c2b59a4164fab459b67b7fc2fd6fc349ede0b8efaeac638659ae25e4790e3", "T3T1_en_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "e74c2b59a4164fab459b67b7fc2fd6fc349ede0b8efaeac638659ae25e4790e3", @@ -6434,11 +6438,12 @@ "T3T1_es_stellar-test_stellar.py::test_sign_tx[memo_return]": "7aa7edfa224e4a35985a780c40f2c2b820c6b6a59da0d21490ea3efc0dffe70f", "T3T1_es_stellar-test_stellar.py::test_sign_tx[memo_text]": "70dcdc49b7296999b55c0ffae6898e5758634bcc4175db294357a564759ae504", "T3T1_es_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "2d2f8692dbe71ce565dd78849dc888cbb94eb2e4cc63471de0b50930eddf134a", -"T3T1_es_stellar-test_stellar.py::test_sign_tx[source_account]": "f3d01f3d94588d4f0b7be2cac2adef0e163c7fbcc1227771722b160b5197be12", +"T3T1_es_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "f3d01f3d94588d4f0b7be2cac2adef0e163c7fbcc1227771722b160b5197be12", "T3T1_es_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "9699503349c6012c0754b6d6761c58aa85ee253d7c75e37774f97be4ba4ac140", "T3T1_es_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "8775fb7c37a2948937d1fb992199b1c9d602aaec65fa7db31b6133b8b5757955", "T3T1_es_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "a5d3be33997d684697091a2dfff21ca9c4eb05999b7b1042a65534600e6590fc", "T3T1_es_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "ab72112521b7870c8083d64403f9819647ec74865210283c2061853e24b56f08", +"T3T1_es_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "cf1f6e8a230ff0c44b7350a387451e3793daae19ba2b862c77ef83c3d48f6200", "T3T1_es_test_autolock.py::test_apply_auto_lock_delay": "cf5d7ad864c98003714bf35f3de31259fa84906b034868e2e08b4a1963ecec6c", "T3T1_es_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "3ee4c0cc05651872be7c05392769630171f12c7c04778c3be9880421d22f1144", "T3T1_es_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "3ee4c0cc05651872be7c05392769630171f12c7c04778c3be9880421d22f1144", @@ -7845,11 +7850,12 @@ "T3T1_fr_stellar-test_stellar.py::test_sign_tx[memo_return]": "c41ce3ffe8be3d27f4f75a8878527f7fdb5bff8a86aa5428926f816a31f0bf2f", "T3T1_fr_stellar-test_stellar.py::test_sign_tx[memo_text]": "c62803145a607c580875a767f32c7ba21adf5320c41ec77fab3a3740309163e7", "T3T1_fr_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "a194b270b5c59e5d1c2f8afc860ec34d2233413f9028f97fe45294b1b9676a9b", -"T3T1_fr_stellar-test_stellar.py::test_sign_tx[source_account]": "7755621ef5c84a8081f6b92e92f16c9bfc64cc9c65eb30af02f11ced40ab75ee", +"T3T1_fr_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "7755621ef5c84a8081f6b92e92f16c9bfc64cc9c65eb30af02f11ced40ab75ee", "T3T1_fr_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "9f166638c3b736615b7c2e760ad7526cee9ad07822bc4b5937c34292ac4655c7", "T3T1_fr_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "62ff783eebc5b5110a53424b8060b351b2c222cf9f8607967a25a47e2e487caf", "T3T1_fr_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "0eafa8f484e6288865612b1d348e52da4926aea1c32164c8a1b2dc9b6fc72e30", "T3T1_fr_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "3bdb18df20c374ed938d9b83f5b293984feec50568bbb444ccc15570d75cab47", +"T3T1_fr_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "309f9fb4af9d4ccb9f3a7ae2c157ca3a6ea981587cc5f07f81e3cece731615dd", "T3T1_fr_test_autolock.py::test_apply_auto_lock_delay": "4a945f3abfc1d67a3691d82f21bef4364b7b1b99a58826608e138b3c809a2b0f", "T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "c79ed5f71947f3dc82ab6a67002371f02c1a959e0f2ad1b7d2beec9373abd206", "T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "c79ed5f71947f3dc82ab6a67002371f02c1a959e0f2ad1b7d2beec9373abd206", @@ -9440,11 +9446,12 @@ "TR_cs_stellar-test_stellar.py::test_sign_tx[memo_return]": "8374b78427587a0efde2feaa539a6ba9a784b4ebf3784dfa6b0e198b05812eab", "TR_cs_stellar-test_stellar.py::test_sign_tx[memo_text]": "91c0cae3c91da30eeeb9cdbb81fa1d233bca6f40ac410d5f7828d816978820be", "TR_cs_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "83ef27aae9b7f2381caceb962ade6a5beec60c1955dc59bc481dde562aafbe21", -"TR_cs_stellar-test_stellar.py::test_sign_tx[source_account]": "341f77bfd56a569aa0efdeadd1d466f4ff1eb955e74e0abafb3409457ffd8250", +"TR_cs_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "341f77bfd56a569aa0efdeadd1d466f4ff1eb955e74e0abafb3409457ffd8250", "TR_cs_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "d51b459c45d8e608e665496f50953b2b6ece33c2a589089401bb4871c2b33608", "TR_cs_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "11d8724290285ac0a2bb2ef85c2d2d9adc97cbaecb0e7a485b3814f10badacc3", "TR_cs_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "14d325f69adb1eccc69cbbab3f6d6f9d3a00d8504124c1fb53d07fc3f7c12fbf", "TR_cs_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "5aacb041dfc500aedeb6c7507d73b53e97d464f0de8ab3838164ab4d86e2ae8c", +"TR_cs_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "f3455488202766f0b920f705659b142c6f313c7205af72428c3a0628dae06591", "TR_cs_test_authenticate_device.py::test_authenticate_device[!\\xf3\\xd4\\x0ec\\xc3\\x04\\xd01-b\\xeb\\x82-e4b4eb3a": "c211ebbb663b5da935616fcf6fba3598c371ef1654abbe617c116f837e27c285", "TR_cs_test_authenticate_device.py::test_authenticate_device[\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\-d824e03c": "c211ebbb663b5da935616fcf6fba3598c371ef1654abbe617c116f837e27c285", "TR_cs_test_authenticate_device.py::test_authenticate_device[]": "c211ebbb663b5da935616fcf6fba3598c371ef1654abbe617c116f837e27c285", @@ -10809,11 +10816,12 @@ "TR_de_stellar-test_stellar.py::test_sign_tx[memo_return]": "c1f9bef5e2059eebed764f6695d3161d4a05ba7d46f5dc4a612104018fb396ca", "TR_de_stellar-test_stellar.py::test_sign_tx[memo_text]": "c3af3b0b6156a87892661d6478a377a44bf3a85a20e90f9ca5f8a722b6243b7b", "TR_de_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "aee6093566892f6b90c1ad0de8abd0f3a077c1715a90efc101e4a999ea71ce9f", -"TR_de_stellar-test_stellar.py::test_sign_tx[source_account]": "9f175acd17985b3798b9f65d5b10eb363b42c1275f7db4be3e61b98d0eb9d5bd", +"TR_de_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "9f175acd17985b3798b9f65d5b10eb363b42c1275f7db4be3e61b98d0eb9d5bd", "TR_de_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "5f0eb92e8526d327d7d50a453a5cda846480d534862808a081e2ab26c7bf3bfb", "TR_de_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "61bb3e245f4bba3d34a10eaa591bd8ab340f47b1e89fb9cdd1b81acfe8738911", "TR_de_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "7dfbda3c704a290252fc406c53ce38704c81883b4790ae327ebb0923566dccb7", "TR_de_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "a926278265b92d13a52c601b29c2319d09a0371709d72d7dcf1287ef4d98a080", +"TR_de_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "0b935985b22ada7144910bd5f0d62f885b75d7e15f64eadd809bc0e4cf4f89d6", "TR_de_test_authenticate_device.py::test_authenticate_device[!\\xf3\\xd4\\x0ec\\xc3\\x04\\xd01-b\\xeb\\x82-e4b4eb3a": "0096e8182a0e8b438e1e55e49f5e4dc71872c486341c801f147b46a06cb3c69c", "TR_de_test_authenticate_device.py::test_authenticate_device[\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\-d824e03c": "0096e8182a0e8b438e1e55e49f5e4dc71872c486341c801f147b46a06cb3c69c", "TR_de_test_authenticate_device.py::test_authenticate_device[]": "0096e8182a0e8b438e1e55e49f5e4dc71872c486341c801f147b46a06cb3c69c", @@ -12182,11 +12190,12 @@ "TR_en_stellar-test_stellar.py::test_sign_tx[memo_return]": "f7b3554efdbbf476956608cdb2b149757f3f87d05a8076857feba132c54de662", "TR_en_stellar-test_stellar.py::test_sign_tx[memo_text]": "903ef9c3ff8fb09a9f10be1eefd55ae74a250d2101344b01040ebb32c392512c", "TR_en_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "5284ca685a720a8d5cf7fea05924057571a657a97696541f984016cf75139ccc", -"TR_en_stellar-test_stellar.py::test_sign_tx[source_account]": "a4b0d9a35cf8abdd278b47cc26ad90ee5ffaad067f1845f6911411c5888acd61", +"TR_en_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "a4b0d9a35cf8abdd278b47cc26ad90ee5ffaad067f1845f6911411c5888acd61", "TR_en_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "f871bd95a6cae6ba83acc351e2bc23c0d32bddb1a46702456500e956371a10b3", "TR_en_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "09d4e09b215153b3da47dd8c4c54a42cc8beae6e2f469717005ed2d63a59ab76", "TR_en_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "48a6baba52ec2e50051c7c9c9d7d153f5c747d3c41c4b5b2eec5257238ab84bc", "TR_en_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "95b61e5185139d5ee5a0f652f390e0c2a605921f1e14e33fad21c0b1915aee69", +"TR_en_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "faeca4dee012ac4e6c4ca07b1661a210972bbcc6d2759e1ad11aca5b5b2b3d2e", "TR_en_test_authenticate_device.py::test_authenticate_device[!\\xf3\\xd4\\x0ec\\xc3\\x04\\xd01-b\\xeb\\x82-e4b4eb3a": "44cce3f1238dcb3e305191a08f3ecc2093ca0a449ab78774223b2a15f54731f3", "TR_en_test_authenticate_device.py::test_authenticate_device[\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\-d824e03c": "44cce3f1238dcb3e305191a08f3ecc2093ca0a449ab78774223b2a15f54731f3", "TR_en_test_authenticate_device.py::test_authenticate_device[]": "44cce3f1238dcb3e305191a08f3ecc2093ca0a449ab78774223b2a15f54731f3", @@ -13551,11 +13560,12 @@ "TR_es_stellar-test_stellar.py::test_sign_tx[memo_return]": "d447e53351e211f2e6800657d40e9b94f7d84e528e051f6f79eb3d0f60c04349", "TR_es_stellar-test_stellar.py::test_sign_tx[memo_text]": "aaa552180489b0453837579a4b6d4370c465118246fd100504c162901330fec5", "TR_es_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "5bf63e3811f069485165c81b2808916f4dd620719988c95d7a77514cab745d9d", -"TR_es_stellar-test_stellar.py::test_sign_tx[source_account]": "7cfbb1e7163a84168d919e9e18da9e5621ba250fd64aab40755be0e81e44c25b", +"TR_es_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "7cfbb1e7163a84168d919e9e18da9e5621ba250fd64aab40755be0e81e44c25b", "TR_es_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "200b4e8b79d79f886ff19fbc5053c4262443dbe87a44716ada3a31a22de41b16", "TR_es_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "5fcf6387cc5d7f318d90ae0603846502e8baeb8d0681d5633e42a87218f0caed", "TR_es_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "ff8f847ec207300f9a7a7da134e1f06fbf25e3d044ae58e55e2f2b4ddc81705e", "TR_es_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "2c6589a8d2b9b5eb1de1dc97c00e4da3eca114eb8579c869a436a887712cf421", +"TR_es_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "c0435fa03ab36f300fd7e7b2dbe417f3b76cd475337e94ef0c36809222c5a39e", "TR_es_test_authenticate_device.py::test_authenticate_device[!\\xf3\\xd4\\x0ec\\xc3\\x04\\xd01-b\\xeb\\x82-e4b4eb3a": "b3ec00ae2611614f154411b119b12b58d3749bdbc9ee374c26dd33715b507268", "TR_es_test_authenticate_device.py::test_authenticate_device[\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\-d824e03c": "b3ec00ae2611614f154411b119b12b58d3749bdbc9ee374c26dd33715b507268", "TR_es_test_authenticate_device.py::test_authenticate_device[]": "b3ec00ae2611614f154411b119b12b58d3749bdbc9ee374c26dd33715b507268", @@ -14920,11 +14930,12 @@ "TR_fr_stellar-test_stellar.py::test_sign_tx[memo_return]": "81a3803ca4a0b48aa112cf3432391c6714503426a4593ebf25455c3a6736da9e", "TR_fr_stellar-test_stellar.py::test_sign_tx[memo_text]": "dcb797f948fe4b7872c7d4fa05b4dbaefe05083508739a24f76257c137b65a7c", "TR_fr_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "d6884b480f6237e5adc63b85e4c8db9c0c72a8ecc0aff39983a82fe768a2e4dc", -"TR_fr_stellar-test_stellar.py::test_sign_tx[source_account]": "d682250f77f1d9ddeb4ae3704bdb752f352abe9c2c1e2d958b3d1c7862cbfa54", +"TR_fr_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "d682250f77f1d9ddeb4ae3704bdb752f352abe9c2c1e2d958b3d1c7862cbfa54", "TR_fr_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "dc6d67612ee58c461329481520671e27f10c527c7cd3295081492a114aeed7c6", "TR_fr_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "49c7aca1edcaeffb49260dc6ded47efb55390bd2e3e0c7904a8d0854adc4e194", "TR_fr_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "2c87c678cde50263aad91e2612f7666fbddacc55d30c837a45023c92ebcdb45b", "TR_fr_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "5d7cde7b16a35d60bf7d874c0d787dddfc0662d9c1b8637ee066f87c84d711d9", +"TR_fr_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "855e1814fc2b24bb3e2875b9c28672347f0a0ce32d3020fc0f90ce84601bd6cb", "TR_fr_test_authenticate_device.py::test_authenticate_device[!\\xf3\\xd4\\x0ec\\xc3\\x04\\xd01-b\\xeb\\x82-e4b4eb3a": "3c191c3675debbbc01b4cfbf3a5d11d830625529fe96f4799c723869e5ad6b4c", "TR_fr_test_authenticate_device.py::test_authenticate_device[\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\-d824e03c": "3c191c3675debbbc01b4cfbf3a5d11d830625529fe96f4799c723869e5ad6b4c", "TR_fr_test_authenticate_device.py::test_authenticate_device[]": "3c191c3675debbbc01b4cfbf3a5d11d830625529fe96f4799c723869e5ad6b4c", @@ -16604,11 +16615,12 @@ "TT_cs_stellar-test_stellar.py::test_sign_tx[memo_return]": "3124987aa4012a14daf7f33e809daa34311e3b0e5b795d4d174a308a077b7d64", "TT_cs_stellar-test_stellar.py::test_sign_tx[memo_text]": "b3cd453f7fe6d01ffe55b383a08a80f53729da601318287cf3e903bc799666ce", "TT_cs_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "e0ef545906f8f8bf48ddf8d6d6fa068490e52a638051ef1e59fae786bb8de80f", -"TT_cs_stellar-test_stellar.py::test_sign_tx[source_account]": "ee5cff27aba12583b6da615813bfb3323baffc0daa3fc3c6c0bfb86fea15f412", +"TT_cs_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "ee5cff27aba12583b6da615813bfb3323baffc0daa3fc3c6c0bfb86fea15f412", "TT_cs_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "287ba699bf5a26e989915c5c02668aba28a43dd9bf7a4faddbd89407b24c30ab", "TT_cs_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "2dca165c324ba6890a980b7448fd814aa8bc1a491a739943f6c11e0237be0952", "TT_cs_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "9a828a7c8a7cff8b523cdb0ee8e7683196fce85d29ecbba79790e7ea281af87b", "TT_cs_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "eefeee9a792a4d78f14b5a64540a68fb3f68bfa4bf9c85a8d38c500af92a94b0", +"TT_cs_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "fb4eca10eef0888387dd42d4804dff9db31eddc06dabf1df2a68bc22068efbbe", "TT_cs_test_autolock.py::test_apply_auto_lock_delay": "9c8b46122210202ca2a03bfe73bbe18f6535cce7dfe6317e5788cb1bf500c9f3", "TT_cs_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "fa47941c5e440a03d79fed29e832c66100971c95d522c28433b469833d699630", "TT_cs_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "fa47941c5e440a03d79fed29e832c66100971c95d522c28433b469833d699630", @@ -18057,11 +18069,12 @@ "TT_de_stellar-test_stellar.py::test_sign_tx[memo_return]": "dc2b836a5f06184494867d792aac6dcefccd7207394b7ad9def421e3ee1e4e6b", "TT_de_stellar-test_stellar.py::test_sign_tx[memo_text]": "b3e87b5b5e4d0a8572b0a6b77f6ccd916ba03665c1304128ec2fb03be1abfcaf", "TT_de_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "4de2eb2c8266dff4dfadb06ad2934cbc5612a243324a60c249ef727cf0b938ab", -"TT_de_stellar-test_stellar.py::test_sign_tx[source_account]": "37193478dc53884057cca22805a6cae606cdda13142a15dcf50f59214171d26d", +"TT_de_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "37193478dc53884057cca22805a6cae606cdda13142a15dcf50f59214171d26d", "TT_de_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "b06eaac7369935dbc16272456e89d332fefdd9f35845538323915719fc3a2d1e", "TT_de_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "56d716ecbf5e78b1b95818432d1669fd5334ec81b78094024a6592d278a4adfa", "TT_de_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "6eef0d1e2bbbb12716fa6f6863e2edaf3954540e24bc9dd8ed149645630349d1", "TT_de_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "62a29c715c550d8d650c5d2ef89f0c298d8f229f21891daa609665f80690164a", +"TT_de_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "8bd4bcc4febf5ecaa85d63f04b70cf96f569a957254892e3cd95e6b12aeca2b8", "TT_de_test_autolock.py::test_apply_auto_lock_delay": "f7e4f54f3f0e027ee11ff886422ac54e0d44ebf545afeb5ee80e6ddbec202f53", "TT_de_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "a3f432500df38ebd0a756a981580aee1363a0b697b464ddb01d04b2c0dfd99e0", "TT_de_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "a3f432500df38ebd0a756a981580aee1363a0b697b464ddb01d04b2c0dfd99e0", @@ -19510,11 +19523,12 @@ "TT_en_stellar-test_stellar.py::test_sign_tx[memo_return]": "989d9d0713f644338e5696be59848b67119851fd64e44d290a43c8cecd554a58", "TT_en_stellar-test_stellar.py::test_sign_tx[memo_text]": "31deca2fef5dc1d898a3f6d95c2f715f0c85d8be48a2405d596fa0b955597359", "TT_en_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "cdbd1117fded4dc3efef76f723f5ca646461b86a89f741011a25a794cd016b29", -"TT_en_stellar-test_stellar.py::test_sign_tx[source_account]": "641f0ec39c752109a6e287478d529b1e5d3d98cb4eb6b23320a8ba7d97baffba", +"TT_en_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "641f0ec39c752109a6e287478d529b1e5d3d98cb4eb6b23320a8ba7d97baffba", "TT_en_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "808e6873ffc198a8271244e51538a91f4a737e716bccd441e84775589ad75138", "TT_en_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "ee0c8989f31e75c36a4a74f3715d5bf341366cdbd6b750da99ec1f91d7b90db4", "TT_en_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "06aef40642884843baabe7e7d6b69bcd772d6f1e16f231d2c6244b6a727bd08c", "TT_en_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "93471a4ccc8f77e64e0fee636363a90bb05039a517f9259f898f460fb6336f00", +"TT_en_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "2a23c234c26217026172b4c55c0a32d33e8b3002c4c618cbc4f6f80f28ad0501", "TT_en_test_autolock.py::test_apply_auto_lock_delay": "5e0bd26f44c28d337a0591106e6884b30c4b3cf24e20e6b61ea9462f3d76d38f", "TT_en_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "4d7c67024ee17436071e5cf2f79c36453249c95314a732580623cb1f1cdbfdf3", "TT_en_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "4d7c67024ee17436071e5cf2f79c36453249c95314a732580623cb1f1cdbfdf3", @@ -20981,11 +20995,12 @@ "TT_es_stellar-test_stellar.py::test_sign_tx[memo_return]": "7aa7edfa224e4a35985a780c40f2c2b820c6b6a59da0d21490ea3efc0dffe70f", "TT_es_stellar-test_stellar.py::test_sign_tx[memo_text]": "70dcdc49b7296999b55c0ffae6898e5758634bcc4175db294357a564759ae504", "TT_es_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "2d2f8692dbe71ce565dd78849dc888cbb94eb2e4cc63471de0b50930eddf134a", -"TT_es_stellar-test_stellar.py::test_sign_tx[source_account]": "f3d01f3d94588d4f0b7be2cac2adef0e163c7fbcc1227771722b160b5197be12", +"TT_es_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "f3d01f3d94588d4f0b7be2cac2adef0e163c7fbcc1227771722b160b5197be12", "TT_es_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "9699503349c6012c0754b6d6761c58aa85ee253d7c75e37774f97be4ba4ac140", "TT_es_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "8775fb7c37a2948937d1fb992199b1c9d602aaec65fa7db31b6133b8b5757955", "TT_es_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "a5d3be33997d684697091a2dfff21ca9c4eb05999b7b1042a65534600e6590fc", "TT_es_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "ab72112521b7870c8083d64403f9819647ec74865210283c2061853e24b56f08", +"TT_es_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "cf1f6e8a230ff0c44b7350a387451e3793daae19ba2b862c77ef83c3d48f6200", "TT_es_test_autolock.py::test_apply_auto_lock_delay": "a4c293750a4dd093f7b6129b048b9d5150e6a97ed78d0a7bbdbe490047edf09d", "TT_es_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "1cd05b080e816b9c9d9764ea62b425c244ea7ae7c34b55b16a9ed8d44bcf9aeb", "TT_es_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "1cd05b080e816b9c9d9764ea62b425c244ea7ae7c34b55b16a9ed8d44bcf9aeb", @@ -22434,11 +22449,12 @@ "TT_fr_stellar-test_stellar.py::test_sign_tx[memo_return]": "c41ce3ffe8be3d27f4f75a8878527f7fdb5bff8a86aa5428926f816a31f0bf2f", "TT_fr_stellar-test_stellar.py::test_sign_tx[memo_text]": "c62803145a607c580875a767f32c7ba21adf5320c41ec77fab3a3740309163e7", "TT_fr_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "a194b270b5c59e5d1c2f8afc860ec34d2233413f9028f97fe45294b1b9676a9b", -"TT_fr_stellar-test_stellar.py::test_sign_tx[source_account]": "7755621ef5c84a8081f6b92e92f16c9bfc64cc9c65eb30af02f11ced40ab75ee", +"TT_fr_stellar-test_stellar.py::test_sign_tx[op_source_account_not_equal_signing_key]": "7755621ef5c84a8081f6b92e92f16c9bfc64cc9c65eb30af02f11ced40ab75ee", "TT_fr_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "9f166638c3b736615b7c2e760ad7526cee9ad07822bc4b5937c34292ac4655c7", "TT_fr_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "62ff783eebc5b5110a53424b8060b351b2c222cf9f8607967a25a47e2e487caf", "TT_fr_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "0eafa8f484e6288865612b1d348e52da4926aea1c32164c8a1b2dc9b6fc72e30", "TT_fr_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "3bdb18df20c374ed938d9b83f5b293984feec50568bbb444ccc15570d75cab47", +"TT_fr_stellar-test_stellar.py::test_sign_tx[tx_source_account_not_equal_signing_key]": "309f9fb4af9d4ccb9f3a7ae2c157ca3a6ea981587cc5f07f81e3cece731615dd", "TT_fr_test_autolock.py::test_apply_auto_lock_delay": "2fba03351a923044992316898e91b519945b066c0fe8b6cf31830445445ed2bb", "TT_fr_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "e22f395089a4d634c4fa9ecff7d3118e50e2072e875a153fa9ff60c7923d1ad4", "TT_fr_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "e22f395089a4d634c4fa9ecff7d3118e50e2072e875a153fa9ff60c7923d1ad4",