diff --git a/legacy/firmware/.changelog.d/4396.changed.3 b/legacy/firmware/.changelog.d/4396.changed.3 new file mode 100644 index 00000000000..07d5ba35c8d --- /dev/null +++ b/legacy/firmware/.changelog.d/4396.changed.3 @@ -0,0 +1 @@ +Remove deprecated Unchained Capital's multisig path. diff --git a/legacy/firmware/crypto.c b/legacy/firmware/crypto.c index 5e36bb275b4..a5ba9114922 100644 --- a/legacy/firmware/crypto.c +++ b/legacy/firmware/crypto.c @@ -562,17 +562,7 @@ bool coin_path_check(const CoinInfo *coin, InputScriptType script_type, valid = valid && (address_n[2] <= PATH_MAX_CHANGE); valid = valid && (address_n[3] <= PATH_MAX_ADDRESS_INDEX); } else if (address_n_count == 5) { - if (address_n[1] & PATH_HARDENED) { - // Unchained Capital compatibility pattern. Will be removed in the - // future. - // m / 45' / coin_type' / account' / [0-1000000] / address_index - valid = valid && check_cointype(coin, address_n[1], full_check); - valid = valid && (address_n[2] & PATH_HARDENED); - valid = - valid && ((address_n[2] & PATH_UNHARDEN_MASK) <= PATH_MAX_ACCOUNT); - valid = valid && (address_n[3] <= 1000000); - valid = valid && (address_n[4] <= PATH_MAX_ADDRESS_INDEX); - } else { + if ((address_n[1] & PATH_HARDENED) == 0) { // Casa proposed "universal multisig" pattern with unhardened parts. // m/45'/coin_type/account/change/address_index valid = valid &&