I'm following the example of code available in: http://www.openssl.org/docs/crypto/sha.html#
After the following:
EVP_DigestFinal_ex(&mdctx, md_value, &md_len);
the final digest is stored in md_value. I'd like to copy that digest to another character array of equal size. This is a two part problem though. I'm not understanding what exactly is being stored in md_value, looks like binary. The following printf formats the data to output hex, which is what I need.. a final string version of the hash involved (within a loop where i has context:
printf("val: %02x\n", md_value[i]);
My question is, how do I copy only the hex values to another character array. Here's what I've tried so far, which is terrible in as far as an example goes:
for(i = 0; i < md_len; i++) {
unsigned char c;
printf("val: %02x\n", md_value[i]);
sprintf(c, "%02x", md_value[i]);
h[0] = c;
}
h in this case is where I want the hex characters copied. It is a character array that looks like:
unsigned char h[EVP_MAX_MD_SIZE];