Signature: encoding a message - transaction to a point of curve y^2=x^3+7 and Bitcoin Core Where should I look at in Bitcoin Core source code to figure out how the signature process trasform a message in a curve point?

To sign a transaction (message) in Bitcoin system, you need to encode the message to a point of the curve y^2=x^3+7. I read this Koblitz's paper. There are three encoding schemes. I read this question too.

If I look at in Bitcoin Core source code I can't see any of these encoding schemes, it seems to me that message M is directly encoded in a point m=hash(M) without check; obviously that is not possible, there is roughly a 50% chance that a random 256 bit string don't correspond to a point of the curve. I can't find out how/if the ECDSA library checks if hash(M) is on the curve or not and especially what it does if the hash(M) is not on the curve. 

What encoding scheme does Bitcoin-ECDSA implement and where is it in the source code?

Thanks and sorry for my English.

EDIT:

Bitcoin: Signature generation (ECDSA)

Given a message m to be signed and the private key d,


Choose a random integer k in [1,n-1].
Compute (x1,y1)=kP, convert x1 into integer and r = x1 mod n.(Return to step1 if r = 0)
Computes=(k^-1)*(SHA1(m)+ dr). (Return to step 1 if s= 0)
Signature is (r, s) pair.


Why SHA1(m) should be a curve point? There is only a 50% chance.
To sign a transaction (message) in Bitcoin system, you need to encode the message to a point of the curve y^2=x^3+7


Perhaps you're thinking of ElGamal encryption, whereby you do need to select a point on the curve which represents your plaintext.

However for signing, Bitcoin uses ECDSA, and this has no such requirement.

If you're interested, the code which implements ECDSA signing is in secp256k1_ecdsa_sig_sign(). For example, this is the code which implements step 6 from the Wikipedia link above.