Blockchain.info's encrypted wallet format is described as:
AES encrypting the entire JSON payload with the users password which is then encoded as base64. No salt is used for single pass encryption. The exact AES specifications are 10 rounds of PBKDF2, Block Mode CBC ISO10126 padding.
However, in trying to verify my own encrypted exports, it seems thats not all the information (or correct). I think part of the issue is in how the user's password is expanded to an input key for the AES/Rijndael cipher.
- The input key for AES can be 128, 192, or 256 bits; which is being used?
- AES has its own key schedule, but it seems Blockchain is using something separate, as "PBKDF2" is another key expansion function.
- PBKDF2 is a methodology that can be used with many types of hashes; which hash is being used?