This is a quote from Matt. "This needs to go into 0.3.24, so that users who downgrade don't mess up their wallet by adding unencrypted keys to an encrypted wallet, making all versions unable to use the wallet." It is my understanding that when using Cwallet that Matt changed the private key around 0.3.2.1- 0.3.2.3 and it would crash the wallet in 0.3.2.4. it was part of garzik code for encrypted keys that Matt worked on
Email me if you know the format of encrypted keys.
No, you understand completely incorrectly.
As I said earlier, private key encryption was released in 0.4 and no earlier. Wallets prior to that were not encrypted. The problem here is that introducing encrypted keys changes the wallet format by adding things to the wallet that previous versions do not know. Thus the wallet will crash and become corrupted if you encrypted it with 0.4 and then downgraded to 0.3.x. The change for 0.3.24 was so that if someone downgraded from 0.4 to 0.3.24, the act of downgrading would not corrupt their wallet as it would with 0.3.23 and earlier. This has nothing to do with CWallet nor with 0.3.21-0.3.23. Encrypted private keys were not part of any 0.3.x version.