multi signature – Recovering 2 of 2 multisig HD Wallet with bip38 encrypted private key

I have been trying to figure out if it is possible to restore my wallet with the current information I have.

  • The wallet is a 2 of 2 multisignature HD wallet
  • The first key is Bip38 and requires a password to decrypt private key
  • The second key has a 24 word seed

I currently have both xpub’s, and the 24 word seed of the second key. Unfortunately I do not have the password for the bip38 encrypted private key. I created the wallet a while ago and cannot remember the password but I have some ideas of what the password might have been. Given this information, I believe it might be worthwhile to try to brute force the password.

I am unsure the best method of brute forcing a multisig wallet. If it was a non-multisig wallet, I could just do something like this:

const decryptedKey = bip38.decrypt(encryptedPrivateKey, password);
const privateKeyWif = wif.encode(
      0x80,
      decryptedKey.privateKey,
      decryptedKey.compressed
    );
const coinkey = CoinKey.fromWif(privateKeyWif);
console.log('address with btc im trying to recover' === coinkey.publicAddress, password) // Found password
    

The address I am trying to recover starts with a 3 as it is a P2SH address (multisig). When I run the code above I get an address that starts with a 1 (not multisig). With all this being said, what is the best way (if there is any) to validate the “correctness” of a password during brute forcing one key of a multisig wallet?