Bitcoin Forum

Bitcoin => Project Development => Topic started by: priestc on October 04, 2015, 02:16:31 AM



Title: Working on python Bip38 implementation, 80% complete, need help with remaining
Post by: priestc on October 04, 2015, 02:16:31 AM
As far as I know, there aren't any full Bip38 implementations in python. I have decided I want to write one so that python developers can build applications using encrypted private keys.

My code is here: https://github.com/priestc/moneywagon/blob/master/moneywagon/bip38.py

What I have working:
* Non-ec multiply encrypt and decryt. (with tests)
* Generating Confirm Code.
* Generating Intermediate Point.
* Generating encrypted private key from Intermediate Point.

What I do not have working:
* Decrypting ec-mutiply encrypted private key
** Working examples:
** https://github.com/mannkind/bit2factor.org/blob/master/js/bitcoin.bip38.js#L84
** https://github.com/casascius/Bitcoin-Address-Utility/blob/master/Model/Bip38KeyPair.cs#L125

* Generating address from confirm code
** Working exampes:
** https://github.com/mannkind/bit2factor.org/blob/master/js/bitcoin.bip38.js#L298
** https://github.com/casascius/Bitcoin-Address-Utility/blob/master/Model/Bip38Confirmation.cs#L102


The white paper does a very good job of explaining how to do everything, but when it comes to decrypting ec-multiply and generating address from confirm code (the two things I haven't done yet), the BIP is very sparse of details:

https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki



I don't really know that much about cryptography so someone else will have to finish this. I have done as much as I can do.