OpenSSL (from ssl
in Mac OS X Version 10.11.6) and Secp256k1 (from the bitcoin-core repository) seem to differ in their implementations of ECDSA. I'm having issues with these differences and want to make sure they actually exist, and if they do, how to reconcile the differences.
For example, using OpenSSL, the recoverable signatures I get can end in any byte. However, from this line in Secp256k1, it seems that the 65
th byte (i.e. the last byte) is required to be between 0
and 4
inclusively.
If this is the case, then why does OpenSSL allow the last byte, which seems to be referred to as rec_id
, to be of any value?