Merge rust-bitcoin/rust-bitcoin#6271: key_expression: bip32 seed length validation follow-up
ab38e614ec5d094a2891b3f1d015b24624425c9d bip32: add missing From<Infallible> to errors (satsfy (Renato Britto))
4f6de66e4e2d6d9e5028d2450527d38afe83a9ec bip32: split generic wrapper for Xpriv::new_master (satsfy (Renato Britto))
c0d5e26cd32978903d02d68addde6b2f7368e226 bip32: tidy InvalidSeedLengthError trait impls (satsfy (Renato Britto))
b414ab57bf592106a9051f49138cd03005cc32fb bip32: implement Eq for Bip32Seed (satsfy (Renato Britto))
Pull request description:
Follow ups mentioned after the merge of #6212.
- Commit 1: implements `Eq` for `Bip32Seed` based on [this](https://github.com/rust-bitcoin/rust-bitcoin/pull/6212#issuecomment-4559288637) comment.
- Commit 2: tidy `InvalidSeedLengthError` to match other errors in the same module based on [these](https://github.com/rust-bitcoin/rust-bitcoin/pull/6212#issuecomment-4559288637) [two](https://github.com/rust-bitcoin/rust-bitcoin/pull/6212#discussion_r3310442807) comments.
- Commit 3: splits `Xpriv::new_master` into a wrapper that does conversions and forwards to a non-generic `new_master_inner`, so the compiler will only duplicate the small function, not the big one that does all the hash computations based on [this](https://github.com/rust-bitcoin/rust-bitcoin/pull/6212#discussion_r3310826352) comment.
- Commit 4: adds two missing `From<Infallible>` for `DerivationError` and `InvalidBase58PayloadLengthError` so every error type in the module is uniform based on [this](https://github.com/rust-bitcoin/rust-bitcoin/pull/6212#issuecomment-4559288637) comment.
ACKs for top commit:
apoelstra:
ACK ab38e614ec5d094a2891b3f1d015b24624425c9d; successfully ran local tests
Kixunil:
ACK ab38e614ec5d094a2891b3f1d015b24624425c9d
Tree-SHA512: b9ae25d69c78d707dd1d05791daae1d6617886875ee6fa1f0d4cf5f69183c16b15899ff1ac86c77533b1519af2d6d4ec71b2e638cccb76bce2755d71ddeffe86 A
Andrew Poelstra committed
2dcebbf65cb61ca9c233fc0fbac954952fd93216