I want to make a computer program to sign and verify some message using ECDSA.
There are some computer libraries but I'm having trouble using them, as I don't understand ECDSA.
What do I need theoretically?
Is ECDSA the same as other digital signing that I calculate hash of message, encrypt the hash and append it to the original message?
In ECDSA can I choose hashing function and some encrypting parameters? What I need to know about generating pair of keys? What else do I need to specify.
NOTE: I don't need to implement ECDSA algorithm, there are libraries for that, but what I need to know what are the variable parameters in the algorithm.
EDIT: Here is a note from the library:
sign = crypto.createSign('SHA256'); privateKey = getPrivateKeySomehow(); sign.write('some data to sign'); sign.end(); sign.sign(privateKey); // Prints: the calculated signature using the specified private key and // SHA-256. For RSA keys, the algorithm is RSASSA-PKCS1-v1_5 (see padding // parameter below for RSASSA-PSS). For EC keys, the algorithm is ECDSA.
Does this mean I have to specify a hashing algorithm and also generate a pair of EC keys?