Crypto/ecdsa different results on Raspberry PI and i386, vs x64?

Hi,

I’m using ECDSA with the P256 curve and I’ve found a problem which I’ve tracked to a different result of signature verification on the Raspberry Pi and x64 (both Linux and Windows). I’ve tracked the problem down to this self-contained case:

This forum doesn’t let me post links, so concatenate these strings to get a github gist:

https:// gist.github.com/ivoras/ 32b2abd16b5984fa43c006486bfb7e2c

It’s trivial to build. When run on the RPI, verification succeeds. On x64, it fails. RPI is running little-endian Ubuntu 16.04.2, 32-bit.

Am I doing something wrong or is it a bug in the libs? I’ve updated all systems to Go 1.8.1, but I’ve noticed this behaviour on 1.7 (and the update didn’t solve it).

Edit: I’ve changed the title, because I’ve tested it in a brand new i386 Ubuntu VM, and the result is same as on RPI. So it might be a 32-bit vs 64-bit issue.

Yeah I see the same on 386 vs amd64 Mac. I have no explanation.

Playground, which is 32bit-ish, succeeds as well.

https://play.golang.org/p/oPhI2t8_2A

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.