Thanks! You saved me a lot of time executing python script on windows. So, bitaddress shows different address 1E7SR8x3FdzMPGpeiyTqQB892WXPnKcy2a for the given private key. To check its algorithm I entered other private key from my wallet, and this time it worked flawlessly and displayed me the exact address I have in my wallet.dat. So, that private key for the address 1HT7xU2Ngenf7D4yocz2SAcnNLW7rK8d4E is not correct. However, when I try to validateaddress 1E7SR8x3FdzMPGpeiyTqQB892WXPnKcy2a, which is supposed to be the right address for that private key, it couldn't be found in my wallet..such a mess...
Right your wallet has an encrypted key object in it with an empty pubkey. It's not clear how this could have happened. Has the wallet ever become corrupted, have you ever used any special wallet utilities on it?
Yes, I experienced corrupted wallet issue and I resolved it via -salvagewallet on a standard bitcoin core for windows. No, I never used any other utilities apart from the bitcoin core for linux and windows. I also did several rescans. This wallet has thousands of addresses and hundreds of thousands of transactions, its size is about 0.8Gb.
Could you please compile a win64 or win32 binary for me?
Right, when it decrypts it checks that the private key and public keys agree, finds that they don't and then rejects the corrupted wallet.
Bitcoin core 0.9.3. doesn't have this feature? Check on private and public keys?