Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: d33tah on September 28, 2011, 05:56:49 PM



Title: ECDSA_verify() problem
Post by: d33tah on September 28, 2011, 05:56:49 PM
Hi folks,

I've recently thought of an interesting project that could help me understand Bitcoin internals and C programming on embedded devices. The project would be an external Arduino wallet - someone42 sent me an implementation of ECDSA_sign that would work on Atmega's and now I need a verification code so I could be able to test if the signatures generated by the devices are correct.

I, with the help of sipa, hacked Bitcoin's Sign() function to look like this: http://wklej.org/id/598789/ ; then, using the data generated by these printf's, I managed to write such an app:
http://wklej.org/id/599540/

Unfortunately, although the data should be correct, the ECDSA_verify returns 0. Does anybody have an idea why is that?


Title: Re: ECDSA_verify() problem
Post by: kokjo on September 28, 2011, 06:00:11 PM
do we get the ECDSA_sign code?


Title: Re: ECDSA_verify() problem
Post by: d33tah on September 29, 2011, 02:09:12 AM
It's a standard code from OpenSSL 1.0.0e crypto.


Title: Re: ECDSA_verify() problem
Post by: kokjo on September 29, 2011, 12:03:10 PM
It's a standard code from OpenSSL 1.0.0e crypto.
can't help you if you are not providing me with the faulty code. :(

im thinking the device's code is wrong....


Title: Re: ECDSA_verify() problem
Post by: d33tah on September 29, 2011, 02:04:06 PM
I'm not testing it on the device. So far, I'm trying to create a testing environment on a PC - I'm trying to build an app, that could just verify, if a given signature is correct or not.

I got the signature data hacking bitcoin client this way:
http://wklej.org/id/598789/

And the testing app looks this way:
http://wklej.org/id/599540/

Both of which you can easily compile and test yourself - the testing app is complete, yet faulty.

So, the problem stays open.