My goal is to have a short program that I can give 256 random bits to (which I am confident that I can generate by hand) and it will produce a bitcoin address and its private key. I know how to program but I do not know much about cryptography. I could try to write the key generation process but I would rather use proven code. I was thinking about making the entire key pair by hand but then I realized that the hashing algorithm is far too computationally intensive to do by hand (as it should be)
Edit: thanks for the link. I think that I'm going to have to read a lot more code than I thought I would. I was hoping for a big ball of mud function that I could just change a little.
According to this discussion I just found:
http://openssl.6102.n7.nabble.com/Question-on-EC-KEY-generate-key-td27218.html
It sounds like you can use openssl and call:
EC_KEY_set_private_key
Followed by:
EC_POINT_mul
Once you have the public key, you can use the information here to generate an address:
https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses