Thanks very much for creating this program! I've been needing something very much like this, and was even considering writing something myself, although that would require a lot of research on my part since I haven't done any public/private key encryption programming before. That, and I'm not too great a programmer to begin with.
I was able to compile coinsplit on a Mac OS X 10.5 machine with GCC 4.2 (4.0 didn't work). I had to download and build the latest versions of GMP, Berkeley DB, and OpenSSL, which went mostly fine. OpenSSL needed some special love to build and work correctly on the Mac, but I was able to follow a simple guide and got it to work.
Unfortunately, the open_memstream() and fmemopen() functions aren't natively available on Macs, so I had to do some digging and was able to locate implementations of each using the available funopen() function. The app compiled fine and runs on both 10.5 and 10.6, however I couldn't create
a working binary under 10.6; the resulting program segfaults when trying to generate an address. I tracked the fault to the base58_encode() function and its references to result_stream.
Just as a note, I noticed that the bitcoin source code includes its own base58 and bignum header files. Might these be easier and/or more portable to use? I realize they're C++ (not C).
Anyway, I have a few requests for the next version of coinsplit:
- Easier build process / compatibility on Macs (see above)
- Ability to specify bitcoin vs testnet address as a command line option
- And most importantly: output of base58 encoded private key
The private key format is analoguous to the address format. It is a 51-character base58-encoded string, that includes a version number and a checksum.
If you're able to make these changes, I'd be happy to send you a donation in either BTC or USD.
Take care, and thanks again.