One note - The version byte can have up to four valid values for Bitcoin network:
- 0x00 - main network pubkey hash address
- 0x05 - main network script hash address (e.g. multisig address)
- 0x6F - test network pubkey hash address
- 0xC4 - test network script hash address
More information: https://en.bitcoin.it/wiki/List_of_address_prefixes
Obligatory, related plugs:
https://github.com/gasteve/node-libcoin (bitcoin JS library, for node.js -- an update of bitcoinjs-server)
https://en.bitcoin.it/wiki/Identity_protocol_v1 (also uses base58-encode-check and a well known prefix)
Thanks, I wasn't aware of node-libcoin despite being so heavily invested in the Node.js community: https://npmjs.org/~jp. Jeff, it looks like you're one of the authors of the Node.js libcoin. I'm curious, why did you choose to do the ECC code in C++?
Using OpenSSL is important for bug-for-bug compatibility, even ignoring the performance improvements.