Hi All.
As a method of studying VBA's ins and outs, I set out to build a Bitcoin suite that would perform some of the basic operations necessary for Bitcoin usage.
I currently have the following things (very poorly) implemented:
1. SHA256 class module (borrowed from Phil Fresle
http://www.frez.co.uk)
2. RIPEMD160 class module (coded myself, used some Functions from SHA256 class)
3. A crypto module with a simple, super-inefficient implementation of SECP256K1 curve of EC math. (Add, Double, Multiply, Inverse Mod, etc.)
4. I have a simple sheet that will generate a "random" new address and show both compressed and uncompressed forms. AND it allows input for a brainwallet.
Goals:
1. Learn more about VBA and coding methodology for it. (for work...)
2. Make the crypto as efficient as possible. (Currently takes anywhere from 1 to 2 minutes (depending on PC specs) to perform one EC multiply with a 256 bit scalar.)
3. Implement BIP38, BIP32, and BIP39. (These will require writing/finding class modules for SHA512, HMAC, Scrypt, etc.)
Note:
- I am doing this with the intent of learning what VBA is possible of, and in the process gain the skills to implement macros etc. at my company to increase efficiency.
- Anyone else who thinks this is a fun little hobby-esque project and would like to help out, I would be more than happy if someone gave me pointers.
- The goal #3 probably won't go anywhere until I can clear #2.
Current Implementation:
https://www.dropbox.com/s/6meu983y0busbng/Bitcoin_Address_gen.xlsm(All protected sheets etc. are protected with the password "password")I will put the classes and modules separately up on Github if someone else wants to contribute.
Any pointers, musings at my horrible coding, trolls, etc. are welcome! But I would definitely appreciate any tips to make EC Multiplying faster.
Thank you all in advanced!