Author

Topic: PyBrainwallet - Python Brainwallet Generator - Now with BIP38 and Diceware! (Read 3126 times)

newbie
Activity: 16
Merit: 0
Added Diceware support. Enter your manual rolls (comma separated), or use PRNG (PyCrypto) to generate passphrases. Diceware is available in the Options menu.

The scrypt module does build on Windows, from PyPi source, with MinGW. Unfortunately, I'm still unable to build binaries.
newbie
Activity: 56
Merit: 0
Was looking for a way to create paper wallets with BIP 38 on raspberry for a while! It's just not possible using javascript based methods like bitaddress.org (takes forever). I'll definitely try this out ASAP, thanks!
newbie
Activity: 16
Merit: 0
Tested on Rasberry Pi, with decent results. ~12 seconds to create note, and encrypt/decrypt takes ~30 seconds.

Updated PIL import to allow use of pillow, because PIL threw an error (decoder ZIP not available).
newbie
Activity: 16
Merit: 0
Looks good! Is a command line interface on the roadmap? Clicking around is for wimps Tongue.
Probably, though not a very high priority for now.
legendary
Activity: 1974
Merit: 1029
Looks good! Is a command line interface on the roadmap? Clicking around is for wimps Tongue.
newbie
Activity: 16
Merit: 0
Bump, major update, now includes BIP38 (non-ec) encryption and decryption! Updated OP.
hero member
Activity: 715
Merit: 500
Bitcoin Venezuela
A Bitcoin address is not a public key, but a hash of it.
newbie
Activity: 18
Merit: 0
Hey man, I'd like to try my hands at this. I don't have any original ideas to add yet though. Is there anything I can do to help? Any bug fixes?
legendary
Activity: 3472
Merit: 1722
You could also add support for compressed public keys (derived from the same private key but the bitcoin address is different).
Definitely something to consider. Is there much interest in, or use of, compressed pubkeys?

The only reason why someone would not use them is if they had an old client that doesn't support compressed public keys. I think Bitcoin-Qt uses them by default since v. 0.6. (1.5 years)
They create less blockchain bloat because they are almost half the size of compressed pubkeys (33 bytes instead of 65).
legendary
Activity: 3472
Merit: 1722
You could also add support for compressed public keys (derived from the same private key but the bitcoin address is different).
newbie
Activity: 40
Merit: 0
I quite like it.
BIP0038 involves AES256 encryption and scrypt, which is really slow in python. Usually people import large libraries written in C++.
Then again, the speed issue shouldn't be a problem for bitcoin key encryption since you only do it once, and the kind of AES256 used is only simple and doesn't need the initialisation vector stuff or block chaining. It could be coded.
newbie
Activity: 16
Merit: 0
Python GUI brainwallet generator, now with BIP38 non-ec-multiply encrypt/decrypt, Diceware, and support for compressed keys

https://i.imgur.com/w4grc3g.png

Use text or file(s) to create your keypair
Generate and display note, updated with each change
Note includes QR code with blockchain.info url for easier verification of funds
Encrypt private key for more secure printing
Option to display compressed version of keys
Option to hash seed a user-set number of rounds (multihash)
Use dice to create truly random passphrases. PRNG option uses PyCrypto. Dice are better.
Save note to file - example

Performance tested on Atom netbook, ~7 seconds to encrypt/decrypt and update displayed note. Stock-clock Raspberry Pi takes ~30 seconds. Much faster on other systems.

README
https://github.com/nomorecoin/PyBrainwallet
Previous version orphaned, moved to Windows branch
Windows binary (outdated)
License is WTFPL, so do what the fuck you want. Let me know if you do something cool.

Known issues:
Absolute layout is guaranteed to break on some systems.
Unable to provide binary for now - scrypt module issues.
Test cases are incomplete, new features manually tested.
Performance is highly CPU-dependent, slow systems will continue to be slow.
Might break in other exciting and fascinating ways, or in very stupid ways. Verify wallets before use.

Planned Features:
Layout, sizers instead of absolute
Diceware word lookup and optional passphrase generation added
Allow use of multiple keyfiles as seed added
Create and decrypt BIP0038-compliant notes added
Hardened hash mode User-set number of hash rounds added
Compressed key option added

I am in no way responsible for lost or stolen coins, no matter what.
Jump to: